From 7bddd2b90e05a76b36cbb6ae42b069b15d37dbdc Mon Sep 17 00:00:00 2001 From: djonker Date: Wed, 1 Mar 2023 04:36:42 +0100 Subject: [PATCH] firstcommit --- LICENSE | 675 ++ Makefile | 70 + Readme.md | 16 + en.subject.pdf | Bin 0 -> 2461043 bytes fractol.h | 96 + libft/Makefile | 183 + libft/libft.h | 165 + libft/src/ft_around.c | 41 + libft/src/ft_arrlen.c | 23 + libft/src/ft_atodec.c | 28 + libft/src/ft_atof.c | 33 + libft/src/ft_atoi.c | 42 + libft/src/ft_atol.c | 42 + libft/src/ft_atou.c | 30 + libft/src/ft_bitswap.c | 26 + libft/src/ft_btoi.c | 42 + libft/src/ft_bzero.c | 26 + libft/src/ft_calloc.c | 40 + libft/src/ft_chrstr.c | 26 + libft/src/ft_cntarg.c | 24 + libft/src/ft_cntchr.c | 36 + libft/src/ft_cntwrd.c | 35 + libft/src/ft_cntwrds.c | 35 + libft/src/ft_ddtoi.c | 34 + libft/src/ft_declen.c | 32 + libft/src/ft_dtoa.c | 38 + libft/src/ft_dtoh.c | 23 + libft/src/ft_factor.c | 25 + libft/src/ft_fczero.c | 34 + libft/src/ft_flolen.c | 23 + libft/src/ft_fnprim.c | 24 + libft/src/ft_frearr.c | 29 + libft/src/ft_frenarr.c | 24 + libft/src/ft_fround.c | 41 + libft/src/ft_ftoa.c | 31 + libft/src/ft_ftoi.c | 33 + libft/src/ft_htod.c | 24 + libft/src/ft_htoi.c | 34 + libft/src/ft_iftof.c | 22 + libft/src/ft_intlen.c | 30 + libft/src/ft_isalnum.c | 20 + libft/src/ft_isalpha.c | 20 + libft/src/ft_isascii.c | 20 + libft/src/ft_isdigit.c | 20 + libft/src/ft_islneg.c | 20 + libft/src/ft_islowc.c | 20 + libft/src/ft_isneg.c | 20 + libft/src/ft_isodigit.c | 32 + libft/src/ft_isprim.c | 35 + libft/src/ft_isprint.c | 20 + libft/src/ft_isuppc.c | 20 + libft/src/ft_isxdigit.c | 27 + libft/src/ft_itoa.c | 42 + libft/src/ft_itob.c | 32 + libft/src/ft_itoba.c | 40 + libft/src/ft_itodd.c | 42 + libft/src/ft_itof.c | 28 + libft/src/ft_itoh.c | 42 + libft/src/ft_itohx.c | 42 + libft/src/ft_itoo.c | 41 + libft/src/ft_itooa.c | 42 + libft/src/ft_itozh.c | 42 + libft/src/ft_ldeclen.c | 32 + libft/src/ft_lftoa.c | 50 + libft/src/ft_lftoi.c | 33 + libft/src/ft_lincpy.c | 34 + libft/src/ft_linlcpy.c | 35 + libft/src/ft_linlen.c | 26 + libft/src/ft_lstadd_back.c | 29 + libft/src/ft_lstadd_front.c | 23 + libft/src/ft_lstclear.c | 39 + libft/src/ft_lstdelone.c | 27 + libft/src/ft_lstiter.c | 24 + libft/src/ft_lstlast.c | 24 + libft/src/ft_lstmap.c | 40 + libft/src/ft_lstnew.c | 25 + libft/src/ft_lstsize.c | 26 + libft/src/ft_ltoa.c | 42 + libft/src/ft_luilen.c | 28 + libft/src/ft_malstr.c | 31 + libft/src/ft_malstrs.c | 31 + libft/src/ft_max.c | 20 + libft/src/ft_memccpy.c | 34 + libft/src/ft_memchr.c | 30 + libft/src/ft_memcmp.c | 31 + libft/src/ft_memcpy.c | 33 + libft/src/ft_memmove.c | 41 + libft/src/ft_memset.c | 27 + libft/src/ft_min.c | 20 + libft/src/ft_otoi.c | 34 + libft/src/ft_power.c | 26 + libft/src/ft_putchar.c | 18 + libft/src/ft_putchar_fd.c | 18 + libft/src/ft_putendl.c | 25 + libft/src/ft_putendl_fd.c | 25 + libft/src/ft_putflo.c | 25 + libft/src/ft_putflo_fd.c | 25 + libft/src/ft_putlong.c | 31 + libft/src/ft_putnbr.c | 31 + libft/src/ft_putnbr_base.c | 25 + libft/src/ft_putnbr_fd.c | 31 + libft/src/ft_putstr.c | 20 + libft/src/ft_putstr_fd.c | 20 + libft/src/ft_putull.c | 24 + libft/src/ft_putzflo.c | 41 + libft/src/ft_putzflo_fd.c | 32 + libft/src/ft_putznbr.c | 26 + libft/src/ft_putznbr_fd.c | 26 + libft/src/ft_putzsci.c | 130 + libft/src/ft_putzscih.c | 132 + libft/src/ft_revstr.c | 32 + libft/src/ft_round.c | 39 + libft/src/ft_split.c | 38 + libft/src/ft_splits.c | 38 + libft/src/ft_sqrt.c | 27 + libft/src/ft_strchr.c | 26 + libft/src/ft_strdup.c | 26 + libft/src/ft_strjoin.c | 42 + libft/src/ft_strlcat.c | 39 + libft/src/ft_strlcpy.c | 30 + libft/src/ft_strlen.c | 28 + libft/src/ft_strlow.c | 29 + libft/src/ft_strmapi.c | 33 + libft/src/ft_strncmp.c | 30 + libft/src/ft_strnstr.c | 36 + libft/src/ft_strrchr.c | 29 + libft/src/ft_strtrim.c | 31 + libft/src/ft_strupp.c | 29 + libft/src/ft_substr.c | 39 + libft/src/ft_swap.c | 22 + libft/src/ft_swaplong.c | 22 + libft/src/ft_tolower.c | 20 + libft/src/ft_toupper.c | 20 + libft/src/ft_utoa.c | 35 + libft/src/ft_vamax.c | 34 + libft/src/ft_vamin.c | 34 + libft/src/ft_wrdlen.c | 42 + libft/src/ft_wrdlens.c | 42 + mlx/.gitattributes | 8 + mlx/.github/ISSUE_TEMPLATE/bug_report.md | 34 + mlx/.github/ISSUE_TEMPLATE/feature_request.md | 20 + mlx/.github/workflows/ci.yml | 89 + mlx/.gitignore | 62 + mlx/CODE_OF_CONDUCT.md | 116 + mlx/CONTRIBUTING.md | 20 + mlx/LICENSE | 339 + mlx/Makefile | 77 + mlx/Makefile_Unix.mk | 44 + mlx/Makefile_WindowsNT.mk | 49 + mlx/README.md | 306 + mlx/SECURITY.md | 13 + mlx/VERSION.md | 7 + mlx/docs/Basics.md | 138 + mlx/docs/Colors.md | 100 + mlx/docs/Functions.md | 8 + mlx/docs/Hooks.md | 229 + mlx/docs/Images.md | 122 + mlx/docs/Input.md | 47 + mlx/docs/Shaders.md | 37 + mlx/docs/Textures.md | 82 + mlx/docs/XPM42.md | 92 + mlx/docs/assets/XPM_Demo.png | Bin 0 -> 356244 bytes mlx/docs/assets/logo.png | Bin 0 -> 3850 bytes mlx/docs/index.md | 131 + mlx/include/KHR/khrplatform.h | 311 + mlx/include/MLX42/MLX42.h | 727 ++ mlx/include/MLX42/MLX42.h.gch | Bin 0 -> 2172268 bytes mlx/include/MLX42/MLX42_Input.h | 231 + mlx/include/MLX42/MLX42_Int.h | 257 + mlx/include/glad/glad.h | 5169 +++++++++++++ mlx/include/lodepng/lodepng.h | 2085 ++++++ mlx/lib/glad/glad.c | 2532 +++++++ mlx/lib/png/lodepng.c | 6658 +++++++++++++++++ mlx/main.c | 42 + mlx/shaders/default.frag | 48 + mlx/shaders/default.vert | 17 + mlx/src/font/font.h | 3543 +++++++++ mlx/src/font/mlx_font.c | 80 + mlx/src/mlx_cursor.c | 50 + mlx/src/mlx_exit.c | 47 + mlx/src/mlx_images.c | 241 + mlx/src/mlx_init.c | 195 + mlx/src/mlx_keys.c | 49 + mlx/src/mlx_loop.c | 115 + mlx/src/mlx_monitor.c | 37 + mlx/src/mlx_mouse.c | 100 + mlx/src/mlx_put_pixel.c | 34 + mlx/src/mlx_window.c | 131 + mlx/src/textures/mlx_png.c | 35 + mlx/src/textures/mlx_texture.c | 84 + mlx/src/textures/mlx_xpm42.c | 208 + mlx/src/utils/mlx_error.c | 64 + mlx/src/utils/mlx_list.c | 196 + mlx/src/utils/mlx_utils.c | 131 + mlx/test/Makefile | 62 + mlx/test/Tester.h | 114 + mlx/test/src/img_del_test.c | 42 + mlx/test/src/init_test.c | 27 + mlx/test/src/prim_str_draw.c | 80 + mlx/test/src/put_pixel_test.c | 37 + mlx/tools/compile_shader.bat | 61 + mlx/tools/compile_shader.sh | 58 + mlx/tools/xpm3_conv.py | 816 ++ src/colors.c | 135 + src/error.c | 41 + src/fractal.c | 129 + src/fractals1.c | 124 + src/fractals2.c | 113 + src/keyhooks.c | 146 + src/main.c | 118 + src/mousehooks.c | 44 + src/print.c | 124 + src/zoommove.c | 131 + 213 files changed, 33383 insertions(+) create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 Readme.md create mode 100644 en.subject.pdf create mode 100644 fractol.h create mode 100644 libft/Makefile create mode 100644 libft/libft.h create mode 100644 libft/src/ft_around.c create mode 100644 libft/src/ft_arrlen.c create mode 100644 libft/src/ft_atodec.c create mode 100644 libft/src/ft_atof.c create mode 100644 libft/src/ft_atoi.c create mode 100644 libft/src/ft_atol.c create mode 100644 libft/src/ft_atou.c create mode 100644 libft/src/ft_bitswap.c create mode 100644 libft/src/ft_btoi.c create mode 100644 libft/src/ft_bzero.c create mode 100644 libft/src/ft_calloc.c create mode 100644 libft/src/ft_chrstr.c create mode 100644 libft/src/ft_cntarg.c create mode 100644 libft/src/ft_cntchr.c create mode 100644 libft/src/ft_cntwrd.c create mode 100644 libft/src/ft_cntwrds.c create mode 100644 libft/src/ft_ddtoi.c create mode 100644 libft/src/ft_declen.c create mode 100644 libft/src/ft_dtoa.c create mode 100644 libft/src/ft_dtoh.c create mode 100644 libft/src/ft_factor.c create mode 100644 libft/src/ft_fczero.c create mode 100644 libft/src/ft_flolen.c create mode 100644 libft/src/ft_fnprim.c create mode 100644 libft/src/ft_frearr.c create mode 100644 libft/src/ft_frenarr.c create mode 100644 libft/src/ft_fround.c create mode 100644 libft/src/ft_ftoa.c create mode 100644 libft/src/ft_ftoi.c create mode 100644 libft/src/ft_htod.c create mode 100644 libft/src/ft_htoi.c create mode 100644 libft/src/ft_iftof.c create mode 100644 libft/src/ft_intlen.c create mode 100644 libft/src/ft_isalnum.c create mode 100644 libft/src/ft_isalpha.c create mode 100644 libft/src/ft_isascii.c create mode 100644 libft/src/ft_isdigit.c create mode 100644 libft/src/ft_islneg.c create mode 100644 libft/src/ft_islowc.c create mode 100644 libft/src/ft_isneg.c create mode 100644 libft/src/ft_isodigit.c create mode 100644 libft/src/ft_isprim.c create mode 100644 libft/src/ft_isprint.c create mode 100644 libft/src/ft_isuppc.c create mode 100644 libft/src/ft_isxdigit.c create mode 100644 libft/src/ft_itoa.c create mode 100644 libft/src/ft_itob.c create mode 100644 libft/src/ft_itoba.c create mode 100644 libft/src/ft_itodd.c create mode 100644 libft/src/ft_itof.c create mode 100644 libft/src/ft_itoh.c create mode 100644 libft/src/ft_itohx.c create mode 100644 libft/src/ft_itoo.c create mode 100644 libft/src/ft_itooa.c create mode 100644 libft/src/ft_itozh.c create mode 100644 libft/src/ft_ldeclen.c create mode 100644 libft/src/ft_lftoa.c create mode 100644 libft/src/ft_lftoi.c create mode 100644 libft/src/ft_lincpy.c create mode 100644 libft/src/ft_linlcpy.c create mode 100644 libft/src/ft_linlen.c create mode 100644 libft/src/ft_lstadd_back.c create mode 100644 libft/src/ft_lstadd_front.c create mode 100644 libft/src/ft_lstclear.c create mode 100644 libft/src/ft_lstdelone.c create mode 100644 libft/src/ft_lstiter.c create mode 100644 libft/src/ft_lstlast.c create mode 100644 libft/src/ft_lstmap.c create mode 100644 libft/src/ft_lstnew.c create mode 100644 libft/src/ft_lstsize.c create mode 100644 libft/src/ft_ltoa.c create mode 100644 libft/src/ft_luilen.c create mode 100644 libft/src/ft_malstr.c create mode 100644 libft/src/ft_malstrs.c create mode 100644 libft/src/ft_max.c create mode 100644 libft/src/ft_memccpy.c create mode 100644 libft/src/ft_memchr.c create mode 100644 libft/src/ft_memcmp.c create mode 100644 libft/src/ft_memcpy.c create mode 100644 libft/src/ft_memmove.c create mode 100644 libft/src/ft_memset.c create mode 100644 libft/src/ft_min.c create mode 100644 libft/src/ft_otoi.c create mode 100644 libft/src/ft_power.c create mode 100644 libft/src/ft_putchar.c create mode 100644 libft/src/ft_putchar_fd.c create mode 100644 libft/src/ft_putendl.c create mode 100644 libft/src/ft_putendl_fd.c create mode 100644 libft/src/ft_putflo.c create mode 100644 libft/src/ft_putflo_fd.c create mode 100644 libft/src/ft_putlong.c create mode 100644 libft/src/ft_putnbr.c create mode 100644 libft/src/ft_putnbr_base.c create mode 100644 libft/src/ft_putnbr_fd.c create mode 100644 libft/src/ft_putstr.c create mode 100644 libft/src/ft_putstr_fd.c create mode 100644 libft/src/ft_putull.c create mode 100644 libft/src/ft_putzflo.c create mode 100644 libft/src/ft_putzflo_fd.c create mode 100644 libft/src/ft_putznbr.c create mode 100644 libft/src/ft_putznbr_fd.c create mode 100644 libft/src/ft_putzsci.c create mode 100644 libft/src/ft_putzscih.c create mode 100644 libft/src/ft_revstr.c create mode 100644 libft/src/ft_round.c create mode 100644 libft/src/ft_split.c create mode 100644 libft/src/ft_splits.c create mode 100644 libft/src/ft_sqrt.c create mode 100644 libft/src/ft_strchr.c create mode 100644 libft/src/ft_strdup.c create mode 100644 libft/src/ft_strjoin.c create mode 100644 libft/src/ft_strlcat.c create mode 100644 libft/src/ft_strlcpy.c create mode 100644 libft/src/ft_strlen.c create mode 100644 libft/src/ft_strlow.c create mode 100644 libft/src/ft_strmapi.c create mode 100644 libft/src/ft_strncmp.c create mode 100644 libft/src/ft_strnstr.c create mode 100644 libft/src/ft_strrchr.c create mode 100644 libft/src/ft_strtrim.c create mode 100644 libft/src/ft_strupp.c create mode 100644 libft/src/ft_substr.c create mode 100644 libft/src/ft_swap.c create mode 100644 libft/src/ft_swaplong.c create mode 100644 libft/src/ft_tolower.c create mode 100644 libft/src/ft_toupper.c create mode 100644 libft/src/ft_utoa.c create mode 100644 libft/src/ft_vamax.c create mode 100644 libft/src/ft_vamin.c create mode 100644 libft/src/ft_wrdlen.c create mode 100644 libft/src/ft_wrdlens.c create mode 100644 mlx/.gitattributes create mode 100644 mlx/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 mlx/.github/ISSUE_TEMPLATE/feature_request.md create mode 100644 mlx/.github/workflows/ci.yml create mode 100644 mlx/.gitignore create mode 100644 mlx/CODE_OF_CONDUCT.md create mode 100644 mlx/CONTRIBUTING.md create mode 100644 mlx/LICENSE create mode 100644 mlx/Makefile create mode 100644 mlx/Makefile_Unix.mk create mode 100644 mlx/Makefile_WindowsNT.mk create mode 100644 mlx/README.md create mode 100644 mlx/SECURITY.md create mode 100644 mlx/VERSION.md create mode 100644 mlx/docs/Basics.md create mode 100644 mlx/docs/Colors.md create mode 100644 mlx/docs/Functions.md create mode 100644 mlx/docs/Hooks.md create mode 100644 mlx/docs/Images.md create mode 100644 mlx/docs/Input.md create mode 100644 mlx/docs/Shaders.md create mode 100644 mlx/docs/Textures.md create mode 100644 mlx/docs/XPM42.md create mode 100644 mlx/docs/assets/XPM_Demo.png create mode 100644 mlx/docs/assets/logo.png create mode 100644 mlx/docs/index.md create mode 100644 mlx/include/KHR/khrplatform.h create mode 100644 mlx/include/MLX42/MLX42.h create mode 100644 mlx/include/MLX42/MLX42.h.gch create mode 100644 mlx/include/MLX42/MLX42_Input.h create mode 100644 mlx/include/MLX42/MLX42_Int.h create mode 100644 mlx/include/glad/glad.h create mode 100644 mlx/include/lodepng/lodepng.h create mode 100644 mlx/lib/glad/glad.c create mode 100644 mlx/lib/png/lodepng.c create mode 100644 mlx/main.c create mode 100644 mlx/shaders/default.frag create mode 100644 mlx/shaders/default.vert create mode 100644 mlx/src/font/font.h create mode 100644 mlx/src/font/mlx_font.c create mode 100644 mlx/src/mlx_cursor.c create mode 100644 mlx/src/mlx_exit.c create mode 100644 mlx/src/mlx_images.c create mode 100644 mlx/src/mlx_init.c create mode 100644 mlx/src/mlx_keys.c create mode 100644 mlx/src/mlx_loop.c create mode 100644 mlx/src/mlx_monitor.c create mode 100644 mlx/src/mlx_mouse.c create mode 100644 mlx/src/mlx_put_pixel.c create mode 100644 mlx/src/mlx_window.c create mode 100644 mlx/src/textures/mlx_png.c create mode 100644 mlx/src/textures/mlx_texture.c create mode 100644 mlx/src/textures/mlx_xpm42.c create mode 100644 mlx/src/utils/mlx_error.c create mode 100644 mlx/src/utils/mlx_list.c create mode 100644 mlx/src/utils/mlx_utils.c create mode 100644 mlx/test/Makefile create mode 100644 mlx/test/Tester.h create mode 100644 mlx/test/src/img_del_test.c create mode 100644 mlx/test/src/init_test.c create mode 100644 mlx/test/src/prim_str_draw.c create mode 100644 mlx/test/src/put_pixel_test.c create mode 100644 mlx/tools/compile_shader.bat create mode 100644 mlx/tools/compile_shader.sh create mode 100644 mlx/tools/xpm3_conv.py create mode 100644 src/colors.c create mode 100644 src/error.c create mode 100644 src/fractal.c create mode 100644 src/fractals1.c create mode 100644 src/fractals2.c create mode 100644 src/keyhooks.c create mode 100644 src/main.c create mode 100644 src/mousehooks.c create mode 100644 src/print.c create mode 100644 src/zoommove.c diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..53d1f3d --- /dev/null +++ b/LICENSE @@ -0,0 +1,675 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..07234f3 --- /dev/null +++ b/Makefile @@ -0,0 +1,70 @@ +# **************************************************************************** # +# # +# .--. _ # +# Makefile :+: :+: :+: # +# |:_/ || |_ _ ___ __ # +# By: djonker // \ \ __| | | \ \/ / # +# (| | )|_| |_| |> < # +# Created: 2022/11/24 10:12:10 by djonker /'\_ _/`\__|\__,_/_/\_\ # +# Updated: 2023/02/09 01:03:34 by houtworm ### ########.fr # +# # +# **************************************************************************** # + +NAME =fract-ol +CC =gcc +FC =-Wall -Werror -Wextra -Wunreachable-code -Ofast #-fsanitize=address +HEAD =-I ./include -I $(MLX)/include +RM =rm -f +UNAME_S :=$(shell uname -s) +ifeq ($(UNAME_S),Linux) +OS =Freedom Respecting Linux! :) +LIB =libft/libft.a mlx/libmlx42.a -ldl -lglfw -pthread -lm +else +OS =Proprietary Malware :( +LIB =libft/libft.a mlx/libmlx42.a -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit +endif +SRC =src/main.c\ + src/colors.c\ + src/zoommove.c\ + src/keyhooks.c\ + src/mousehooks.c\ + src/print.c\ + src/error.c\ + src/fractal.c\ + src/fractals1.c\ + src/fractals2.c +OBJ =$(SRC:src/%.c=obj/%.o) + +all: libft libmlx $(NAME) + +clean: + @$(RM) -r obj + @$(MAKE) -C libft clean > /dev/null + @$(MAKE) -C mlx clean > /dev/null + @printf "\e[1;35mCleaned Object Files\n\e[0;00m" + +fclean: clean + @$(RM) $(NAME) + @$(MAKE) -C libft fclean > /dev/null + @$(MAKE) -C mlx fclean > /dev/null + @printf "\e[1;31mCleaned Executables\n\e[0;00m" + +re: fclean all + +$(OBJ): $(SRC) + @mkdir -p $(dir $@) + @printf "\e[1;34mBuilding $@\n\e[0;00m" + @$(CC) $(CFLAGS) -c $(@:obj/%.o=src/%.c) -o $@ + +$(NAME): $(OBJ) + @printf "\e[1;36mCompiling $@\e[0;00m\n" + @$(CC) $(FC) -o $(NAME) $(SRC) $(LIB) $(HEAD) + @printf "\e[1;32mDone\e[0;00m\n" + +libft: + @$(MAKE) -C libft all + +libmlx: + @$(MAKE) -C mlx + +.PHONY: libft diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..0e89021 --- /dev/null +++ b/Readme.md @@ -0,0 +1,16 @@ +Todo: +fix fractal getting out of aspect when wildly zooming in and out +fix CY and CX value when the doubles are negative +multithreading, give every Y line to the next thread. +auto zoom to current center. +Option to not draw fractals but only show next, next, next, next..... mandelbrot iteration +Seperate Calculation from drawing so that color flowing can be controlled without recalculating +calulate and display fractal dimension?, count edge pixels at standard zoom? +option to display numbers of the numberplane?, if so how to shrink with zoom? +add an option to blend colors in a gradient +vector graphic fractols based on lines if possible? +If both numbers get very close to zero it is definitely in the mandelbrot (mess up precision?) +Check if the last number is very close to the current number every 10 iterations, if so break, it is in the mandelbrot (mess up precision?) +Use Symmetric properties to draw the first line and last line at the same time (only helpful with very low zoom values else it only adds conditions.) +Somehow stop calculating if a new calculation is next in line +Edge Detection? diff --git a/en.subject.pdf b/en.subject.pdf new file mode 100644 index 0000000000000000000000000000000000000000..11ad9396a95ae0fa3993cb0ca133302adde87e97 GIT binary patch literal 2461043 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%0DN%nB0f_yOsHt*tSK(M65PbE>0*~>f+fXY`vx6-o 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

3?I^*rw=c#3W+XQ;wN(-PSWTlQx#d*k??B z3Zn6(5JTNY-_t}bJOBDWu)HmDH* zobkw}96X1)Ll-nQiWaNmem@ESy_@T^el-{HP?u^T^mQ%h3??1DiZuPqsC^(}4p>|U zq)!J41A|9QHc>{zM}S?ZJv{CaScGTMpv~V1)qLU z*Mrr|#BaP5gi&&;YMbF-%-x*>ItGrN(iFVj7fM-vDZ8?X4KA}V?m9tS*#CO-hn+Jp zbWTiFnYqg&puWW1OZArE$LrgoXJ&WWMf)rl0?7x}cq2tlp$rtG3* z%TE%n6ao^V7y4(fksRf{e$jpSRw%$Pvq}3>zs5QS7%)KD6O8Bh^ylov+7Uj39nl)~ibb*#F?q5$_ zT)Z23gqJDE4&NcnGoYrasfyWJZ$6A18JHkCmr>HXIvr7RN6jr_KX=GXlz}0e@HJp`goCnBD>^qsQiLny5!W2aSx#>u^%nH_`B_sKSWU|eA~DEU;o*C1nyEotB@$&4t()QeO ze^6}^IGPYgp$h>Y7k00gS{a~(Fio0rK~3bCE5WRyi!5-LF`sreF<9y&Wi2oy;sHMT z^+p{#uoI0On&Z>hSP<1U^;rtSCe$$1TFF~Fv+vnDj4KZa0?3W{b*~R&Ui&G{C1glI zbNqJHdLk#qgO@BW=Ckr(KzWH@lP=@P!c#BkweQUczL`oT&%va5t=hfc4+6d%em^{z z9^lza%*qqNY}^9~&SDpQS8Y<*l{H`;G{5}J z!H2vrdEuZ-#E89{eTD!U9>IR?dQN&Y z%G@_|`KuElv!^Gqu?cqR@_BDGoy_}p@^6Kc1Uwnc)c^i8B^6Tubcip#c zX<31(K2q!rH!saqalGJMXO1Q*Zbh=WcU|rM*Zl(r$==}_UnMOH~tPP%l%r>fm7vbD{>I$#o?`L zjn5F`qo_cIvCo_L_&L(6HKw~!#Ir6NUO@I$$Wz$u=@IkhnEU4ki|iM@(pXvP#e?I> z?=svmN*9L3Rg@7Q1+%{vPBE#!b1a_SV1?}inZtiZX`iKmsE%**yXQ_iEO{1f-G6DY zt)dkjH$p~}`^=GaQ)jA1hx%O34=IceYb2x%z3#&RW_(Slv8F>4*);-0avF zUb=wE_3I@b#t+nB08^|1`K6XNR+N_%B)%)ur)np@Llw2m(FQXxtc9l2xEa+Fy)1W! zxy9-M?2;a@5PsW4%r1&F_dJyM=ZulTvccbrP5p?W-$X@3KzKzv&Y+n0;Hqo?KBHCa zaj$0_5edvdHR-mIxO^KIx$ED@^ekP*NFLHL*^Ed3ArT9dmOr$ z!ByPub?mNRZmg9t8?y~1r=e?v8f&kdo1dPv%y!hVip(SJ#Bj(P3iBJ3z3|#+s&*=2 zIlV0wO*uKv&3}6H+;Y({377t4lezgZ+f$U^`8MrqF*1DB^=5@4fRE$dtJ-2~=6Jr! zst~0yd|dA3q)3ZrohVN@8EPTT^8Z=>@6n?L%9iDy%}wBw{pi4m*82--FqPO8;|$eB+PK845z$I^TRNkt@l zOTnP6ddNOL|6M@K6OkiuHVW(|u$5zmdpjUi%a+!0EYX4|%qGa3@PD%4#A;G6z#@;D-7XXfn zbglsr{XtiD7SkM-qXxz-QoU=^*yYg4qIdPb$`^Z@8<+-<5at1vs);LKL0#?_g2Pik zE2kWx3l~f3*({-{ajr&VE_t1Ob8ln#yn+n5&>B^7j15Dam8xd}-G}d?Dm~&xNGz^s z{kFDH82~nHiF=PvMoeXGc{ORaxFj@udt+jjRa=$cjjLZ_+f2*VADt_~60y`%k?_8A zS?smN`2=LNsVOy;uWopE{xJ47Ou3+LdYYodJB|8fs@+fG|&IbTJp_y>|x0 z$BG$dg@Yqn04empmhEwuR&-~FtDNY+)JSS9`_|fY+)Dkz{MA8j7;UA%L`Dh3un1+0 zpnKl)hs?URpEGnkyUlsKOHjQAK`H@Mm<&ex?Zvlt)U9tG*2f!~E|{hkaKzUiQ^K#A7n;&d|q8nMV6l|bicCuh#Qd2APL zC4@$An2h^mrKRfjL$!?q4wn=@!DiQOKj6h#VZ|@iwLdG#2lGS$YNQg*rQiWcV=-33*b^wGr0Mi`!cL zv^3)sy|Ff-8n8sY$nD#8i2prvInx`aj7cnNI=5#Aqz~5rgC3n?3=oca&eA7?nT{Qv zmtRm3f2adsAA{&4*3|5G-Q_aE3QRbk&R2EcJZAKE>hd~vzj+rpx4u@y^!FWt$P*h#3w9dS9qh@b0nj>d%gr-R^5?)a zp3~A8l2gM=-<@*$iodHfg2`qTF}0@q3ANIH%V1j8;WKxInpZfP1>;&PixCk;R^gW8 z(`R`nq(6(R+@D;Ad(3c_7rA|M5<4GvmrNB`+Rwdzig5L}`d9)38*s*6F*1Srr|BjQ zsIq9WtyplRj&ouD-ASVO^xp%u>sXB_+Lwot3cMM4tXeYyrAqv@1Xvl z3baOT`Q_|K=2H67KmL^jK<5Qd}QdHdrZCEIx|27qO`L&^v~QO`#^->2%eTYr1+WTkvRASuGJ^+TK0 ziO`z9OeA_F93<{iD6=c)bgP)LU!~}YY=_*r)M&TVYHmyTR5B}54WRg-z_8beeh~uW z(W$UENfNkNERS+D|4EXbbRA?vRnUnwcR@teiDA@OkPav#FZGpd5lsgx9iT>A;!)im6iLW2;KndM&&FkZR6DHiio(7i)(L zd9DDz<$wts+|#UC_~pHe7NjPUvwA4%Wm~sGftE!gbok~LUtLW-S$#{}9>6PLWl7r> zl!Hj?C^D~$6D6xdDx!ZblU+tN1@&lS;xoCpJY#yM*}Rbqh3SP?1%)c=P|h}ddDAp* z%?t3|fj8MVnL;mVW*a-cmT2)z5ak}5xTy1=e2=SRRyB*12R6b`0=!4A?VjzioEx1? zYYWeZX@G$|jB5H8zW5;3oI`ZApD22PhXhKvGV?O)2)x%Zi6bIaX8HQb8-|i_2&0&_ zIia*ajA{CYc}6?K{X-uIABq~_3}Hn<0Kb;|;7MTOLc>8MDc!HDt?I;nphw?Q9!Y0V zxgzF|o<&a8LQ0lFK*0K3nt+wr@JcyhbnefF7;+1e8I8beYGsx_ZR3m6;=nlIW7KW} zGTMLRfnFVo+uKJg|0Hs?_at<+@D#xrOPTQUS*aV&*lMnDz?1)teTyfz=2v1LFW^`d zxoi}DGRc3^Wa-R8%h@t%G$(&3ZL+`E8Iy%TO#GBub99^`)(v^Yr8i7#W zSw!)$<^N@sB;K4k+W5`gumfOGhX+E@g=CRY=0kLl8&SW5@_~9i>$X<+y82BCrtX{F zOb@ff;aU8zyaLIE0#BmNmQZCX@5`=^$8tS^(<$?shYLNnOv+_T6VZ=%4g^8dKWF(B zh^s?ue+Fq}>r~EJEqh2OKsAZqm%nE!dtZe5N>5!)MO{TlTTf+!*-4vHr#R8vC{`FX zTC;5eZL~K_Tt9Ut+*sNMpR&B7uT{f?@^6NOXyCv*T{a zLw9G8MhxatYlTNOHx!x`cEO^-r9ZjXbrQ4&=nsT}$bZRIgR^;Xii5XnyGOj?~Txvh${I-{tXq z;Fk{@Fq8Q()16c%-rIf4640BLl9K@N0Mt1LqEm$Zx*umFmReahg;&OG64QgY=Tm}N z<a0N8KVW$Hwzx9YJPA_PJ*Pt^w@_sHp$ZJfn6~m zO*LMWNs=~jwmpC7UhdR!Tm3KM5dWZcY9<9PGCwrz01g6gqrGs*c3v8GKcZ2f%38 zr@g1PZ4(>_x&+f9lK<-?S^D7^H`ieYx#asQ?SJ4JpwH5Y5GJHt^O4D&p(MIpA?oB< zYieapbv*e*#b z@hkLm;TYEo@iBBN>JpO;&2YaTO$B+)A3A|cbsq2YRFZXH6g|^Vj9iW6B%(Vwg?`KG zE12dR(2zNo%g)%~;9}tOYM0lHVwTjSgY!+))lqhG2o(k{BF)T?ZE3+@8++{Q9<9(KfQffz-V1QYCscHsZQO zLF#CvZB(&cuN5~^2EMyHO_ss9jy?MPVv2UW4cCuQpI!&4NVXup0{xT z5zvSVUrJ6xh9uGu(Imaz36I#3EwJ&*aiC5^XXlF;Bq6={OwTsJ?k89;L)1s}1;)^@ zF~0U)(GVBk;4h6gSo@3R(+6v(zMY@$Bu-J$A7?$6mx%!40}~CS(siyV4lCH($}4Bk zGp6xHj56wa4YG}ToD$cNm5t3#Ww$;{7^Q{!A2mu5*}<44*^jmxazGCW^5VRu*JR2c zaaWFyw52J{FPz-&$?j;C^&fwgJy<<*dRxrK+3VglE%g&UEvx+^A`vJJGYrMMGb<@K-QoU+ z1w>J+$iN?FGz<^eA_F_C;zhwiOhDmjn>u18B|NZ2PJMBFd8^#wtBTjawf%YGH&4u1pGyne2%nA@8V=3|s8Fp{d@IJfWBv7sUG~tQ7V$7(PQh~#J=V1- zruI@V@j3Ej6?YxLW4XK6Ei(N$UAi00NOmYu*o0T_UdCdd5i@g-3#q9C`S1LKpRd|w zpEb%ovvATrBK-opm`hQg)tpgJ)d(uo=WWBjO{Yz@-2Ihd8Dhxfz8d(Y-|l-IfyMd& zAhycjMw?rA7x8QHF08vYqu@aVl2dPSPorFgU#01ns+GHRciMngVZY+z8^+8y%NwR& z0ZPbtva7pown||FvmO1*FJv^(x^=R!#AvrWig7?K?YJ?P*EA6v%<%J-k-u|U>s6r+ za{l%qMb^>g6a|}0Suc)b8eJ_!T+9J4+wp{ee&_pJ&YaQEs=AWJFxVgA8D0V?$oK1- zma5Y)o)37${YOYk!FS50uB6_{L`;T2d?W+NYt|l9WzbHo?lDg+*uHD@TbD}m#fvq> zSTgZ7nyjmYt;xtc1^pr+$1nl@m=aF|1BgPy_vAfuR1QwRr8d#che#jfRcZDFLzOiz za?NA1Hw=d5we*zM8TponZ>RcNU!=D#5@jNq>EO<)&D?_B>eZnvk;^k;XH5jU%G7~^ z4@UhZ&&UINJ2rY-=B5*Ors)j>~6yz-4 zHVi)g|4&sLRg+TS#(^QpoZpn+rQ+z*$tdF)jDY(%UhHQ3e)nieGO4wE)oZ{8MX@Sw zwSzTMq;FBxIyrrA6yH&IMlTBowt-`L7La)VeaIoQ8?b=ISfDB1Y2MG>uNJc^?mg)? z%cf9GA^5*4acLCxbV8j4o|V5r^hvtBn%s-TQMC9{x^~pKA1jy~wQEL6j7$2mOH1d= zVd zY)iWW<)D19KUE}K7QAf~4SjQf)Pfxv#;K4E{sV5frHJwiAV9S=uhNr5Nc;Tq^ERFs zfp+?ov|xT4{K$?+NTH2JejR7Hfvv|DA<4Khfj${VWdPeBi_PZTpDEs0mlr9FUUvWf z8H^=qO(nO|5A;xs<*zs9yr?3fM7~zi?}NdRT+b=B(Xc`Tk;fCtm>*R&)6V{=JZ%xV zoR|mn0=Mgpte0C&gXNZagJ0)=iszd?*6`lWwVkZV6Kt{3W(madSte6J_UgEk$|<>y zF2wstBIyZ;(CMWJs5c3eiDxjRPFa9jJQJNXZF+zu&1|=DARU8z8SGJJ+Ej!$`q!EN zf`vEUF-XTM8;>B>HpjcW&OI#98J4vj68YYpiATJ-YZLXe?p2UYR)UhGD2rJ`6 zthtvoT?1DCnNGvqu;C&>SE({2yZoDNF;>b>6y`$m0GA9FkL=9r)eL$xB0zHT;YsI2 zU1N3V-GuFN)Nx5y4JNocTXQr>vGM&Z>mwyFAbigPW$&*Ka>(O!B3C84^NRrQ2iz?> zLK~!!JJ<8Wj)ND*Z`I;)!byBdcRe^(%9RqGa}MJ`(?okFlBF`fQH;W_E_lzz-MLK* zY2*jPwIw-wc3be-0%pWMJ|CN`5Vvr$lD8@lH4x2bXa|y>%e}}qy31*aAqUoB`t+^^v)-EWiZDK z5o^>>GJky)i&u(dRFdSF;+4o~kKvL|)Nh@S)fLLhPTLrZNBA4=_>!HbRO|^mONs6N zAIffeZm2nPrm4G~`TgX0yf}VCh{Ob;U+mPdc=7&97{a5111e$twqu%j%U4z*h+V9D z$7hX4;-uxOoH6??4Rn4v8~@P>DG4NW5R1Pb}UWw%_05DtE$a1(8;O z44Lfi{$vzDsu}w26wd`--@BIPpu@?gb&#s#zLp!Hw$G>rXoGnU@buP)cil`P0!o+c zck3Mn0Gdr0uRa^yz)&_1DcS_@&uY>3Y>&@!nq>{gmq4Q+K5e2@N3GfT5FmseUf1;1{$5;g$@><7SwA^)QJ3^N9l9adrB zQlQUW`}0NBDd^#4LagJ7l`Rx2E^d{R-kN9ibv91zTeEZd0^O3($aKICQN~0S>nV&T z?E;?F*=^|*Zn|b!qltnh_9CX;!LR=?E4OdZpcY1syqWc+FmoSC!p&(VOYa~f>p=Q# zzem;8AG8mNi7Pbob%Qv%U^gN83KhIex`w3pS-hPLb^Z4!QW#AzJcZQ`aDvi0=H)Zn z2c6Sy?yh6M#$^`&*nOxej%3!Kh-_N(?=1Lv2wU~nJz0TMS0vN0O5*Udm<96{{guYn zkS>EW%Y2Ol9DZx`5aL2Bm1nMmaGaA8y5)vjz6KAS(Z%0JW#>R_@?QmnBip~Uk|mIS zJJEi3c7p%)*OxbeqEsoU z;z<9NH$IIUgX9(t$Oq%ykqYwK*gC!6ito^YD3XEKei)EsGycWJFkoFn?E7ebCpj-J z;ok#P&jcJ_)?Fp@1nB{=K!cv~q>U`)qS>3ychSkwpV}%K0gHJ4gdKm2Xsw|Z>>*hEMlqZjGvHVTvcIC%Cqy+1HhGivA~=0mTRnLBE5x4q2=kq6LyY+FS5@{j`>&jo#6^vXuQand{0V&k`ctA*hNR`&}f-K{J9MbzOn;q4tCU^&Cbkl_w zOWpjOs^bq|$26aNal}{N(-fBuV2hJ!$p8=3JEajb!+>#U$3~N84GWaBBd{jAu{MI& zlPYs+<5CuZbjKC3)(O8-=*bTU@QvW=r?bMR`S_|OKKojAB&qJ$_mP1hj&#cazUWV* zof~1iRr$(*!|R8QU=w@s@Rn}71jK)@ahodiVSVEW;qV_Euz^W(;JTJtsoU}L{W0WwFNR z{7NBM6VyPO;tgeo{ew(K1)YHU2aSJi4yw8a`eg6ln|z2uJ=KDp-DN5L$c}LiZVLK1 z%K=7i4dFu$S|&_2H!agnTe#Y1#TbT8dc{i7fkwD$krR!Kmr*n-*;vIiJd0|ZNAo6s zZbbzxsj90;1;}nCsTpV*piiPPf{CIIQD2jaQ%MjL&TXXYwM|$RmQl>>T8rkl&Lvp# zfpmD3qWppr#gUzB#DXGzv(Bd>FBz$i)y61%;UJy0ZVW196@>k4YDzVoCLK0Z>qgamH8X!<^wlT}ukJu&9uH0<>Gb^`6U;#6k{ zw_JhlSpJ)h<@LMq`F9Jf#+3lI_JlU0NifdkTSzy2r_$(|(&e#%<0-mtzF?3)kj@ec z5OS6>p}6gMS|z>=sXvi?_i;21d-Q2>^(Te^KPY{FvK%nJ8XbTx?mjVvxY#mmJx(T^ zSLsPiikVMD41wM4daF1LCfYl(U|na`6UE{ElAZ4YPdFld0K6oN3KZY658tI4-Ys@k z|DWP*k`1_UvnPq4qJ+ebDG-pzuAsHCrN-!Z-bk~)i|?R5BTHlW>=?}I-dS31z`1;J zW}lhwwKs$9ga2i4M9{mg$wYBudv7|L`gszhPZ(KM=kR~(3625l1HJm2&Q!eqgR6$d7Z>)Y&i1?FbOknM#SZz%a7re|&B$@07>QMMafz z*WQZY;Hp?kP71|tv>nH{ZR<4-Qne%4CbP7onI1idMj<*Rv@bR9>Dg+|Ek?PQ7lnv_ zGlc?#zbTCyhp*7i33<;@R5{VMs{|^E(`A*B5A_6Yl%UwE780rW!NcIK&}D9YCYgLIVP0!|3g?@6#GNlW%idRxc<5u zW6>>spCJ4pY@jh|c=sJ^g_&>Rv_x-b*+sN#_Y!DwcmyHMEOtC!V>ws#DCR$D!;y@E zVxbh9KXe9#(_jQ z<|8tttnqWpMeZedMyf%FL360iyt%Jp22d{5>9%LKlO+*I{kB^!;0Y~VgQ+jR&0Pl# zWHIvu^p^tJy_NK!F)QR^moMlw#N5hssVn%)80Z%iY>wjn0UUW1d0RjcDbNThe(6Ad z#(%mTrT?`cz17D#%{~0BV_y5ezBQBr*>QQxFT2C$nA~;v6r%!ZWus#NRU@vStd~Dt zOl2Igu;ICBeeoCB^%cy#>Rx?oByfLz?+L!LM4f$Pw;#o);?o4!`m1DA81;?cBB1q` zeqL1%cDmns^9E_W+L;BhuMa8p%`jx;*Vn!C9DGl-q+>2qwA0Thc<^sj5?o#5_kRi% ze(Neip`>!a#t*L5?V+_7>7h(8mt^^3$%oAk;v!0x;66WUiR^mEHfHyoL8$Dz58iXx!#*xD`}FH^@? zD&rI;QkW!7|E5~o56cnq*c4T84%}#s_A9^DbI@d#o5K^;RX(~by6yk?jF8?SvvBTV z7gM&Ce|LJ=|H^g!U$ylqP;EWi`9_0+hK)4SVrpetYRdP-U#c+uYh4s`2|8B1USd4C z++r~r2iv~=v~Mb%yn_*Jb?XMeOX{vu!hud}7Lu;CI#CADM7sa=s-+b1y-nqn@M|G$ z=AJfz)C>&|EY%^PcI5fbz(Z3;_VC{mN<9{3Nc=BHrt4MQg0ot(}k zuSwn!(EAAaiP?s@qmlHrZNFn6Hpy;)x1O8MiH zSjF*O3o6e39+1Nt@*jL2)>8qxFHYca55cT2X?lsC%lkskAM@oW@L$eGPS%rAL+ZYRj)YLHx)zJOpRY?;urim*bdCV%MiVP~kJRiEcj*J8cd^g47Vs zXH2m=Y`Z!GRAAQqi;ErYb~8Sew=?B@e}Qt0&r*F*v&sW3UkFTF;Zwf^Q!P>nnRPZk z91GFMks{YPk0)gwsi&h=r14%@!`GZeJNxJNTNHc{x~=46aB5tq+xejEk1^To#xAYQ zsRO5btg4lOh^6u2@-jqvaVEqA(*q@^_>*l*dC_;d1XjV&fpsizzcZuyw<*2joJhTj zD{U@xq*>6ei@|wsVFmPg2QX?AMp46_Vl%sJKz^37P^pDcn?W(kIM^KLlaYhy zug7tl9~YC8+j#L+5{gv|Cg> z0ga49s<1AZtm;kffMvxBBo9BGvaYC{FW`!+0~ih;>43|0tJnj zNw}1|(-yhn&kOz~%G*}VYVUxJvlSXc4$Ao{`$nmDwXb+g)4^9=zjU&D?2vuKg$=R@ zT16b%R?7LD>)w!SW0j4Ou|6k6BEP~o?JWZC$WR?r1o~0P2LTQnA{>PS&sGs$^6~ii zT9u=k5E0X4^T=9pv@I++%N4pI|2;}v-V&zAjvvnXvljmVk}7v#ppTfKxDFZUnNJ+~ zo%J1CX@*Q7xbf3l^e2=2pJJrAlcYvovR|FokzG#E=R*I~JU@=UsGhQW=If`{QVC=Y zF;a(x25SE*19t0`o~3R!5l_H95A_h=P1_wGo^A-9>D#JwMwM zwIwci93dCqwO;_6dwKqW-3Su>`V~~oXqopjJCA#49J$b-1~yEVwW&^_#>OpSvKzK` zR_rFrT{w3aw|YoqGr6&R%iW1jfA znCMLjcym^!Hh7v>3I=5SPdv}l1fw4;$pod9c#1^tHG2%7uJ?eAI05!|`H#?}mHJ3K zf3D{|vGLy8=Ys;=MHFgb=FmMm7c!%|ZUI{7tc1Ij_QoHR?suM*iWZ|;inF$7j`t#W z27w-t|9ee2Yxei2Yu@fl^;d`mUZ=%E?=B*9q54mL$Cpx@Y+jaKot*)&;G>q?o7T@+ z9-=xgTn#Euvyv&t)0f8bVEQ4n{yAX%iJAgNNGPs>$i3ECH%e-s!9Fg!h=EhqlFe>k zKm5f95+~mfHum|KXgK?5nu#?D8UuYL@1t!RgW^U|ituCQfi8CFlZ)=#VcL;by>m7y zzHwfI0W$LY!z$cUrN1Z7oa$Lfu_x^`@*M2@@_|4>Bvx^L?C5-|U1Iyk>J@ywhI9qv zY68=J@V-emR)5+w*=&})+;kKn;U-Fy&mqmhWbKz;n-6lh(f^3wQJ{DU=A60uxk`b_ z<#vWCc~oe~1fYM_#o2OTaX+;(c;F^V#ov;0oux^o;0_J8$xKK*5?;vwC8g%jYg7>@ z}=h=4{|iV963(~B(e&d&>=e6rim-hj6qhE0n}l&!8Z;@!@b@dBqC#d>LI)T%YC z`=qw!Yt-$Hn(4nU4L4BXo?ZCCE?y@RTK_D^<`8kHz+muLP?li< zZo_agq2$^?W4=9}%rZ{WRD4siV7f7%yAt);bc_Pgw4Es~MOIsXiUy0nvt9{s>Y~U@au~! z%pr(OrA2nTLl#;v{oAh`^z)!LtaY>bqb4#L$zjtv)b#GYZ~fB|^1ny&3GNc6ilBv^|1xuUzjZwyJ3WJIRmoUgUimZb9z~F@ z;jarSJ&eI=-n_tLWtTwg2|fXel)+muq3Nxzb)H=h4;zbpYdLwwv!b!V9|!zh=Qsp* z1m;99CrV=j;hVld7su&*mh$mxc2neZ)}&L$SfcgTC@*|$#O7*jXDvo{_U#y++}MI* zJMojnD9fnHMS7j<@bAanN-X>BB9}KYr8gIa2)md6UO~?{8D8__pHl}HO`s*l-b-)>rY#0MlS1hyd~KEL=Mr6fZc?W5 zDW)u5X6AF-2hqc;I|?O`lr&Yhj$AvyCFtQNVd!VLz2kfKw!dJ&=10=NhF~#SUBW_@ zm>FLpSMuD>d-m8|VK_XJ7RnGAXpaF1TFG)qMVPo|eZ7lnBlZm#dJdUGYARpapB5lt zn7GrUO(e`47(|4Gfhoq0qw_M=8lc&FsR-#~RRv-hm6oDBj=;6xkVi~8oanAj(Nx@C z{e6NBMO65Ct8+W~yqE=sP-p`!)zirue2Sq|M~UYuNQ=Bps_ddEFgz-1Ahq@Vfe*4< zI$7uEd$o6jJl8{=8KQ`a*Y6j(Klb&1E-55g#MoUN6!oe~7XFdKU01>79m%MzkK)qE zg>5wp5kg)Sp850a`7vn*gYVjfA*hEv{j}=6A+q&=ELN-MK9>gaEAET61l4CEK?fdO zOs%8Rgm-c5#kM)VrFX)qK$T*Y!4Xy4Am7?7A8P%{|M2uxVNtH%+q6MSHwe-oASDe7 zNQ-oLw{#C7AT8Yj(%l_HNDkfI-9yK~eDB`-|ND-Z6VBH4K5N~H@-gOHO^QTLA@~^8 zJ%(*_bzLtFo4M0@3TzdNuh`Q9#j$5geX?0x2P{NU>Z@BmI|0l?1P`pZK_9n-l_ z&W0}d9|5I#$9wqe4ZhFEHkXUheV;ms{++PTkz}u9L1(i#_qV4%Th~>3&Z^gk^h!Uv zFEy~)G@QnD6T}2{{O@!(R*E2T}g9w6!}MOefKjNM&qgu0#j zZBG>53L!GHzGwVkQ~%8Y2Lqi$73nqhFRF?ut*GyIo~&Agk^UgL1(Wd;S1nt@ za>Tly3{XSj7l!eq<`Hz0pTgRH0BV`iUpU&<39?c06>3FgQnmdX2xiD0BiikXIUh=R z))h)ux4Bi`)Xx~^l~|RJ9=Xuxnq8~8nr)_8-MilnTG* zxYax{Z`Ws0k$#PieoK{rk6&!+RBPXyr&X!sOh${q{>pQ~RxyG=2MIRBqy_X`=Fira z@eyc{71uB1O&EK>4nrY2_1;~8`2q?luf$m!_aro$w~a4Q6kzGt&vf^eIKqivOL+vE zKOCYzZJdC8+!`Vl{eXD!wp9L`iw529r7$`9fK;3sXWQz0i;L;ho3Sysdd%Ug5nT$y zHel4GPa07m=qK`7sX}4?sk9OW!c!WKgMWH{N6-Z_~)G!|YMi~xFdo%}cQ*;oIi{8$3-dDaDH8@IdofUdR4}a7%2k^mIlT6|sfoA#T<+~k z#J_vh+rFqiZLr?j>RO9~eZw`$y&H6;UF-Xi^Rs5GFZ<>iiQnOEN9@zu#%)SGXzrUs z-{6rtyMxl8b$NzU8VFTu7XZ>>UQ4rft!^S$f45q1g|CkTd>CRtykDNWir6jr(wg~xrRBU| zj}?AfdTt^)a|==*@&Sqa6jaP0rcJwl|r7odJ@&*VyCD)Hb{JLGatP!PO$?A3rj?z{2t6zEc#RFUj?ioy&3| zwsL(^Cp}SmCWe}Ai(g0~2G{a>Ct4MJ9m_lof7Q~yJ4RW`t{VgApDjHkuNb1onu?xc zrx@jK)OnS>u3lx$qVntXchj(MMAM~18c2NSqkt5lBmbzsBVrqZg;d8}2w?|F$2k}{ z+IsOa-r=AjeT{>&n|IQ`*abv{cV3PgOB?8GoBUOc77uc))4~ld1 z0Pgdw;FAxZHaE{kpy$h{Q6lVwFf#L{EeF05g_2) z8vt9$8E?oLFVz0CQiTvV;<{tPSGjk>VBYTiU!PV%A}~moTYrlXq+bX&{`q5t;Kxj+ zQBC*9*4gHcI0se%T2=29nmBoGAe2eKT?K=2#J)&wuC{g|8B8hBDkJpuV_;1Y9;-BgPm-= zmlFDupok@wkbGbbe(Wsy;=)soeZ~Z`J%pPoThfWJ7_=huFoQ;GRHe^s z%0*r3vDL(P!0IIV!NSCdq6D1(?Z*6HBEJyiZgnHy*BFP%i?{a3!6`Es)=^>6x-jsDBsm-%h2CgyfxVfCW6vOxMC;*pzZVq4`ecFg zQvRH#n07_4fWGG8u|W>_B|N@Tx1Hs zMNt{bb<^=I@wLnOLErONY~1~yf2v`c?xMrCn^*ip_ldXVoW|F`Bz2-9E8Eq63V{CY zYmY;qo`Cu3NJ1g=zAU zLa~pOpr->PaFAGv72tagyf)%}zPY&3P#9?(5C%sE^o|1g}@eY)m;6 zWpzIUtIKqbMr34~bI~^*ViHTWs+CAvYFku&h@0W`+}jL7z4(KB0ax>{NF@LBoz0$P zta`S~_i_GF#>%D}ls}oRnw(6(3O{0qqR6|Kk8aVU#XJeh8(tQf=H=)~2Nmae8k%cu zlz4RDHsfArrB~ny?qP1L8M2v*rO@HMoW$sCWm=fFkyRx;1PDcHBs?M(m^5N^m zh70;b@b{c|`B$fNk+CH3nwt#*l;@Cf;(qe{azQi;(fhW8nPh|h#wq8oqV0AN!ruWS z1rXckk%9cz{oCcI!#iJ3%_K(`rp&i3oHzG&XHF$auF`~;035k%;uG3fbGW0cd|byu zWb)ltNltXu|Bkbf-~n)>4R#|g4LrPBeHk^2dT%XMGu_S&&CR!bH{(U&7DZ`Jiu3n0 zPrhz&+jv@M#yw1=-utVJc#eL)YpR`Md}8y$Awr&^%%r1ROOL*&ezS_ZIwK$Vy} z@}{e%dasKE?b*K-1{0Gcm+rh)%8|)+*D8yQuv-rOshW^zovGWK?wP6;w`$LUoK;QE zNQSP)z#NzVDlUE2lH5FE?Z9-mTfYKT!A&|x*(VJ85wELn05)J{YKke}r<$T7M>q94 zDnTg5kx|YxuDjcJOvu~uOhm{cZnRE-LB+7FMxug-jMnL6_vE@kNXxc*S%HWdjr;C` zMEhV|;3s`5#lU$|KyLPDmKSfMR=a?4Xlx8*584O_dR>fvE7xqB|C&5AvTxNJo*NRq z(KjujV%=73)0X4BZ7T;dS;BEl)O5AXv2(1b2a)#IM6pBJwH`JtPcp4#6}XiflEYI6 zVU4cq5e2{5Nn6LbuQLI-c(UP2zTxWJXiGD20dcGzd*pjInuL3d!6B&*3Sd$mP!H20 z)idlj-Ww1Kv%ws0;My!uG!3cq<DvIcHAeYg9e#@H7|dcQcP0G8L!Yti5hW}knMkf zvDnTj)HI6XMv{Zd(&qt3Oe|o3H0AzRQ~tei29U`)h>+jDQ5HCEy`!d`3IQ>4wZopgr_|z*f{-9GW8}fYl=-KG7(qZygLb*Y4&|#>= zc62g=uu8yGZg=3c@8Wt@L4hsOakNo*bIc_0%VE;`$=-pLIQkBW)yjq)^GDpqpBDoHv!O+0i&B?l*1-*yC^2sD(?%s=I|JSDQ#;BS#Y!ns{`FE1D@R%# zDkjv{R>jEM*_=`BE?3Rh3mW{WsYs$9AM#T(&OpZ2|49Ry& zm`^5k`eoD)gC z3*XzWvRt6EEr2GBD&vNQM0R5gR6AhpiMy-fr(?yAuyce z-yamU(JcEunUE+*=7b)ddNFS%C>Z;6#eJPW&PIJubEQT%$GBOqmJp@1_l6_Hv~t>C zmu^A;hqyISnx9k!yHYv0R5m<3pwp+S=V!hGaR@)A^~K91nRn|3z-LyThHe}UUcznt z$Ioh->KS72JTc8P$=S&qAG#+vFTO3+D9Z;8TUSSkWr#--ARbpouO=x!6Sc4e(w{VehMX0~D zOwf@-%s%IIYf!y!x7;@&%>M8P&uKS06!3$7kq-VFTx=zCfbpy2UL zE=b$==aHr#puwpf(VMS4|4`hm^Yd77>osKSles>SO^R4L` z&}n^6C3w4c`f^l$-6?Um{BDhTYu!w2cfmBE*70H8M}eWSKq0j8J2>yf;Nee{O4--w zgQ`D0&!l|2YQ*xUsa|`u-QiMWOrp%I_d*cCq1ZDN6%~RBWk_%OVF~nTQH!Y#Z!j4v zUwc3C22JF>rQ0qNP57B$jN3S3&zGuD_DPc|zP5}d^~NdYZKg7&<@I8bM}$AL6D39jmZ^m&2;gP+zH8mbs_YW7MX^ zsc#srh%ZHr-RG75a z=;ysb>EvSWLgM?I3&o{o8(|fVR;l+cn0TKyso(B*X=O8t)x<*27Lo!0`cjND2RhE0 z{GC4TPNvnex{>G};eTOFQnmIGCW16hhqq0cE2TYp({ z3xj6B)jE03cQ|X(dg_{sKnipI7ebX>h+kLRMYH?EMU5}6E1tnI{hM++v4_yC4BwsJ zx$^^|%k6k@2Ry(V1dZ_4y07>}2c;W06(LMVRTsAkQ9w4-hFhzs+c|rUUO5|~@s))X zehGav4XPG_pU!s(=hAy(lI5B`?_jk0>b%Ef`AtojeLBllI%+}&gEg>Sf#xSqzfiKx zgAgpGidUtrSjAjN-#GXScxEb6y{V>R2#B8v3x7Clq2>94&>ZF%>An>Rg8taCSgBX5 z|AI9WZnb5dItXhJ39p!hioL21FoSFn0vB$MNgAD!JojM4t^Mo(P2`Y`bKEC<~ zUv{KmGYd=LLxmJ|kfJC^#OU;u%1pFvUuI1 zRG#s-1^r^9tLdmM&W<&Z_rM3~kKuI62STruqYO~s4VX%)E++lbpO>iF{p=4?O|`br zDSGyjxtgE2*jP={D>N0OOh#>xFXzN&6T;2x+iZ99qhoucjnLYzc8qW5C7lq>uNL_( z)y{^KJ;JPOTN(U^r^g~}1{FMF$2t>h21HWK{2t9ajxGA+0sg}Oe419snMZQBSA_~R zd47Rj*<^RaK(&^6D~Hr*Q1+KT;17Pk*eG~?DiYD^6aEK7sYE9?O5Uibbkx*MTcw>+ z)AKv2J3f;X992H_@Rqq$hAp2_oK3FeAi{f%|LD@FzqjJqWE*Qsas@|chqL|5zR=6I zBPx3PtM>NmG2n>z%m^B199!n=6M_MW!DH1YQvRc)Hu2?m-~XJTCe$Z>%*1gSK| znoE_R3RU^#lRWaSW|H;c`vy@X!gyuaw@9Hw(HrP`CPdN!o^dQ3>_OIRS2Mqh<@~iA zEluWLminCbnBbM#og%@aS(QedZ;AJt${mupT=@oEe8Ot#Xd|c>I`|7Tdr$nEQ)ag5 zaMLK8#Y)s`4U7;di1{DQ;P;i^*O}WEQ~o>~4~OXmM0@YYV#(eGj#tkNM$FrtUF|&c z<92Uak8R(0Z|KM`aXLOvsgzf?U!jSNti*_T!7EQ&L-T!uuNa0WFS>WR;k!S^4a#pO zM^e2auPGhaag z;lzk(Q#bdUJEyR%>sozF14Yby;D29t5M`dJKj!lz;3hAZE|G``pWswfGa-weCC>1b zlX@IWBAru|e1I^yh$_6Waqa2Y<;4L%7X|a?_{JrW-^O|HsejyOiJB;-1>yN5vtyB8 zXl;^j0fp3#Okjx@;n~hy1gzR3^b!5e?wAx6-f&YZ!B)%Jtty0`@h4=HWqFJ!TS0A> zOT(+M!X-xUm{Nx(`OoFt!yfoF9hG)Un_4TIrHR;Mb)0i~oF|0MchCB-Z02LiE&=^P zCKCDA(RkK6u<5!BD!+ZSL(1i<#PdD`5Rce0mKupyj;72itA;<0x2K zd#pUP{P<*cZ>-}mn(k*tHFRaQ{Pr5S!>URJjj;LNe0nO)XkK(>{pI#jNn@TO!wqrw z_m=|==eYWDmlWyd^prOC}^F;aU9EuW^VjP|lmHZ8K@fAu45zhQpGiG9>Mu#+*S%=Me}^fS{cQ zjYh};TvqtyL1*c@S?gdV`ii=&5u`{bHT;hm?yJ)QdycJBUBU>puY^5byEYh$Y)pS3 z1h}u(wLjC$Z=(;RmsF33^)RgZ-ewh&wxmB6Flxx13$BT9F9~q;I3_+gE~U`8I9s>n zJG58?vi^|9vhnyGp5d+K?XV|p0tno^!>7}~=k+n&Lr{u8iX(f=j5Ws`X|Yw^80}i1 z6j18CQ`jwLSu=BLwwm}@8LfYq+J+%@YHGC;GHNuu%+vB0Gp2?9eU1GZ%TulD$?$x} zoLueZ9zV19spwaAa1+xItOF(>G6FD?Xqcl!7ByXd)!Kr0 zg|ECn&20-|5^w;v*z8|!2x~qvmk3;DI zjT?D~l+7PHh*IX9!n!U(&9Lw&petTUl;FjvrKX{Vhn?5a)z!wnJ7mn-ke@<*3uUh_OR*pR@JzzaaqZ9%Y)IOlT)X-LCWio{6=>AbDvGbBOHNj2^ck1t@b75og zbJJwiFPt)QpN}$UMf5>CAXC$BQIUDYr!mQ_X5B#Zi-e_x&8=;Qstpb;?)yFae1KK) zxwo?+tj(Wc0IL{)1uaTAc^0QRF&Y%2430DJo*2P#msRcP<%1iC!6SB{BUTtfiK za3^M>0I)a@v!}pfQnJ<8fX*w2vu%Pyt=}zwxw_l810}-DsV~341#Z)c^j()IzKV1_ zCVQseiLOM(?b=qfy@&6bq0aT$QdN0;kT($2J8%R_#=9q~G;@IqX&dsh27?`IWkXzR|Ge^UG# zhN?AEN_U>WlwM^d_hx8RJEAS^mc@>$$3KtidMwR`HaLJx_eS@A`;khRPmr*BnM@P; zK<^^p*Sl1!UMKDV5sAnp6EO5?zSU>`C#d*nmW-91t+cX)U)#HmMqklulr(C|`UTvn z@Ld&GAM(S;cQqB71XeNx$pe}_Wohq9iq-%kV)K(B`}Nomfq6OaKGcgsF;P`rSLttU zh2kzMxr=9y2*7PqAh(FGv6J&_seH4WJamyYo2LS{Ed--x38XSKzeRcaV?>?akZWc( z!-l*fVmv_Kw#>vq2r+WdZGX*L#u^)BO`yy~V9w%!$i@5CD1VgBx;T(g|I2~xI-8sk zq{#?xRhZ#%3*pzSIrm1vM|j)-7vw&!FFD$`_#MOqHK0Lg{i@Ana|iqRVep_pk!|89!js3K=?ALo;{Khi}kTw&dbs4D^T=CYHY=_zR1) zQkW!>^&Wo$r9_NhmZwMFq~LZDuL*D{SZ%&VYgYAYAMaJID#G)$?665VZ?JRhs0RS+ zFish33>f4oaOuTZqfuN=b44}XA$~#GRc}Q#y2QSUys;OIhMs>;;QaXo6-BXV^qA$? zR?Nyj40=VUgVZWvz~#cvWHimUa=T^RqtdS}vdz#^cV9`={g8Xf#KQnDh~=WaY-M7Z z4P36*U#XLFbys{KRP5%1o4^hK@A9$-z#fqH+l#Zl&oKM@H?%R=aPtTui;pn#3kU6! z@EyBGbmcyh_I4Y@52CepkQ!f(F_=jE-YW#Aa}LU|zRwd6B@b)h>wZx{59|QCRM(S? zS~52=|ExNLQG$Ap^vTzah$!$qx-$CtL`yDk0U>DGJ8i!WHNYn725=tI;K21*m&7nP z#7Md;voQS}B;3s^VhsCI%ojMgJj1z31z&i?G0#bmJ?D}*l|)^UqGN{tTlba_tCHpn)vs?f6}T zxc^Pf<(uDzOR6v-^k=cS{GAp=1H>nv5dl+fY)u5{XQynt& zJ#c%qnnQNW$jnx+`EO_4JD@WTL|Sl{tv#PJW1p`9YuZ5n5u~Cl^5o(77l4Yd}$me+=3^1L7E;mchV9+PgC+Ji1*N%*z zN_w1C`0vtLqe6ZCfE0jVVoh!FL|>+*|s>W|CRXxZIoV>27cWVPZKl#YtAJ0Cj3EJHKx%s|K4UrU zj`hWP{^$H0LUY=KAd+c;%<#x47gq5$U0Sx-P5x109_@JbLXFZWW}efQ55Hk6=^)s4 zExn`VE#shIt+5Ht5q`dnAYi0s8}3QIORhh{b;4ptaCihHHkmEUyd1tIZ?6{?6l<_4 ze;e!?Nc9h|TE@Q4EB@kv4_lg!kl7UoVQgQT6h&pUSBwe>3@h%JF(BpQIygX;Py9o_ zR=T432ZR>yjO&nZ3cXjH+@-lRz&$2y9~X2rGyJXX%m01quy%eav0!wn)~e($@Q-l!IN@$vf4f}+ffSz=3WM$kTp%ZX_k1P{{I66!L`)7M z^>>dh&a~gPYK_NajDW3B2v;3e!|mr|o`MwqyXOTt{fM7;;IX*>NPDs_+asXDsL->d za>2@eu-J5F=~ofPfjx6g1oWH~4JC&qngOiK1gJXBRT9OLyHLx&WX0<3aINHv%NeKO zu>%oh=k5AreeWkAd;fm%Y}M~5b58%>&b5ZrW1uv4Yr|5l4M{$nOFw;O&jnF3AT?WY z-O)^|M&R42ySEr<-Jpu$5`K*!)U)az`~XUns*g^_yu>o#$X-%RoXq=d=3cXD5igUg z#)2;<2|Ro*-l`Z$gMzQdPaN;GCi&ll%_L}0mWtk73~Cq%K#lDrdH7M0TkLL_%>%aU zmni7bIru4~1Dxfa-WDiPe1qWM1F^Od5!GWq*>TWAe5uWV%>KiMMJzg&65O46evN=x zCe@D)$~Hw-8aaO}OeN#a?lhR^kj-bbZ4-Z~e@-=C&W^PYD9QXz@RF1kfQlvqjddZ< zFU1lk(V_?kBGY?+BklrbGy{NoT38fa5pJ00X_4sb_`JQkG%Jc}kLskn@qJ9yhAM#J z=qA&eEakwQS+hOfe~L->dEo%-oT*ayRDTp6x63sKH@@f_-2hO?;aL$0T%D9qh-v+e z0^VUXyX(|lgrUAbN;UiF)tKKx4^AtfI;;@RYIvdpa?-fvq;3K6koKLqmhn6A|A!D^_KiUG+ky7J4VG1oeWEk zo}mnTLHi!v%EFTsE8BjWXxn;*dU;apr$tmLUgDsoe5n%AsVF0RlE2z#N{3=mVBhjz z)nwd3~GWYcg~OF~nT3qPY#@ZYw} zIW(e<15uEj;ptJpy@LRn1we+4#mrJnF%iU^E~94Xh_9WwByxGEc!&hO;H$M?i(D>J zLJ}zVq-z6o%~O|a>1undd2<+03!~uLDkOdjzEc6f+O@;dCGsrXC2mRgUOH^xmUXEry*zlD$S=6SlijoG7!N&qZYq?l)v^i zny(hT_Cao$)tCc2UCgX?T=YTu4Jw!_(YOv(6FN|G5wQcTppFT11Y75VD}$2~Lb|Ub zdy|bClM@A65x`>KLIHqq`(lZOC zH%ssOX$AT8hSg|xADHwKiIDr^XaTXR$de6oM983}5aCPY8KxI{pBD6G#H-7c{v-`{ zfzb#Y?(#eIl$rzT(c+DXDZFgsFk*bj&ib{0`;ZFJNiSp53?341S%h~wnMqhjS zIKWRcRV-T5yo=NNf)EW89zt#&^nEHjTt?T-KG0udf6LmsJ~o}W3n zZuD+G(Gb1Met(3nKl*aaX93Uz`6!$V3eEAmi1cE_A#4HgG})!PqkH!5#qscf=ro`N?**TRTJ zdj=r+pn6|dJ1&cv%;t-3L5(7g z|5-aIE-m8+%u|irQ^osL=G`~I5Gz!&{IJ+c=fx7F6MSTtko_!sY`_fxhZ zb9E9+B&l9n0pg?P8x<`Ksa#o;$%ATvJ3bON(6n-SW6aU7&EDZQD`h6|7WD z09Rp>|`W>s{fyUt6n}m38n}EzgHX znpdXHtjS@w6!3m|plB6J4f3RDsJKVJ-`L-^>s5j1cj}6i+F4>XDeO$KR5rMLg*}~R zQI?BVs4-J5)gN^jJiXrbK4W*fg;jiwU7#EK^dQF&91MGuBRpWWMw2ek*oI>`;~r^~ zK~hijY#bFW+fVN>I>(wDM*?v!DlHNJQ~#i015Es!_L>3UO6?ot_z9w#ukp1pXQ<@R zYwaLZcN@G4DwWH1_p^9z#Q?_~FE>9-kJzBySBDA_#vS{M^ z#b&4!@6EX(0uWo)mSgEFIg(>)*0}>*X}03Al<6yD4yNQ13QBmfSQBwi zMU*N7OUdR=ww(1DPnt(VLh~yfAKn+QOz#7$#Xi0XQ~QexHJmna9>+k7_f3sG(Qgf! z{A=&f3A73W{|JKbQo)bhK>|KS6|BU4^_m0Sqz+cShVLk8GA-h@U$m$qtExe8r~FkS zp{>h)jYM+(rdtHiI)&upXY-F4c*vMhzajgN0m8lPQ&*DBwk zBr}=rHn#JFXqq>@c(FyA7ufO;5N^yb3eE^{jJQ^(SiP}%ahhp=Oxz_C>2Q!KFeTv8 zQVh;9L4hqz3WqURq&+I~xCLdCErybE=s2%^$>R2dRfYie9tC+_bd*d|op%%FKn3z{ zHy%-#-D80YZG>CiN%M>{-euEM-A{m$!y1~-y^B_dKNzVNfdGC z7m?|*mktkK5k*g9{zuX;Yepc>iPpYx(#^7)Gq`noGb`nGr;@Wywd;UHM$#N>a|XLr zi9BvX7OgjfudyEM(FQ=G%SP8CH}^1z40DzyfD}Kf)#}S);Z|&+MxvMI)BAz%9sUw! z7ih@$ck`mF z8=)s?>?9EY1`z=qacm>IPp3Ax;|dkfIZU?09k$^i_RM0vOGf@MkQ@h&CB|v} z!@c3|<=_79y`B5Kf_Z4z-}<2jqkXy!fm@1wbl~8iupI?EC6TH_L{43K> z8w{8Ld+MKBJnm)K5ao(ERZT;M*=;8uWrFO{9TlR25uma~BtDe+Il;{SG}Tg3q3&iR zPpWH_NHAn9%ZB3aXbtY#_S~dj>}NYyF#>*=5!OAo=DCG}Vva5y&_W9gb`p{~Sp|*K zgzwo=X69_5XYA_66f~nB!GshR{SPLSNA}t}aDKh(Og8J0ELf4~I$W;q~>^zJs`k!rpn#NRp1nQHi)W3l1bv@YWVVOxuFKwUUU=Hz}(qF<28%W^C? z<^*)p45<73QzQ#-l^$mBuF-N=5srRfYA~=M#^iSxj-Q0xe@?8H&{G?kXrb*tj0QGe z{njbjG7IFrq-1(o-?zEiIxZYk&V)qxEk#^>(psva5b=8h!GXGhw!{0LF{*O@$U(#$ z-rT`F+9RE+w=eM{=w-JIO%LJMFRES4v~ZO$o-tci{P^gSn~%Am4jkl;&7E;6H)CgQ z@aIP=N)eY7lrkT2U98i-6GKh2Kbsy;oMlHfagKx}#8%h-DyQ@9O+jvepy}5A`EK=~pu=3YP?0CUk4y!~$BvH# z^#h(#Kv{P2Y+(HetY73NBf=_nLAC2^Nq)+q_C_BjvJI(E_AFY(rc|+3z9{@jf=19ZQ^0WYqMHisuefW*ux+^~K zq{FL0CI1I8eUacrUM0US3OrT~hZ}mO;0DDh%XKpFz++)y{f{{h*=Le~TB7v-Iq^yZ8+=ZKhl7*2q2u$11 znWqsKnpl(+BwcB6ku~~yCOjC!_utoa->lvy++j&6OBhj(bLenya3LyISOpgrwm4>gI5`<*27-DohOP( zeOnvK>f5$2(6{82cvCpno$y`;Q3Xu83C{MCh?R=x%Sa4~+^xrhpPr^Z4>C9Qjy8}Y zxvSjTQ|sz{d%C!+L`-FZJXWtZhMdv(7s zI;9|7nC|tjtQLrbK=dQ>E~vaw04;ENHrpg9w?t)1ES&UQLa=0~?^{{(gI%lf${-nm z?1&jlj~0tffmi1~pO@CX&z`=n?_c-_J#e_tu1n|QHB00xbl^XE_^abP1#6Z0^%{=o*Yw}CLF4~X zI-31ATr3x7{~BSxJ?km1+v}l%1yR`A*Pv%5LT3$E!At7VX55N<(NLeqn@mBsW6!JV z_OHS!9_xlOMsMPs{#@u~jUcWIYkS{W3McXf>5DgsCo>#FoqLv3L;-RWU1I1{_9DUn zuqUn06!Go5eiTngIRTo`ytDiiTe`u6(yW^d&#o!*-yE_#N^WL|41Ax@UuE@#NqWBJ zJc9$eHSuIV04+*R)v9X#Q%1hD{si`4tK!4Sv)6qw9#?9$5G7Tsu0t6CzC8^+Ykw5o zsm@!m?b{i&WF?GLqWaFEtfKz}AOn@=}!+Dy8 zw;#z78~cH{EbFd|n$68Wuushr*0YuYebib!Dz@q}1XlGH7dMHqJRJ5YKmvCO6OS#& zhgLc~oO$V;S@YRxa_FKiZxCYgz9ywsuIdFCVIce`2%3QvT++t<9E1JU9V6?EROgr& z?Z;@nO2-_ zH8umtxyiom(Ry*nG(#4TAIxfs2(ukP3`hk7`nKfnJ##D`Wa0NVpV8N@#(ZalJzr&@ z*Yr*ByL7l8UH}F(y;U%Zk6Pi6k>i=HJH@!QtaGsC>(bwb!&=8dZe_j&@n zL&tRNZ>!jF)F3cx1=5m7o{~E2VkEKlv()y-tQGWZ=QLKMN~)Adn^e>)l001v&wW1j zHm^U=O%P+X4@7$ZBowvw*k@(ILSRs(cgIj8r^+7Jt8pW8zfg!ZcgXUp1Y;oWHWZ10 z4UN`HeqkWLQHT_D6eZer{jdahvJoQeG~c||;uXEZ(gPIgOGK&;&aUk_-1{QipTlE;$3+Ds-){?nY36CcOA zT7q=qhx^xXW$a4*@@l|V^kTtw_Rz65OqvPnm!N%WpPZ?fxh$p)(-&5@I72z|A_eP{ z9Mfwcw+4{oAEZCw;>eoy$_j?S}0`stOo8y>ERJi@pSx<0rdQ>QbdDwL@@7-CGqG^ydRx*$f}o- zPZ;`lZl=&RVlnM;lZcZb=e%(qZgiScQ8-UCMvTF`qm87Fe>g{I3!VoHrEf~9@D!gX zujuafT76B{+(>wZWLmlt(>s8Mqs?HjOdlzj<5qpmnHn=}cy8-A=Am|nWxHL$hkn)i zLuvRdfdK?q`)e&9|A{XGO#O#|JyuGit@)on{mT>p!51Zk26uwz+Lo@#s~F-su68I- zwmr3;uG?ANmzfDDk}+&-_W*OXeJXtacoV-gD!Wr&R-{>|6flj@U|9F?`5NGZXEbK| zde(VZUcRy2cW=haVN?mYK@Qh5C(}Y2#D6XG%1}v*26ZZcg%bcqKx>GS)j#qQGxH+U z2!DEIDpGUZH41!#0+=Z_RY_wyo2)f><{{&Kg(m@eh@5YZvgkb~fB9^Y=#N--a&OLk zXzKO0JU)Zx;k%FkPc|=v8obtvnhc(hOd$Z>!R@V2Vbep_4!CBAY`c^P*347r}jaT)roF)|78FHbN#1RDL@glnCp05yhMvE-bTuZVJuOyV?E2S52r|S zWIUZGxa3XCC38A;EkJW2JE=F?9+)Hp-VzFRSX#I3KPSJdv$$|NyHazaP3u^c>+2wD zCBAp#3PJtVa0ARAlE$9$aC@@W)qDTkfFgxrs0!vv)^95~Om{AIR=h-qQinX{35f1y zo91&S*m^7glc&JFJfLu?q-Uf;#!-H=tl88 zA~tQSKU!>>SiJ{CkOq}GPr9!zu5=wOUl){ZdpzVv4p~$n)Bn$K!Y9jZGqIzM(Hcv@ z_hBz;6*3al#?RZ#&%7|8O$HKm2#&PhaVFX-#C7ko2sN;8v|ngpksJ2xe~lERe;-d_ zL-uTM@c9ktd27V_?RV-D?E(%P7k_qHpdzl5&yk#(XrBmM3gG2pW+?Mv4vey%`sVw1 zHxJe<)}3Ymm~JKh82C0BI~nkrRfJHp5@XmnHCXaHsFfD&IW{iB zYb5^EVLYOIQ%0{^3bH~huP3OVCrcsnP%P-Q2Qk?onya@ZgrIrpxCm4++!0CZC@cNQ z)cJ0MhNoc9Z6Z%Y&W8SjGe;`tFGt%q4^ zCf#vdCZF`IO1-#-ED9?(Y$zv+-q3rPsxO_1g}JZJqqPhTPotC9<~rrahXZZg1Yr5D z+uc7%LKNHY?B=6h<}H{X#t2JdWD>fh69q(Z@43!8ZRZAPni1S1GwePo!_MM*ZbuQbxJ%7vWy?VJ% z+qTDt?B@`OGKD;8-gH}yLoarp{3&IJ%cAf*P+5X;r)Q&aFpxB(4Szq|a%4+ak+ID} z{;PqjBTLc^wMi5HFX{z#jEkh%L2GXtwv=mP)x&pKYJ0=Y95DeZ8_g zwD-R6E8S_}*n0rN=SYu5QrvQU7;t-j!pdrN0R8Mb!(+WHWkfr%mbYfJgcQvZt1`DM zn@#_Ehd;nc5;mhsUQ$^ioKVKfo{w+cdGKAk%upsn$f>9zlKGdfm`PR1k};Pxw>4_& z-LIIhocDLq5#egnWO91#VbTlfmEfmYhqd=HeZqv^11HFTX5X=}Yz_XJlS^GQtZQKf zR4jU#Wu0>VYmCKw$Qr(bny}z4_72CZUl+DlG$CWU4@H-8~OrkRL1X%;LA*lrbzt7GwNWBI6&|3KvMQeHS9 zjT)xp`I}j(SsQ*xE@`mDG>;-YBfudr*hHvM?ypd`o3++znCo5)*pUsBr)6NWik$uy z*2KH-7AmA4FJNwxO%DBxAxPU1wO*<#;y|kZZ>Y$9$%hE@NHCwx+6|&3PVduRz^xO zy)K;0w1e4Sjpa>M^563nqFofsJPZTBg1BqB+DK%zK4FdQf6!-{tkF1t9_co{c~)@H z|Bum$%yPEPkf|LrtsQ%SH9;5bqxl@JPI+s3bQXG|D*SS})>d0v6Wdo%G3ff(`eN>c ze=!t+6noBqV7TgAKr;S4?~TXap)Nq}52N7pPrD zAaqM*`!^Nmn~MJb6UJW zZWx-OX3pb#zH|P=zSdsrPOa=$Jh99GqZWSOnh3{kWJQ=h64a!?^9P4-Pz`Cib>nKa`Xk&3*xN`(ZQ` zi>0yg>Qcr^JG3nd$TCk+E-Xu&AwUeXS~KNV@|`^M1jv|4G>tafvdEW`Gv^q;sytfXbiev@$b-J*Obm7t%;%^!Kjaog z`jk3|;z0{g>#rk1*4~CqY}6(UB=_%pOzH!SOJ6j56FWO2>Uz%Z3c`r!u+&;AuZh`s z@4GT3Q-|%n)Yq$&Kcq;=JB61|vkA#X&zjX?NaWP1{%+j(OHrkNEk+0y&KASb~P>)2!HP{tE9)fQ8#}iCqVg3td@#kSbnS);}`kJu)vu2 z*Z!KhL+o4i?0Sm(E{kcJP6Z&=~kA`&&y29kQYl!qaB_ zOQj;IExxGWAPp2T&t9!EAW1AQja#$yQ|E#M>a8y=VH;7>tq@RoOke(FL;=^Z9rYoS zk06T-Kn!W+!=p5dlkEWSXYtL#H!2sdRi<-=1oc6|PAbwU^lwh8pMyrWKG4P>5S3B@ z4-~BaGFh+3O61jT}&egZN6)oMAR4Vq?Fr6QkU2bPqcfBZ6+^ zZ{`7|rz|7;8EkqxW&&Ty=!H@#pS0k%j}7WXPo>1S!PJ(%6d-1@g_T<^@NAllb5X#j z)WRF}htk!|qktvfvWPsTa*CpWBgP*JbqfkUnr3*SMkNHfA~q8)-~R4u9*|;<>{8&Q zph85zuA2`WBi+^l)p4{J7@wE3+R{;bGquIgN~Rj@wS;VJQUsc>S_oQa;qGQ`%I&t# zdv`Shb_84yWClUK|IBzN8}q_VPFrP}oBbfY$SJurFMrY10jK(L=#cYK6JiNL1iq_; zR#Qq@{>UYbebPa6cma#p(Ta&WCG1MWZVD*zk(KyEBncnrZY30Nnk$^S&EhTzZE@OW zW(G1J@UQ7nTyBr5aNPLMMFv4l2vrH|Ch&3|*AD6Ml%fu1>R?e#a8lz>H>^hu*u%0R>g{-BmT)3&F= zWWITWqMUO~?@+%f3EfA-PaYG5^32cPTR7_%Et)mb%WFUE6Tx14sSu6@inU!r(08kg z`ceS8erO%PI-KOX9eX~0fsN1D|Ckhm@ z0#W}Q%hU@?S4e!m+F9M-=@`65?K~1sOv{1M7WFu>4m1TemV(fJtSk#GEQ>AtGdM^p z7I#ZbarsX*rwsko2OO|`+=yE%J%(*+ZcZM52ZhtE+o)$vjM_Wl%TMP&%s+Fwx_h+tmpnUo%I z;z!phl1<2e_yZ(=Ft+9`;cwu#KDI?(yLhaG-#r8TaE#`>)>?JvA3glV4G$WZ!k;~1 zIY+z3q?L=ra?sI?k||f!{UtMd(5P>;#cbKH&llKS+;+bGj0bsk>;(u04+Bz{Eb1XH zmzbx{9{Egr4`Y3)gpo7Wywo%Lr;HSqI~5VBHRayIc)ZwIEPsl&Vz%&6#8=2^Jn7F= zp9>mrYwBoS03Q6dt3`u;LWX`*2lOaCb=@csww}cTSAoZg6C6KBmlrn5uU;1fYuO6zW!gqU0c>|zvzk}y^tGhQ~aZ3@`Q5I zsswV1i(R{P+O5cthXhi)$+5{j0`_Ft4=u9+O_`;pYBsgdeNk-?oCk)eF9nfoi8aF= zp||!c&r(IxpxkUC0FWgWSm}28PQ&gJNFhud&yYg=-gj3BoP(33Gbb}TZsfzD)O8C_>qHKJWqkELz_Kg)qckLK_z1~+f(fCs@&exLx|yEBzJX1#Ynr*jo_w8thWk zG3w-o>4v7(2R#HSF`lG^Aqc)zOCg=-iGIdNTo<)ZxvAw-iy;tnRN;$0FlW&qqDUS& zi$Z>_dz|+XWuF7E+5nRZ4uGXW9!}+zRV_QZk7sqNq?dRBg^h+O$GugYqA$3y2hl#u zI5Ajv9vJdd({wwSy2Nzmd7rWgAU$e+H$)a@%1pcnJAis$DV@U3y8HRC3US@J=Dh%T z#4T+!02^gF*uSNcFty|3xzem=EtEo+U9FviK%(V1{wcn(yKEwIBq&;VJI0xi7 z1josV;(j9*W%^;|1-ZXRe1eSoaE}-l_x$8;x$!pfSpnaGRWhINNbF{f*HT4shUivm zpnRT@tDMc7eq~oQZzkBcw}n$xkrMH1nl!%pU1`cN7{%c-sBeBeZi(RxtHzU8NLXUe z^~Uq6<9^i!B)5xNX@S2hw~K3CI>6)Y`F+jZWoIj=wtMMD(eHX@RRuDCwH@=k4TC}@ z_u(EM??!s6c&q}m;NI*?-+X~R9^_NnbPMbMSQTNOgRQ6SEEQ>kHL|gN5)WSKc0=kOM?NKz$=UR*%XZKEI-qSTu(pASlbW{1;quWwJ1 zTYw!5GI)GNB2h&a%3Dub4#&h`oSVH0HfKCRt#{?-ZRwh08vhtl>i z-dIk$x|R9pNzfvxI+ZF#Q>VS*nMt&v6BE3l`Pefxv@l8t z53?kY>KW0vyd{Sx zK4>1bFA2-Khxz?PK5$vV>rD6Gze1zLCamZ0DLha-v1YvuobZ7zKB1Yt7GgQ9eWhxr zq@|@KTclt7QqD8p@;8tIDZ(x95d77V<=JkE2PN0@CL$c#D{MY@6z|G6K|VTC_seC; z{JGh|w(W}&+B&!=8K zt7KHywiotf`SF^%bTx6v`_H2owuOM+S3kl#v$ZXJKmE*IwQy)15u>5?M|H@YHW*W6HF*X6Nu& z4c34RaZgmo?|*NPK26pzvF!^y?)hC3FS;Sj^8^RYxN?>tE-ALYck`>^-K4kT{tlMc zm#ejyoz6CHHZvJQO{uFfu`mX15fufujjYIZ=<r zsG%>{V0iP`wuxk$&3VDCMAFs;4*mnjzo&BzHP!i$?K6IHt?_I39am)TV8b(LU<7`Z z(|EOxLRY}yHT1%m;)3TA`Y^na%P>HJ^uu-KQNiw@jYE1v{W(9tjXPlgJPSWc9RI;y z_R3$29UCb+LS8?{SX%Y7uF;--tAV6mTZLP*HCwZgmb)s8yP3p&zd?+ETIuiRO5<5? zWu`HXaQpe9zRPdrQYKE17L=gN=H$uXg-zwu87u@dve6q)uD1D{|henwdf6Al$!~l0aCh>8dF6x|OP&qSw6x_&ZOhF;ezSgD6%uuD4 z)K@n? z$JW6SGG2c3Kt*z8Rcib%luEjvw-1EYpk+ea`RD9ekwYAo4d&76vdcqT^}k-#$PXu@ zXbTWkXZ+5#e@~V?Vxo99&i{1#LwO;8rFyB3-H3i=v=(>YtG)h;DYp)XB27YdEVQuY zRV9A|$p_o}lb`5Gabg}>w9RfMUG?6$l9F#+ zStl(0i?;dab9m^Wg_K%Y5~t#2yR+TXQ!)27_}^*1ks5Aeod(}ge~uG2vr;Ll*PK1z zhu1#Azlo9OGr#J72o)eS)rHkXZ?w4+xmOHM2rkT>2e+S&rKkEmudYC(?m#&exxwN> z!v8Yp(+8KQq3*zN0-o85VQb6-XepU^yRsYdV1S0i^E_M%90&Q&Jm61nqw|Edq))FY zc=3q+8uh=CyzG~fKnwuE^S4_EyE-$P>OTz#N2QH5XB+D>@_jhUJzSY7)H;|Ws7k>s$%kqeYLc%c6#ktEw;lfXg`B1mm6V6+ci7OORFoE)-xPXoOBK3W; zmfeo|Y(nwxQMrWzCqg9VlUrRa` z`Re>(J%3T<@p43OFQ(5JSjoqarTk*@i$5J7%y;a|X00)6J(2V^yB?9+9Y-?6$Uu=0 zbeo_~saOUPsYaIo^D}YjG&kCi>{1L8_zflera$sQ43yDp#L(^MNvPP4M5G>%(gi`q zhMdODS51J)Gidx2dA`pxXEe;va;e_;<+=7~jSV>(6bCW7%w-`IS)CMk8?aTE*5wk$dSaBp$+Ir*NRc?20y&_Yz>`A{1N^P$b-#kOCi(BkFay$z?>aQehGb< zTlJ0;*g2=jTz!IqgSzg#TO?C1!8jJE^^84z?lLwC*eI{bl+xTqLv{1x%cWgxi6SuA zu?%x^8gs5z{7ZF7C`t*4Ikqh(_PZ)ITVBzY$CjWBm`(-_)47ABtJO@1Wh~I}N|Q7T zW~dXjou_R**drJSo7;^ljoMcZ4--8|(V}a06L?BSdqd?cB=ao(a*Mb`v#=ah$O#yB zxeTg~n7!V_n~gNk2S@m%EA2((mky2|yXbOi7sP9Lv(Q;nVe)SN~X zFSUBF(vaxxO2$fiY%OV?iaFx+$M-X73R2-U)+a01S`1Ro(kfI*i`uQgCSCEu zpN@@`1co!F+I;e60)NTkoM#SPfA`C^*W4BXn^8UJa;<}E(vm($OsE5nPE5uM>L+xD zF(6%c_nOc(#IS8V36yVQ=~f}9kC)-O#W6@hus3R!!UG6?KOs|sT@t%-_IP055XhYlR=p#O5SGCU9QB7BhNt`^ViEqvh68yn^H1A5w&J0mtfR4qH|#fX#UQYl<~ zwmFN2ayI3;3^Kf*1_MDhZ!P9SK1YkyiTq17|81X7AV*v z&?E)dsWIsP=Jim<)eS*0puMST{@5JY2J0AJ^Xi4f5}1K3^NbiNIZz5;_F5NjVjQ`qaXwW+5j^l}VUi5gDErB#Mf4t%Rj&PKpXKA?bxux9 zPD)F0%^Z;~I{gN#n@NIUeYYjrjFU0MYN?Mxx_K*1tF%F$d7ivxUof-%^@n+yC~Uo6 zCX*oiM8eib;dQ%n_Cii}-Je_hk*Go5`?X@N`mK6T3dps)2R1#LfAOpFPU=IKSLYYg z%DO#LkcXa2$F#v24WhiRQD;1IJs6$$`r2=Cv8jdAbOnni7SKV}loBMblrrG$A z5|MG())|A1GJ@ahIybBXY0?Qh+7Db~a~I|X1KFI`AS9(P`n9^=dV1nL3&jU(6?9N| zU~GOjgYMVUeLD2SAgK4NmV^CdtD+`oB=MUfZuG;;U|(CC_q)` z_hyfTAagjm2=k#*_T2fWfzNH~1v2IIvWp*oOZoiVxj5_{0!otN6FrtXb$fKFjpYWX2oele+J2YKs3NYidO+4C5kkEQ|`&%qTuSpG1 z%`pl=Uf=G-!5&ABK|IPQt+06P(lH*>QL9>NA!@L$x{+~k2sp^fw}?84wX}*n(#~C; zOqG!F8IfE%_ir9q%) z{I_b2`Wqy!|M*mZ{skzMI;~DVSWkGTIiR$X(E6G-68?2DaL~hIG7A{aD0~XPOf1DTG&3^EJ}O zI(~+FtTxg>j;z;1<7-WH`LZQbYLj-@bCeoWvjlfJP~$i)lD$Vgh)eX%D=qD^3;PXr z%#hS8yfzA^Dg^0H6!x~}Cq0rYEMx!MYUpL`lkuD!;ky^FlC@9~{iH5eYhJDWJCMZ& zWaP1o*tOCPESDimvLg_2Gz~22;}0+bV5vR&BP?U8UajBON!u?)jHJIu4N|1mV?`=| z{_}x{U_570z!Sa{T*}iy^#GqTGJ#QB#ZT_u-!LqLovmH&D9>OM_*1L_Ilz?b*$C|_ zEr500f9|0OK%^&oK|LsLXc#x8wlAE?$+&}~A9_}S0o40x3^J%@nbO)wY_W6hY%I?; zO!3}m2)}*I=;NoDYt1SZ&(AmRCw}riY73Ad2TiGWY|>O4wj&b{y>Rj z={~#O(TcnfqZ4@J*~XY3|}IWf%tkhelx<6!id=_j{?Scp)-Ii9(;~&GR7dxYwj(L+11I=(;YBJt3#3;l-bM^++oLuL zf6=R$_iWqxo!50Wxv0Nk5}t(bI_n0dU;9g?yKeeS6dRfUWtyU=M^Rs573enl+O*lA z1BEvRnp>U_{P4J&9`7{BQsm5G$dFi&^4%NGE->*EdpOSdbPD?$tid?T#&}Q~iGbF= z*zMbaKwhpqI3u+)^T=$`Zw1)8AJxSXcAM&roVT7%+^30|;abk7Cq{UQJAMsV(O95JEYTv8xX6{(q+JCC)x;jb(GTUS zf9LQSp>~syvPyC`yFp~6TIWEXHK1Q>5aGlAE86(B(ByR-En?p`_{$ zV5jv9xLorhMUI5>G2DM~Sf};&F+G2kvsfR97l-N zReUeHQ&+4u{HgN`B@>{8VR`!RP-MtGM#|7c2F$44LBD8;h8>jN=dVHgEa`-&^CsC} zk|g|^v;`*_XNI${epO$2ZNN`*=&(QE79g-`LU9_W_3#uGS7>Atmk^WDd9}vl;;zzO zZ1#1@0kDS|`)@~6G_|KhuuyTaC-a}T=kt|*5|Aym6mBea9?muK^H+e*UKcl}<+Agc z<&0p`Dtt44+eDGL?)UefiZ&vlIb{mn7PDwEnk8yDTrCk^FNgm+HjGL4>1;BAni6vq z=73f3D0SIE)CR5u^T!@gjK}oJ=@aF z^jh#UVDG}ViHV^V6>vQrS({d)EeKPt*WF`qu^OL$82g!?9U=gH(EfM5IVzCli>s4b z#5y>5us0qoU@PDo_weVjAdDp@EB78@;*BFp#poegyz=N}X zR3&MyhlY_#S|bhkPLmbc2(T$w7hJ? z7E$s5n7>PD|GP)F{hY@Y+Bcew!JL=|XUOfD3Gzg>0c4GIwZLn??f@tGf8lP}u+ zu)Ep%7M1IJ ze`#~{sH;{s%fII>pLu#?ji{(k=*e)Hol^pB{y;qnBJOF)*a*&Wrh2 zZmqHLa`O7v?!c?M(yKkA{O)FQ#yj?q8<}0sH_EU~kui+AF%7P@(2Ez?rMW*B5?`iV zJtCFp9{203v8gAcbtfclmPh@yoq?dtj>joH`yGR~rt8 zA$~~b?|}@yYr%$a|D*M=;oLxFu0)z?J3S??eM3Go8;){b{F?m97VXw4hk`;Q=0Qdc z*D5&$dX;oq9vN;EaY{_tuXvB#I&q;g*hWE;9BZT)qfeQF_;&Eo=tG>Oe6hGP8t#5c zO;1dBd|v6xY2+6Fr4g6GN7i0Rg8I1!XHzBYCi_+DxE9Z9LQ5l28 zMjs&B?eqmM`?a106T9xA?ZJ1JzD9E`N{3Ajx~)&AX^G?>l)XBS2|<2m(l}G-;bMx~ zirqGDU;SPnO#f~J3m1$0^vq&3RrYRVx#>mI%kHy2ONl-Dg83*GUN)VgkG-ThxWVZH z`do=X5~-I(T~$K|8(BEWkx+0gf<>XMyfmsV#yzKjKO&>5l4M3RAvbj@M%(qFwS^X2 z`LFaSJass{n97bWz|nT_FzH( zs9xS&Iu_XRx-)hOWT63>iKsP_5$H5qW@_wRK`*(x8NZ1gB^uA6mT<=sj>3Lh2gmiJ ze<6o(iaX;8l?d!OtgpU4p-nRj4dGGDeXzRg;d#~{NGo-YzH8g}0)Y3av!yO>=g=jN zB^t<*y;hCo7^at;hOazallpfT60&~Jwh^THyi5%g*wy2T|s5-k@nWKgH+d=AwUKq{@=vHXq9U3hg=>jBpx-#E{p@LX>KknhNY3IRfE2eKlVmuU2ZBP3g&ZAP${acEcep%U~o?|*D7 zsw!ohi6aONuI1XdW;`zEfpl1PH>OEpAd0fgD|23!SZ-;`jt{z2H2iF+Z?Jb3IrTKrK+5pz~AE{zo9V z$Ly4!kz#Fp-!NXISz9q<$$qaD=Y%QQ%-q--g?|Q=pdlU6ldwWn z=et>tO5{JV^#kDvy~J;uBjStQ99j`~>%GoTC_Ic_u%7s?(oLCqRyoQ8*9Uy!Re>)U zP1hlwrQdnXIM*n?i2-2h*8?WCTT|l8YhaumQ!dmxV?9ahnB`G4JPbSQbyK7}T;5wQ zjYlu}ZW9v#AB?&4rb`Kl-KbmQE|b_LVUPkh#NB&PafE3OU38LfKsi&ks%#DztbXvM zG6|?WvLmgxcXtj<&gPOa8x<_i$w@l669VgtM;YE6I;G5eSj*Hc_aOJ7cK<`_37)~5 z()7p#@;f14aXkf&0p4dSaBTEpd%CI<5-X{AY5=x-;*Hm{D`*hhguryi!^@?01UoebT?F5%D#Eq3jBD=}cG-0*CkK|^|~m&%3P#2Xw$}yoSN19tthKkfT@c981$?1$!OlrYgHG855UbjaNPdm zxAr-ZUi>8fjmTJ61(_dSMxTg|{+ttUE2sA4AN~y8h^mp!2y$7!;ASbs4IST*3^ru} zh`?}yb(DkV)Q&gjYo;4pa~T!r-ATv$R}Qm#FK2qL^3UacD$^pQ5yk-JjHYt==|+e`4Z83NEjuIA6>;e>Zaz;ghkXBIg*zl^Tn4*kP-(bd)Ox z3$iYxsFdmjOtw83xPl?V_IqtO=`&{Br#qogLj>1gD$?LbpaM^Ikl~-m(0?0Nw%Zf_ z!7;;mH>zsdgnthRxGf<@t)h6Xo@FiS=Um_ak<=SH`r=4#M+I2-6?IYC7dP1Ik1v?5 z#-1Dyv8J76{`#R);F^5M1j64d?zy$Ze7Cx=bNvtY0m{w%=^)?2$BHzJ++>onYy1H` z@Q=V1Pu4iz1AG?;+X<>DeJ*06QyQXgFX#=4nBP6^d=VMnh$0o7Zi~gVDVPV8cIZ@5 zyi!{4@A}A3*+tg6Fk-83^@cilgfEbH?-IcIr5Rj4sT+mZ7#wEax7@erizQA7yDeh1 zEVaD8c0!vmH!RS{C%_m-%Qw=_T(b6BI)1zHrA+->!SnPJTPJ7bH@>_=+4R3`XK8-R zyFRn%vE;?W!}>#`r5lgQxtvx}kXmS0R7b58z&c8mR+_@`_7LN~LYjo-do)@(dubz2 zEi0=8P*#S{&}1I$#?4nbNR_98t@}RmmA>j zJIWTGl=8HkJ6*2&iT?P)?Vcru7^%#Ck|`05$crQa= zOjh?*S9;{}CS=@hvO%37mVWZ1 zG=n1_1}2BIA$r8wb8waI(CrF@0)BtM1(zE~eMDPm3LJ`S3HQ1+dI^upwMr%L^728l z1{VBBGvazSXg`>g^{SekJ#vovgSjGi|Jv`Dz>|%6-WmEbIMIf2uk1$C=+qoqHJ!J* z*^hAvlu!DdjSK628IJ(Lz`F=g=>Tk~B$q@>Q+=dTcZj*k)w|q0=R=}?W(KIIPSRn-gcf`CDAg5a!7Ah51dcaR{aq8$rFSQ@Cu6f!#g<0%$CzT(u!EIm zCk>6VRjc}EWb%c1`nib-F(F%pp4f&}D7Z4WOdY1|)Xt6$rLjeW4VCJ8lpfTA)SQVM zwdop}=QhdgBlQK~g4PCswM*9`(5OE8>>rcN+f8AzfDWW;=3a74M(USv#<0RzlYep$&*Bp6eqz zgZcKrfZe~Go6r#SsYn@YWddL!&yXN=qRU}!ESg>ePZfj>U=l>pnTSh$c|e;H5%nYY z!c9R11EXtq+;tEF>LY~FiUy&x(#jJlGSFm6%6;wym2|91G`0smOpSZB|303nc~f&< zS|YC?e^xsZM|$&=YwL`2yOeKpn}3IMY`dePAFSVQCBoL-d%**BYY{}A%Tx=T4(~!I z(W(prbVA`xm#%ZyTBpvlK)LUGy$gulz%YdBUIiid??eR93HgdNh_YMynLKW7nq+Fu zO!BqiNONe8{#_fq!Q|cq(F+VP#4F&}yg1egq**rhyvHjJ>;vJmy`Bw>eGY$hYFY>8tdk6O|iFJQRP%sT#3DWtO&_^8K~j2`eT zo)Sl5phZ?ENHw+>D_^lDLN;8L^w2!Y`MP#P$yNqouDw10@Dei_K~qz6D@`3X5^#zO z3?p+DUK!~sP0f()pqq&$St8*`-9DqThjPtLRyK>nC&J?7V*aee(H2s*DU2LyTY#`l zzrC=f*v^irMy?mO!`~_V!de#+QL!o|Q(#O9gE4D2ApEJN2_`y5! zjB2aDV+`A0YZnf}+;5Gzj|6O2%`SQYz1>Gf&QXGa+4-HXG%0fO@P!>y1$_^WsHq&4n#mNkfzIQ%Yz zg$|dlbtI+O{T~E+J=v&3li-n6C}2xCj{^tfP;jd2yQv8bHv~(@Vdmk+r@v>tX=a(| znmEmF>gPP4l-IxMRu`w>>&T&}j$#FDOYsGEOD~+vr#c>`4<_wF@Yf9%t`q z4=49JYmypA@XpQA@)Z6uk#Do&TH(9UKeRR$^jkHC3_Y}lnhUiXemHOjP3vd*lgHu|X}R)K7_ zPTaYhkY}f30}1j@rqf5wr|8`~&_@1CbJo+Wax&SWCC;t|IS~jcPxRoo6@=w0Z3>kl zruWNPnnJH@xT&Fy+ePD$)j28OAD7jAL_}j*g?JErD4>gY;|X6rJt~#hy!c0pA7!Jh zyYh{^hzdjNELW&mzx)d!E&*llE7| z+!h=Zds4O2en}{^2L>G@0s8z69dbKLI^(fZXG6xt*%sGG?I$fL#m!s7Rv4F7%3$ z2HfcYXeMsw5y?)YHuSWNYmbm)+WZZF($z!P)Z|>3f3!z^=^&f6krsueq!g zH!%!UX~0eh)F1dCk2`zQ#UuldF0bu40q{*invCB48Sx(0_o!;@SzAKY9qZN>vV(wgd6R@o9 zR5<-!87l8c0Y4tp>pk4}-@`y_tDt`%nN6;*99yzlykVIQ2Ep&Ii$Gz-$Jb8@(6PY! zvV$Mn02ILj);E?ysG6f!`2wR+3_uH9k|Uq=4F?S?C8&CO^-x6JeI?yh>>Bsn34K{3 zOLK{9z$^&Q(r@078Z4QB%SFOB9tMUzS1plN9U_^XU0k%6tYdw0_76ZP-24+4{&9{|PYj z%_ePjirn=}qPzBL2{D@AMFc$zvpDdmif-VV?({(P%Puie`j<}$(Y%*v3;>LI&g-i2 zP2>A^)FWJfuvvpwgJ=8IY}jMBn?=}ov>NY4tN?3(h|3*piZw7t{Cbmes)jmEoS(OY zR~$srDduz8&z5&qi%)vn2JZ$GK}3ExI-)`NDRmR~@CjhzT%H6Vc;UHEfo7vRu2Wt^IdWqVJAy1Wb+-?9Lo1qi`Xjg)ic# z;Qh00xl)m=&`^EskQHFnce>Pb;1|Gf%P9D&HSpQsCDQtRIq>w_R#)3JhoMX-3g4G~ zRhD}>k4|HAkSDgg4$hvEK$B%t0Ti~lsEXm7u7f+9@7n3{c zA(<+FWFL1yuRpMt{%?jXb8D&zv+M<4ND*| zRw*)PogEdYf2t&mtG`+%H}JBbn|)#cs2UHS0cvXME36PsO&ZnkWc}Y5N2ZEF&&&V5 zCo&%c5EAJfUB+*?c};o!k&#$MEp{G0R~dK`T4GG$?48ALi_CpB7;TH%Qp%o+lv+P? zq#K}ftk@cRy>uy8rv6f+=C|Qm4Ovr^osg>jhr1EH&y~7NW$^$lL5UOMR!U34=Fe6m zC2h0;wTu6iuU@XYIFRhXg7o-y{4}WnfwbcHJdC_~l*g6ztHiGqt<|60(} zPO2Z_%|Y_`irbAuls}SAV%UqtI*70*^-KzY={6Jf$)U;IR6_>h!Zu%+7zEsW1X2TU zJ6pevX{B%hU5G#g(%$mbj=H1quCw+xx4|M&4XXX4inz~Rn4JH~s>NOh2Vx=~S5#w7 z^{$~~keA*bFb1$X1PHP?dZv7^;(@N7m7!<@p3q)KJP!h>K;|vqrx|VGZZqcn1 zS;2wVWmdA#SskJMeRV!-`ZC(83HyhQ0Ht(4irMlXSz?air;UrvC`O5c7WLRhIY0V$ zdG&hoGwkF%IqByIe5`{<%!+4dUkFud+PHo2G9c2Jk`K~4mMeHFxO)bv+1|d9f}eM* zbUZGZK+$*Q{NE~5;yvpgF_=`6a5Q3k8k!Jq> zEI)GLx%@YP&ibgbLe5NxjKwm$ zcJGa|gOXmw)E}+{g&9h7o3&?sx9$$(`Ob3%TLV z->byIf(4Lyxg|&uw}{)wbQ5of_2tv$Qh$N|FzXm12H{U4e>gL}x7NHs*W-bAw^fxi zjXrchg0A=Z^<;t-MPdL_)zydkh~N053wP?5IT5DeC$3`(fne1v*-)!gJen`NdJ?B1 zwQ&$3n9GCKDOaL@R;n35QQpRyP#{KI$E`%T*V=kBG0r&tX?kj)(MEJ4MJge|VM{+~#Z`(PvmqD<9B;;eP)cGmU@2fFtTi&Su zvbqwJ;CtI@%J&_B*p`vyQYAE`x`yk?bI!cBlNTb^1-}{=I%2-zF8LUh_=5+fqgz8- zTs$U{yL`sJ$!%lYxOEuzk_jtGE!{M5-l74J9qS&{;$@>aoHh6F5P<#8OermjEC$Dl z8y#tkz0EF$?ZxJViVijrjBI-8ocrDfS94Ir-sUmD8?AqD$V90jmj@S_nudj9R4^q0 ziLiI?jKd-$-!vM^gSYKS)>-lOU%z~}uFE(OAt(ZXZ6N(tLv67E(xlOEWh27zGxC-~ z<|B!h)k*ARI-t~<_3a@ps+pF!xm+B%`BW6b8Ub$xuI&c%FIo+n-)v@HM;I3ynx-zu z5xOU1p%CsET|8U>hxcZoorj1>1_yg#zJ9$n%@vktrf7{FZ?igk(?O|tB6J_G)^*T~ zXWx}ZMP1y9J>gxRQ|2Hz;rVdBS*WYbehouAo=-OoDy-g}}VaSb=}T73&~;@Q3? zKmTUk%$e#b!o<-k{zpV15&W`0Hxn~Tk2A}M_t|XbPY5UVsMSo{slgA$i^a)kH|Iw? zWI8z6nA^=rU6?6jycg`H;5KgvScLw2W{J2D9H#&i`FIiy?Bap{{2Z~8@V^)16&M+6 zsC4Nhr;*Q6dyOenu6}#GDai!vWjGV|MVeFZd9!e2H_Z}AS^CYH=+3=6(~?;65kf#3 z^%`$be554{n?-h)Ij?ucYwkSJq3LpzvaR{6u*nI_flZwsy-|V5SvFIj8$?FQJ3ZJ* z`lW-Q9St;qbkDiE{k*TQA=8Dq>$2L9(8jH0{c3L2cQ;$bc=?>)mhMGak?UmPB+ZJp zmEznje40+MaN4Px%#lbhCcXXVrq>QA_@^ zY4*~0{p>Pqc13#t0soW16;;8Cn!KEr2&fEx1y3z+=pj=|3Gb1|6+%H~G;E>mh;KS^ z3}{BH&5GYYxT#3g|Dz+ctE<>~s=2F)wKUm!)JNL5Q&#`h|17B-w(xS5jrr^L_c-!C zL``Z&UXG@MA}YK!-}R4;v~TCOF?42WuKoEAeuj{5XSHlezjo7`h7JI-B9dI}0C}ej zuVP*k)`~*9!^YMqvm{@8ug&j0cU|MJDawML_2MT+N}+hO$=%Ik)^L?tbLB8dd7{Q@ zd|nH6E9l%^_$PL~zZplb0#>Vkdnj<|@U^ot_$Q@(Uf`FkBJYM!EshSgj4t6K7Yw;7 zmJLlMr>s~~nxxgABSv{GK6lvezO&3&vU#4CI1lNkczo)KQP@kL6 zDlPyBUpgfhEi3>3L)JS+RsM(T!@0>er^(i&$&+nsYO-xlHQCl=YqD)kwr$t0cJ+LJ z=bZnmXRTiCR&QFLedD?>pr$VEG_ZHu{)44>)Y7tHrDL~r$Tt%iRM4R0hMTC2rAf@Q zSl)|;?SrY$qXpHqcjg*{BB&2QoXdaNv~r_bp{6ovTto<>E3ZuWZ8gCcydkWF zMy$bp%3Z4V2lOa0n+k;LrtM=d?Bgu_rl&vn+Nd`I1jrFZNgO__%M<}Dhr%|EQL8KC zPc9Z}j*fd6wax)JV#Sn($r_^&>G$a<62UqqvliM96nG3nKh?&ug*T3J4O(x*OEju{ zntN=mWb5n35aXItWp?{*?6tj{_y+Nn)uImKjlCV%+2DP$Z(kIg+1Rgrq)n9BNCc2q|A&T%E5E(9D>-4y z^53i5;Auz59bJ=^z0!5OGC>mpPb4Y^UHx7?e~gP9+k45fW3}{FeO+zJ0kj%D2-{Gk z<$EIZ5Di`R?zY2i8nyO};S5F++f~Z4obVQ|+UMkgEY7V#w7tn*wK+P&H#O5c5S5TC zgesQ83}HPdQu(|a#AxDdGVS-$0iL~GIJIsI^1P|sE4!C>q`kPEPY|p&rW5kL}_tj?Px7M@m=Lx9eSFd z+!>ICPIYM-C5r*6btyn&4)xHfSv00rQD#C__B6F^{B%E7j;Y$IU$W9S>a#=FDn?(8 ziy_7V1ISfyg98zTLJD{sc3E|LX7=fD#~au~HX2)`YpFE0fmdj9 z{SL!vdb@EdG?z5g3(Tcmqm`?qfAuYUu0Dny2CPMI4yZ2>wzBUc8KHeA&0V|fX~Oy_ zFRh4Juny>QOVL?f@zkif2?E{edk+J1+{N*_<=9%b zK;y^t)33J3Bv?SLVP^3-f89Gb&`s$i4*tgFkE)4Q~w_E#Ir>{aATmjY{y9+(qV5>eNdif^vA6PF} zn`xvuR@QxQnuoFVYa<&HE9{GBO{Fm1hBLW58vFR~v0;egp@CEn74_YGA2m z<9fDfsmabGk8NSwy>)^QnpRHv%M2~H1p(TxU9~T1#*PnwX&XiSf)s@HACovd1erBD zdHmzmw90<;RJ~CY*Ko=fIjThH7hzif5u%MAGV9zlX$-dIuG#`0r5gCZv0Q;4SnU6s z*<*@hN`>}0(*x_|vR0t~!Xd3mmyU@hDCKE=r^t??4zi2gu;?R(=vF^SQbx)jkWDeR zQ5iqb%9gixQX-*X0r$1Ml_xAkKz2jO(d+zlcbrw1s4^aoV8dIwes%Y9ilzc*~kB5B%nzO81g&ep*|5MPPgeznEkggS?&mJkOD zA?w$YAazyc=wUXyWujvnJNq(gH*FjIr7H(&(fA=TFJH~8t@p=GytOcZzeV!RDMogK zq~w!%+!b1)BtWFbSg&K20*XcM5w!aK;ZT$(icLUsda zt0S@;Q_NKE$~QOA#>X=<+2?a0uZ+KM;rYPZ&$;#MnV0mA+=AYReag+(Xy+gGjJc`x z`w7!enxjvr|DA>Mr)gzO5$O+@1JOFx$2%Tk|Nh}|=b5rIr#A$njMh5fex&F}FdZ%B zj6lsxt0S&v)v+blSpN{O^OlX2 zqXAPlf+&CtYulWNoy;8UcgpXS|C}zAN@#ba3Y`wgs zF^CcNI(#3i86qGeRO{RC5bFn(_!cYmXF&TM>`K2>#T`F@BCIPIJbLAJRfCA0EJNvl>~6#%i7=FL_iN$T@k#cu^ZL9rbSu_ro_ z7LrfJ+gcF<;*L~wrc3s(`=wcDVF@~Lwiqo!-lf>feZC$aWpw_er$Qdts^q&be_E-8%Pvt%^OvqRSSggCvzPb<+sJ{X=*c0?`y*)>gZws5N}LOo$(n z2dOEB?}E%|deSdn^)Oi#&2(b~vrb=)8NYsWil|^CQ=+EZKzWlCHNbUm=kd1CyypUQa+=g|5!jomO{7F3GXr>XcEL^#_;l zr}nfN6IWgv?!8WzmHOZ*pvgr>VSfC>ajb52o?uYMRywZ}g6JKxu)v%YpZ7K8ad#J6@Cc~hb=1O^+g*?ocv9?yL{EjZgg%cgNAy}=2nYjN~3mN+= z+R?WV?(i=Gati}q;?c&R86*1}+}AXJA%cj!=2D^Mjm3v|_$>%c$;0kUqt&UzVgD?_ zhr2;ziD7@3Pr?51fSxVTUt|~nzWlDwKS;svhKT^nFhhWs)$u35jD@)E8XXkCLLxVA zA2ryG%ORKkp-p*~&g)cQL3k^&t+89Xhbmr5 ztEPEZ|6%u%CX^;xLz+8o?56g9CS0lzC!!Rs}OHP20pBwzFlBtuJN2}R~ zP~Uf2YGzlZ#-N!`Rb5C?_nZ5eHAq4FZsiB{jzzG}9&5(G9+NLKX658I4Mve8AMI`V z;AeFJm#8R2B*Q(s`6fplEMu({KZQfPP`Y@EO<$x%U0#Zc&MAcWMg9+XQY7_l`A`iD4p)JJ^50YLxk4i}sDFL6dJA zpA**pLh~o9w5miL(7MR261otZ=4`1^lHR@uXh>S?-@%jlcDnD5jP%aEmUXb8gW#F_ z(xuKQ8vX=e#Ur(@vCUc&*TI)YDUN3Wvc0Q|k2y*dzdjV5l4`}E8CIpaNe&-kl zBqV-E8;b3^?Y3TfbFo5xk}D+RBTwGC)!xmFGz%^WPK@KJJ>yTJhg4^g>&-r%p`fwb zLFJ=Ptv+YOqXWY(`vykIC_a`!b5N>k!_=hlp^$FE9TTK~fs&=-W0A~CT^19Yo^jwF2VX(24-`aWb=;K;|*QQe1Y+Q|3 zpK`W#G;5;2l>+!)yw+BLpS;&>L2FNSl4NDor4Tx8jJNB5;C&`)DH*b?bawGclM`)eI9a@Oz8h_s_fDzucS@+TT)UC5LgER)c50(DqU3fln zXfa@IZF7EeW)-0U=0>_)x)%Wq`wQ9oO*+WXNib+Hh?Fe(KAJk;kDdU~Vrz?oUx`=G zAUCYO@(N3D(Jin3Tiw`PSeczksgFxe8dJno9kZATu~>8V35 z2)`&5>kGGFg8hnwv41_*RFX{_Hh|ISGT%R1IQ4OyM)d^wWKWsfpzg-~IuEMXinIR}uQs&r9Yt(Ye z5-%}%KPDEc6FMGNlrhDKf?Y>#v&5=ZDH4PGqalkU=PVaF6Ktmla5MoW76q}Zc9ldj zTqc^*1)0Dn3n~~vAGh=C*1C{8EJ?rZZTC}N4Rcb$LKdzDe*y40Lz>4K}deV1ya%etx>e3zZ>D300>rYdy ztmE&AZf6a4r~ft-{4m3~$4nWl^?9E(qVCRRbt`Hrg02O3!p20e~0-Edc(S?mX{xc{qmfJwnGrpfw2EQ=cxrj5IWXoF*!yv>MK zg9)8#`&`*rS6^L3>gB8c>Rpc5Zp)kDD`5Pjug>R_BxlL(hxCEIF8+eBt?sU?2pE%J@)vk#_|s0 zYuzp@oLbani`i4kuZ<8AE}yt+6bpN{kAd{kfpje1a};BqMm=UcS!u6~lszY1TR;b= zXzC*kg_JlfzAI9uM;Bl5lU=~sGnjx)7a0Za-15xQ-pYCHoR9a0IxT58`uj}IV-C=t zhkp8wT-2Y+6Q+yO#RmliD>!sb|KMDSDy|(KMnrFitQVeHm5Enj6ruS6TmVhNs=U7V zIl-n?dUYz4X-F3(oa#jD1x7CWTr*1i%wN$ce^WD1?y~yoH>*Y8)53QC;Lhd#2-tWi zEJ)V&7hcHEM|Jyvv+)*VZl~cs~#< z)t($nzLv>{v5gy&T%~C~m$905KE$500e@LCSV40Wp!cgTa)Cm6W4&!faYNl~vf| z6O4{&6*5t%rj5pywoG#>DW}O+Bwz8R6B8S~T@ZV2Db^X&F2Y3jP$A9`6RHtri^8(TdW_7;^INk*RXcK%M(x6Mgd;#dx1KEC+Ty2r%Sx-QfX^KqMLs$$ye2Y6dV;&OmeZosz)@wvSjNPXIP z&e?fIA$Li4xAwRSW+##dxAq#E+7)}D25!6`X0|4P(BuNYTO0SQ`2}hBTBWWjqnU2N z|D6Z2aQbsvnNpi}hnf6PWv3~dr;8*R{ot!j54q>;?&Yc*j&y%0!n8kBf&9Cd2H$I= zocwZq&e;Gbr9+v)1nFX2SV6=Vy`(e3n1x~0=+T#AZ1hG*H6#j!P!nOJ?H@qlH`hH% zdC)cVykYV8yr^0-^hTn|d~I@TcI7TUrSs=Pk9au&x^F<`q;KYuYc*0!2f2KK#NK{6 zMo7VA8Jx>m)A9r%2`h?2i7Kr+J7!u!IMsqRz1V@e5#Jx$xPSTZAB*T!nT(w3Q{e>2 zG@@#D_?70=?&UHXUzDXNk0TOuQ29EAWdUy&%~D&q#5pUf74tIUH006&#p@d7A~^d5 z1?hel8X-bsvwphU}*o307?y#w-34iV;VN-uPP&y9pE-3Xj2x!uP z-vMCs6AN6?@oBQnm99tD(|zY6+a(XXHov|s>gKv|x~F}887A|*k3pt6{4$q0+D#CB zpx0WWSIn@Z4%x*A*cNQ+!7zvVx89ki0xnOfEW+78mPNt3eRp|)cOB`p-lz|al2@x5 zUh|RZGj?-}<)@GO|6$L*+OFWReR*O}99Emysvf*I{JnwrU?}&xYp#OK%e+wxddB-} ztkKzkvvs?g`!fCLbGGc?Pxztg_WjX~piDsMX4!;%(t~^!a5h=|CkG`HsI+{B)b6Wn z$U27J!lu2HRw^qg+%=;H!*T|UOKXI>fEQicYFm@t^5ZRFqu=t7Y@2DY-r$Gyskt)` zHWs1)5Von&rcly2nP@so+AqBTW(9Gn(>rp%3XVB&!fAryVPILkqjVB}?FM;>WP2sA z=Fd4BC{M&?mAKIuEn2aTSV2~O-Hg?kqXWjlgq`V9ohv){Jik@64;f);_V`HQ^F#Hz z)EH-0W;bVMmB|!U56CMv>^PlXrg2HU=Gl}@BR&uRdAPyGm5Qn?vN6mG_%jnbZj*;> zO<{{o_;jcR|xsebR`mGn>hL{Vt}x8~c9u9yV}%QYzLb= z9!uWq1-AGew`zwzlJuWC2e(R}7!7as_Y_A4F}ug1i*=Xks;lx~M>KM!oH3?ujA$_s zOZLi&)u6S$O5nIbomfCkEG(=7KP#*AaPJ!(e&a})hJX!OV~siVc5^{%XADg7uDse% zDH~32Vp+;daZ~YP3g6I@+7a#M%=*mAYIwV_<~?!-hjkQtmq z2F0OrU7H;grfs@IsL;M_-3)yXREL+H2!b8$gt))U6r@7e90U=&`Pv2W5LQ1C9jX^B z?p0hrBkF7XHWfAsQA4zG;W#lP3>og`Dkl>YHL#<$$3gmqzgkj0ncd60tH3uPReUR)iab$tu&*lCMS@Fon zE0%Ct+S9dmgj>$H$>-kyBjYKS^u_IJKgJgx4v?Fd#9l3PJRjC2&WEuX#x&En(RrbRP%ZXEd8m|<>1kuB91FXQ6?^fc;Ba-1`h=XwNt3orDLMh z;pm@zZvk`3d`cWH^Z#aTXn!rK-m|Cw zztKNKpU&JdI+eO**V4tZnh}tVE9&ci4C=9%X$)3&rU|gT`?m6GfW7I{j6%+J1jRMq z2y`8v1S)boHENV#1vZD&d=x+k4q4`T zx;Gkwn?Q1DcXnxUac*~^x7F#VdSyn;1Bu5?Jqt92^Ody9;rdYrMvN$k3dpG+isb(} zYhXlua;XiBX4}J9$8^PY2IuBQ^g6C){WrR!Y50oxN3K^m9EH(vL!$0aPV6 za#71KsXIv3$gE1RiGQ!n1difh1KHv0m|!eiz4go(JS`h_lnNoiQiL;qq?mZ-3-iFH zoT#lG(zwDgu$ZTO8{~7pmts$N<*@fBcDPczqjq|lJaB2PU<%Jr(vW|X#u~Ac8+Ol0 zZy_H?t@~ViQ2hE@+zK^pqeQ|N1%ke}4akk4Gf|pQVoEj%T$TXNUNY6&>j!Dw7~Z0d zaX;5@XQU^{`Z60m`xmo==ddF2B+zmQa(Dq3$m5B@0P|aL&YJ)6IqSlm06UMb3kdzv zkDJHY2cRfc??C^@^T_7Ez37?GwC~tb*~(9X@*{(a+TnN!OAz`AE*xjZASNqIsbfjx zNOpcERkpk@d;xoXZ%r8Y5!TJ{=lGo}?$!#o9l(D!pRDJk;Q)>c z{%lWZT;s44nh@jV!by2HUF=$+>h*~D8;+iXRLlWcR-ZQ-iI22P$Kf|SY7NKe$q+vM zFUO3iardKqKUkNIUu)v`ptA*ARJwOF=sglxIx8czz1h4Cz^_ium7pgz)?UPwMxO{^ z`3&tgyXrI_EKg>b1X3cg?G(5Hcc%c|z)rDBR}`Kr%PY$=YbYVErLT~FnP(Zj+Tlt( zIN^<7n;sh;ApB;K(f*o$yK%C8ZOeIV%x2QJK;VagYM$o?meu*d_cSeB^l8(kR>md| z+SS#6>){`>(ZWk{@N(H!zk#m}XE56&NE&ezu0W<->331UVq}-m7!tLfx>SG-eFH*^ zUg6&UV=!p<9le(M{L$ptgIq6Fii_&(6tnDiE@#=jOru0OYdIY|!Q5T@C<4+VoN2|u zz>)%18CyG(#?&;?4a}}w4?!)0AB>KQX!Ynhr^+!q4+#e(zsgYcxv^Qba@7zr9f?+n z$?tNsmJWb~(3ppVAEV7C%{J7nQCq($A!ZMkX@YZO#6tl7IPVP0)OAn(xEht~7zob} zfpts8mCE9A%-t*`cwp8~_O9`|GJT1OZnmnBl)tMKrt*h=^b0oZVjiYph-nkzcfxd{>9OvJ`H*LQ(wMzm@qo=R*tRjSTYB)$=tIjyROs`!E{Plesz|VOr0M8ceaTi2;AuMyt#RZP6_A)UC2?U4{F(o3N3FzgxC97+gc3vU3?K<1s@O6e|%j9e9$VDX4r&Pa#2rVJs*q~hh zchW)ekIQL$@J@|=*XxHL_%YYeYcJbg;BIUXDfTe2b#y1*|9!qBPz@A7Y;+K#_KB-7 z{FUT<7fqdgJC5R5({df9ywayIpMOD*zR&i~p2+Xpt^HbWx$C-RaNTZpE!D2=q&U-#8wl2Ub>6lr zjh*WLW?6PuV@Ia=`t6S8UF>bx*PXQGi1f9C4mUnBo!_WLqf-6WG=MekF@lC$lexI& znxzLtDE)|AWh_Z|VbH7<_NM~I9p-h=RX&FHJuEG*W`r@i9!7`*eTJSPudCIb4V7Vd zC>5*DzdiVBK=DMIr(Ljak(B9yO`c_>sz>J~+o$9pL(+D8gnvZ);r`Rc&x(5632!!J@MU&v_oYZS*8d}f+wgTE*TDaETIhYl{|!X4{@%wx z*6AjWdM0G>`rz**e$4%GoyxuS>TloqB-C;{A#1PSb}z;ipG}erKxaNLi@kY}A@d0- zX-SuwR6iZNh~@{No4qYLbk`E5+S6ffAYKi;+)M7YsIr>m$2Wozwatpw8s02k^EF`G z;6L2fn2p=@;`wAg~TK|=9cs$*hO_lbD9;q=zqYCyG zwi!xx{8^?-iN$=3e5(at{;yT{4?|(p@FKY~jmms^l^E&XPxy(H1*+*5w3tq>|KOPF z!(F&ipsqFU7Q)EhSHGhPApD_rJPaU*`vRfPOM9rAJ~%YHGMCD%=izcU&?-?DIMd-4 zHZ0TVxCSP2XcKW}uE2@CRq4QnwrNbjTR5TYHYb-F9fbV+dC0oRtD@^u+);#X<$Z1B zuN<(5L1HRJqB#m~KR;-R-#QDQAd^RsU3OM+pFo~>NsXI&7nFPG->*)X}VU+hNj zdixidf#6Q+%K1GxTg!K3S7;5+TzU%CE+`7#42j_BsfVS*AUNwz(w%+hAJDxZF_d>tf zgWp+dy6;k#{O)q6yKW=HNMF1Jli`;>#?6IZ!x?zH2c&eoPDe7qu6(5<*Xn}hlr z|F)Xw%A$d?bda>uOK)JUs_U&%B$uKhFFWqFaakeUxM!dSF11;)tCzijEGN7p!%ogg z+JZy2;%rpw8OJax;FV+;K540mIn!*KdDaAa;oQY{bKQe2w`=EN443zX|32Gv z?_ZnW?0mg!eWlHDt^9 zEe0t$&@?K?oDPW*9CDyUNg{7VEX-+<%9$k~h`TH&GL!CMRaOTEVJRARfz<@lfe48f zR(pPmKt8yoMS5POoU9v=%lURZMQXZ*~S2XZE8jsXE9fMaB)&kEmB-F%Kw znR48ls`YSmX69tZac-ir-$q38TpaaRflcfmCrm}sOb9Pk-yfM+QM^v~%QyX!!Zp;v zA`ae=36H$>!Jgg->9(kH1028m)n4)E&zmwQhb(K)U_7wyqjN)V5Go;q@k@%+S=J`| zlFO*#)>(NE>Q(}un_4|d$x+@LiH^*NsU>1bbBTA@c7#tn8PlddQzXJHPE71yACJuJ z6-b7$rOw&hwXZWrF0it>f_mQIAFs#+ePCcNod4Yfj3gI{j==GfMp!edpWV)gRGs zvV-0H44zMys8GhbyM}%NS4Xee|JM!Y+t~h`zEoG_YK)n^Mfu#dIC)>ZYAXs=yjiRb zo0qitO4)9ac$2j}3657{M5QPyr!c3*hj7!-KRfa2D*Q6l{sgH|Kg#Jxy^k+@LIr8= zz^qtB6_EThfYncaI03&<+j0@9@fR%zd=b*Gv`F)w`UO!}+mnHUSf4#`h@^^>sDtM< zN9xG7Ia{)!uE4|fL5=U5?zF(|2)9*H8!`4?yajcN%&0Uns?h)wA?1lBga=nnHFo)e z53CKTiQ~KzYf{{9x&;NDBo?MCV=>}_9_%#|CYsk9Bn_t=venvJ4>yPgQY2M^cdr z2||TF@DLmQWJ7mLx5XFwJe&6eI7Uqol)(Q!w9~*c!zUGy{KFZ5$FV!5zEEjd5if%e z?bln_;m4N7eSTMPwT`Uii)l3V)(0f|2zni(^W9qYZEH-7=M1}yT)=C`k`M{HY;VWI zqeA@xX0%U)X;IpwEr5sYRVSWx?Zo5{RctxCrtPj3BbcuyC>B|9`)27~89l0Zvn=nR zA+mQF%kJ*?xikBZqqFX}nkD}y^YXjbNTIHmGoiQr><_QAjqc8y%dMV1mXGt;E#G$< zAX&>pFgcr$;Pt=0iS<$Iyybj>vfH{4$aSZjFbm>NKPd$5&=oXGibwy1bs_OBAYedkYN0 z7^KH!i=3*1*c^qZ$I`XfbH|eJk|oMk${XmP>CFm_yLwqu-%DEtJ} zYCg+*XgsuL%O=fh@@9DIBA5aBKMWy^WE;cu1Y;NMzD`Uls08Y>vM7Rz*t_7ML7EQF zl)GC>12je}c5vguQpKtlc^R#$`$MoCD(U*TQzR6=C!WodfnR@OrU&%zIrE%k{u0wb z{-h9zQi#k-Ea(CP#eb>C5}OlVJ*ji_( z5Z$MT97DuxTz@X8?g&M0B5ju`fF*BRX(#v`ZEoOmwz1?d`w(m3bC;d!|8glSYbh7fZcv3Q#GALGJan(orwI<@%%z8hyQ zkZ~dfX{KeZPEHrd!uaU$ag0Y}k&_2rbur(folF8xVOj9lVRI9S|2pyXb&O(%>rZOd zif-Fd85&qtRWaEy&g0b~_ppqAL8U6qM-QjxFkm)@)WVeL`5SB(n|r#?mu(g~$T|(K z{al&y*+B{U*Y~J7$k?IL^wu)E@@MNh43_#orb>CKOFgC|QIT@Bt2>S@9qW!ZS(&*x zY;`idS(SC)^l~#Z+_cX_I0HH-Sj_f+@?(lWjmFOauOOC`&uKp}_={vLB-hG$;@p=# zqaXeI^Y@?@N3Yd>&aP4qtcnB5mk=#2Y<>fylk0es#C~i#Um#e$_TqY{An}VyXgFOp zJIXr~r85uweIJe-o0rWpr*+R9hJ)9e0wzjkb{d}_Xk@u=FG4rj{$1{S)-J>?= zCO*E-q+i&3luS>56|}0l1^)r%WazQyF68l$I^FqlM%HmVe)V=Ozn=3v!(!lZ=g#tR zyJh&i;NNjyFU0?Lt_aM!lq9mzC}XSD^{Q7_w^3#qa8_Fu#d!vtzl>I}|KKp|U?`FlMVH#A=P za6#YNu1_MZPFU6%!X?A-wD8)FbPxlQ0G7x9YnT4;bI+RpRkc@g-B``5ZKmMnt*)cH z+*k0x4My(?gSl*#6Vh^8w5bC$R3g&X9J5&!$lPF`5V5Yn+U>_(T$IQYiwG&+960RY zcuzlu>OC5r&<;q2fqX@yz7ejPNgNE(ZBvI!6%)_ACKx-aXX@B)ZM#Y)drld7%-=EQ z4h0@&$S02hF?$pUl1oSrzz%iVr&HggB^P*tI6jF3))`H%llo&lKqM7W2bJeoWMIXt zhFcyYBNHL+17)YCv$WT5p%pbOqM{Qtml#8R7tXkd;9#~h_qm1yEL-#|u&&VUz#&ib z-@(H&iLiLN&;Gs4J37~~DJ{tjbk@xHsLy}|dF`B)X^4C9Jlt=7Ync93xkEXA6x2bw z9p(Gm75zCA6Uj>%xDGepLJ*?cn_;C_*q?4~IIhu}8c}jPMB`YoF)_)&V-8 z-S+XM?q=r8@K9J-Z}%6;m}pV~E)Kq4s3w}gq0mw3nn~q}{m2yxE>v2e5l6*mn{jaA zJi^psp3m@nl_gv<*+b>v^*0})5gx-ABJF$juJc3o2LHq8A84TbwW!J6{a$5m=yUhP z@&WF=>b{@50&h27b%GY348SMuIlgZvM}ElYemhlL!0+7suWzSGy}@haNM|ZaS^R=f zAlTQ23gQjgcl8%GbyB&a_v92^b(gX}=>wT0Q~$JDHnqS@Y!cV1y5 z>Fs_LiDq#+XmX}Fi!S-EDI?E5b!~KrcvS1MmX2k0C1Yhx!=lxo6(?h$^XS)etlG3s zc4C0j%*)K5lp5;6mI<*!@!68Uy3rDA>sgWNpD^|2@tOnH!ixT8^r4C>e@3=}pE%TV z_zIdAv_D*(*FsnpI;T3KW4;~h!&gNNt=j_Z8Xy-!dC5=fzK5Zbwvb(abGpY@m&wS2 zvLP%fE|H+!T()CpxJ?R{4#%uE`K)}c6vuVqGKv4s$;l&0CA5Ur)WgkbjNQ6t7h%WT z?8wZl1632)%YP#Il@OUIpu|ooC>TTfv9@SJY&z*5r{6eM4vUf;^>mx{6Dx5OCe#9s z40U^9sIjC1cG(=Jdu1FYEWURqsX6|8&C>ui(cb4Zq{jaYe#`rP(%kTEfrI7k9$x6> z0Li}V?sj_9`+dO>@J3%65C$DXhh4s`;|bo4Dh9T=q5NyN;0A5be>7PtjC#?(+Zt|F z#o4F?YOTRltH%?n44lyml#F4v1rx3?ENtuO*T($rQ=*vbv3+T>=lyTJdxH#eiTy~%7=eS7A$|KC$*<7>{*aw90hlbcgZ!$!qD0h22XO!DgbgdU zb|ONkX48yMdI|>zK4D8qh3h9JyCwkRKO(gLbZc#Fo7bT${A+>C z1M6#FX=hiN4Yw2F_n8zUaYlmVnYXh;Y+^KQqieealqNDXEds0yL~ol z@L&{m^~hEWTiT&fHdRT4(~IniBgX!+ZIsz>+GwzniYA*Zd!7W-96KnwCX&R%d>de5 zfU9rAHkGbLXK;&+v`=?f3&G@A2%duzrl8@FS(a-==o+RUb*kiv1Bw$@h5YZ|NT~u=Rxa| z|Jy{Y-}8L4A?VQEz~eI6uoHAhCfvpHcD|wM_fT>KfMj1{{jjD7-`g)q2|IR4i`=KJ zZ|c7+l!Jp;xyoCNr+^2h9-ont;a!=B(saS)Q<}&8z9J&-@Xjv%deOo<-prvW~Sowh0(-1-}c4qN|xRH*0$eeuL z5o}s)-gs#lh#{$EvQIo^ZOnE_pX8FGW?O$Ue;#ciyTQ0~dZ$`_fYZt|knIs+!cyVH zjetOgjD@`YI-HptqT$PiB|8(f3BhxJe;A@lGiA0%2f;(Aw6jh5>?6CP!lo`YTGv8b zR1j{J*Vg4^<@+qgmIy!ew?jV=;XChl10hkiM8-kH#2K-8 zH?f(i0PP8bFUSZJ|h;F~>FYE9#9;vRlaE3gzYbm*m z0AAqC=84*j_}EtsTCL;X=mtg3^vW}iP&qDGgsT6EHv_pg&^p7hXlP`Dd|$b^guZ^4 z8Q%}zbWE7}jqTu>cD9c5cx~MKStv8|le^aJ4qnSOgRI=V{8niheRrb0)0+_C{FxJKc9veaEzv_3Ch6Jz0r)U$!)A0I-ZoI3 zhvsILp}hRbsmy|p|3US=v3`MTPln)?`kMFCWJB<)wf)ByFz7dH`ahS@bl*e~r=a>A zTnczU>Uj?8|JXvkt{AL-Ooo*I2`qq^!?xNc>fm}rwKb`VeaVGd8R5kyf>YABwanX> z9m4~ew#f>;l9YJ$l7`n+@Rl3IV_cBGyJ4nRWrnEwhlNycH+U^{BO=SR%9UTM%P3}Z#fyF4?@&2V-dw^15^LH2d3W` zw<%4fw3u^z9>ix2ZQ)88fI7X1m1 zWWev%DP2HPzqS}9pLKHA9fET)mquSZabPz_UUOqH&sgQ`l()@of*buic% zvI>PO5u~{ZF?~c;Q^E47&~^bA_e_@DU5OvEeZ`6+9l~qIh%!?Oj{{IlQ~uJrc7~dS zSmN}f4KfX=aa2ZS=e4+X$MOI|!~k9s=zzt z)(7dtgD^JeGNfWSD7s{ywkI(rgo#uM0YsHor41eH1NV`zy)fUfbQl#XEteU8ORRqD z%2!0bK!Uq2$OxfZPdKWHrPYlpa&!y!*3Tr)6;l?cFLdz_?yLjh|mPS33LRD!c3 z$8-Ed_K;zkw1117X!+E+?CJtJeXV&cUU|{stqGI$p@qcW$2%neD3u97q2oY#nT)i5 z2O8Pi$#C~a4R;y(wV}cLNxR|4qVs|1#dhb@1!;%rQV+8_LmVD>+Y z4?M($c6k$r+-3%5U$ca5ect$}0KoT?$GpZ(&T`wb&MohTi^(564=j(wb&^KDgI1R#?>Y; zEcKKOdQ~aGL#a+#Y90RQ|6C&^3LA8{AljJ3V2ZVZUv0S1fe8&op5$cX3z?gEpYO^Uc|wk;1(*XTPSEt>0I7ljtNz# zeXF-aD%M2_H0lgSWm_i*Jp3ZDXdF;I;VQC) z4fOZya&q`Xfakr(Q1{Eed#?Az(scKGCf=sc(ZUuuH@D+1mHYjAiF@<;tfCwIR3q>p zC#pco=U{Y|vvy;Aru?D-8ymdjob0x5nB1W*1g>yxZNe*v61Fo`#<1X)SaPYs@hoRY$tyP>*qT5b z&QfZXGj)V?%*cvXn?@zq*n>)w)UM_}DO1x})!+-1RK56Ms1CV2I_<(;bV*>vymHh6 zqBPA67kgkSi;*O~)_O>$SJ7q3IzNBVjH0TKd9u8m-Wjr|W%=Rf3s z5z?6pA$kQ>(rXnKgh|A2vD*EnKfIyAi%Q zPJwKx3l@~mjFC*+x5nsM2#e5_L(C8(8hiXaZ5cI-GOm?zIHFD_nE{J8d;P-thj-Z- z1SCXc1lhy{U*+Vd8C z16O?9ty_0{?w)N8rl4JRUoC#tSPHm_A44nMHB@)au>)5SOQ!!`Ro>M8|9E=G#=63_ zYdbdDxUub|aica)W7}zLHCAKWjcwanv5m&Iwcfe+e(v`VtS@WMYo6B_;}~aBRQdjv zNYrpW0oc`~jp_RGFLiiJNV&QPDab>$lkdgVZL+(WHoN+P@jUDg))uex?$&9zQR92} z@9Y1moam+ZMZ7i{A7IOK^C2Jciw(1Kucax*&NVxip!1bUw=%#WWIjFho$l#5Z$58* ztzywe5m!=VUUUr8kq$4+!-Cdf`HH_U-l)(&)mRwSn3Pb#GhLqV zV^OD9u^{83lY6IaN7{EvC`PIF5c<|_m_yovASseHXk8miw~dCJ7fq>Y%TlUkip+a6 zgdrmFU5P8L_l%*k(XwmDg{Mac4=JW@`{dK7#@NwjdgO@veaqbRXe!vEW)ynP1n@jW z9kRzeBHf<_BP!Q~F9JtR3HaERL7ZJm&zv?t(EfPI;g)MtO7@11SaSJ;<{SfFTd2s$ zTh_VyGcC+;-o`qYg;&i=6(^IXiM=(+>ycAQO#ez}J5Ymz84wkR;6{71m<}*C)xJqX zEIZSq@z~K=}Qh$`JK^EYbeQ9^-?aD#k4w`?YiZ zDijz4xBkjnn2&`-;Ct@mT*cW8j2Mf&T$&kb%a>wvyf^$-ij13dZ~sqoUPBisyO;*% zS1i9Cx4i*&!yN(0Q}F&yefAZZv(3=GgY9sIZ+V*bhc_Fht{Xi|&pDy zL2gz3B>JU`^6M$-51V?Y*B;f31-Z)qe=K_W*X2XosJ#^(v!k3(@uru;;3gNWUAXjN zeg^hxYMvzcS_kL^tmkduz^g7u*{8lkA)&AA)GyyFEv-r$<7M{q3f2fAOjILOr!Pbc z8x{0n-m0o?nZK&zftmfBBIu9^;OZdBdShDMo8lQ#>cpy$f4-ff2LRQyqPW~B4E3jq zA~2>2G@QC4LmUotNM1woIA9%mQ<*RHgt8-Fa7`i1^4GQWwcvGLvzQgg;tV)ZIfs}q z;_F{jiNlajw;ScgGj-G+~FDPB{gbo?xBwLv^Mw*_WSd z)4TG;nfqfwT*oa#?D+eohM&}$cXJ%+kGY9hc*{%_bSR!iut zwUezqYFg-dv*i9xXj1OM)A;#L{Mt^a)46W({JqiV1OA`?x8{w9!6|Rsy(6~b(fHWB z3CDa*8-I8aZlJhs9uBP%t1QY9`mMdA<`2OICj-;EYpiW(I79$ zCJ-K_5}`_+DMqjT3lm+YfIb<7T|ekpr6h}6O6=elFhn8yEB%vT98-ZKY_eu##4?4< zWY*4o63`qt^{4UktFZ@Gu}!_9*IA;##)rYk&#);2UygD#YqoLVJNN|*h^Lp3!p!3J z51)Yr6f)Hp-8ctbpZ20JT;k-Df|d02ZuPnD(oJ=|wE}XaL?>408?t)q$`&HWKPv?BnWnXC{ zNH5g}@*WSi9zMT&Zxa7k5^!$+S9E(hIlT0ryn?II(mP3zkP_HotE;{1YA}vMf~j6S z-amYhp;ek!J3PcBHfzlieqSnAk}Ite+p?0r)lYjN_;;<^nEGkq?@E>K0LRaCi1spv zGNi0(!CcHB#J(XcHy9u|%1GGjJsTKr>>wpKb}dS+Kgs^_69U*zAi~Us8o*p|17Uc@ zlZqx|sg{o12>ZrZ7~w#d9;Y0o)TwCc*zLrt-@AHJ2q(iAEfLIG6j1}}6Aa0~vv&-K zEW%Vk8NcHtTqg2xhwh!mMz;+0N%NSMwkcRfq=$XH5R&0DI!9Yz33P)YJWwU+mt$dqgR= z2MID4jgi?!&O(TnyhyHS1@7rDbJ&$q~5e$$fp? z^4#0*9gSnVWjv3tFi9IpBFQ_ExmB*0Kqtl*{EbzO(?Lw^ahI{>@o-<9UW!4((%$GIzhho;2Gx%+`{47bGp zG)dcl4U~_Chx3qtWCdZvb!vrN_v6zoVIhL#Dr{%$;{X%?@HM+pD>s11}rJKGZSdMcT^ zs7S$2VG+7NH`jZ=sIP|fsrBx;%$8Tk(vKFU|4hjQ2F@AOA6nrm5BLgLqDrpo8&VKu z6Wy63t8e82%1pJE&+4i>~XwU523jg_hc#Y zVTbuR7R*NEy@jW(|q`&Pml%?fj1}xRm zI+D1MfRJ@|4X=?#rly%%XIhJk%b+ad61^@+e*LMJ#~=q5{nZ1{i4jlA?^`gdL4w%V zK;LhaoHn%{6===_bitiI-5V1ojge>xn)bixV)@D044f5Qj6c;6nz2o4qKFeu$-c?7 zoYP!0*!g)_?4Ao4F{9zwdl2H3uUR6$z6q;TWD=*PG+3~Wkz99W?yUD7Lw%Zc)(auM9PL%bTSE}nsjfM;m%g*}${ z&+T?&yslo(#!u6vBJ<&BRFZGb2-cpeBEKD79pfdG1M_vw*7ipJ8{yl|e&3~_SUwhY zxt=W?CVoF@p3L&(A(G#6d;F$uZ)Sk&Mpw36OaX4K zUQPeC^v_9X&)br#Z1p11`sbrW@8*Ge@0S$S_EUt{@9DE*=Yu5z9c7iJj-LECm$p%_ zEjFtHr>-0e7b?uwS^rbColk#tmKu6?tVFTdVddWGO{s;sdwRQVT9s2Ac`dEk4l$hX z8t^}Z9rs_V{Jq`II(@<3MVb_T2!xb~SWKDmm=HsZfy&_rNeJr5bT`fau}f47CiZ4X z)Bdg01zY>KlI|W69`L*fqH7z%l&k!!kK1_F+H&=nnYQD)8dchf2hQYvTppA5&8t> z6YqEv%hwR}k3BW9jA&x~Q(fFV$2CiYSCNSc?~mz2x0c?fZMOsdhmiG;nx*0Q3<&Mw z!IMViZ9u!;U1>p!7_?~IQS4!{Z8>UM2@5z!W57*H=gvhg=N})Y{AyNq6`?z9A%&-7 zP$LDsN|e09TkepZImyg2WPUR|s!p z51$hCydiU-x+Rcfn1@WB6dy&RpS_R_UX+nhU?6?4+ylQXvruU)6+s?TzY^DzGp)C^ z-gsAd8_2v2cMO`=;Zf5>VI~0Mc=JNEG20iEU5b1Nll230lw%D`Q^Wg#RkKP3x3u%e z4W}uh=B?V(GOm0zAxj0!QGtRhaM^OD&6{dvkmf$Zxu(k7nqseevnbfIB*99_Q!I^O zO$cmxoFr71H?o1mX3oTqZh3;+{8Oe5#H{su;Q-v^#$6!QZp%^O$jlVTkfTWjrgtmz z3TQ~J{@)EP!*)aVaO?bj!=t(~`Y(sB-Q2UAXVdqOPSdMoe%me2DP8?qyhF$zD;nu3 zEBo`BqpGdh*pij8AjL_$)?n>4pomN%lRAq5LlY{N+JyRM+{mghmNI0J2bLGp_g``} zmB?`XC+cBxF=QYtM;MsTkBt>wI8C(6$gQr9vl!lrfsL0(xuU_Q43(m|%(0+bb}-l4 zklE9>n7rr!eNv?Hm3(##Da<{To*A2<$4N8P9)%{Y)R|Z^6u4)WJ4D}AXR7#1q9EwB zq$bCW=RqRBxIh@ZGrLXiL%->vx}*IjstB!__`|i{&(P8d83ON4(DUo#le*Re4CZ+gZBul2tXgapuIHB9dMjxChC5D+wI}%tZh0id6OA0$0NMf9BEE^|l zBo@^==~@W$lw`z+wN4=JDRh6MVa>y~vvoaMT3h>ktf`f>VVaqlO+?Z>InmCDv(|xV zHH1BVJ--YS+LFk`sG@bOu`0m-80`D59{b7na~WwBHyF(Yl%{%J?N}lbh2z}br)alT zn5_5uZ;LD{-2s?YAiJgaRN~zUM61WTrKUESM6K-ZCB@G;abSp-Q}ky%T@Ic zu1%7Q<@(3$>UHP_NV9lj?w_k;6$RG0nwlE6RogVN3FZe)Co0ILiqwkxiG;>VLn^*a z@zvYnaZ~=RZcPE)$X^`c1222JDRp5Fpz_3jjFQ~dM{4x|$>3bvU46?xkiBkL)7lkO z`PT^j+&VDeMHv^yz(TmW%6KNG`IO1bj+$17Dy3Kq z=Iu~hn;2E-7i1Gd|I9r)hzP>0i3}c6DsS>Dgpz}7RaeQ)+>Dj)!N-t|S-o^^XL8+U zs=>9Ut&iNO;of%R>y)KV*IBcTk8(_9s%VSt<>Ef9opTmxPU-7gd4v|$t#M+a-{A~mx}!$$bD$7$+EB{|1w(HS$1vHoxw2=g)~JDHX-W-=Mr zICpE%jz`vQYefNaX2N@sZ)(jiy%Ps6OuJwL{FZ6;A>%TH&2iTD+Z+eT1mlY2sI>_ zcR3*8FXo5bAHR;%k{wQ6T*vs4iNqy_SsRLSc3<0H-~kKKwe7-F8wUh|dnz1$4_P$T z=(=l)70@9wP@&KcjryII&SSww?SAU`6E-^ae%kG~-_r@*tmE<36?#+z6->X@e5sEs zlhoOEU0uc*AMV=R+r8SLSvl+Ii3*~!c<*knmexl9RhJRM*|i=0Hpb#uTodo%p^puw zSD($+S`iQ1E6Z;eGYmvps*jIOT2oPT-f>H`*aqGHA00qpw)RTU#l3&u)z#V6sXpuL zX;Ynbd-*EUwfe^nTW(nQfSi-3!g9CKJQ;@?rjmlPPNJz~3K`Gbc zi(`CWVl8(KiZTckwqSMCiTpjXVL>@VAA!9t-8W;z*~``UjBAgifa=*(Og@MaLRG`+ zwtbV{*K%36T0>mCaMFo12$k<+P(3V8tQ50B2Rryn5(<1HX^lSsjpOQhh9=08^O=Z^ z9}RPAQq()mbFa6Lj*dBmoZQfkM+C|EOAlk~?{9j^jIx#sg2fSR)}iH&{_=rXO+1XYWx{7DyDkKf=KBwlL8eO|6zi#qg(ZGoVDiM@%Zc=aD>b*!isEW$n3&@ zK7Zcp5@zv}M9BRpN9grS>_6s%hmAt_$BRSNjq~;_E*#zFlyKGdR%+EBE43mq5=rx= zD(SP))jRyE7d2(LTXGT?YK8ljrD|d=fmue~p4LAsbYd;9Rtt{Fg59*gifXTUDCAa7 zAb(u+c9$>2xw_Hk74S)AM|e|gp8gN8^aKNG?ElQV={~ma%c#6mZ-$6Z-|VNpxh7E2 z4beZ}yxfGzq!9D_e%vTI6=s%SxgTidu9h*`R%EVfeCu4-vPsO?XAEN;>{k-N*yrsQ z-Y{x|z#ptkoeYF2RDeORWU8uUuDEvAqG#H}7L~Q;#hu#2NDMl4Y3byGPc2s~VVTFd z9j(AZaA-DW6eS+_ix4O~lCjsaoR4U9PUOsEsAyurQD&G2wPN_;GnERTM>_bJEn2fe zW!4tx@S!_W$`{haCK}<9>_WV|TaXE0nPK}&G0{WN%d0!#xz@%r7{?iKqe!YoF*f-{ zIM=jFbNs?;7k1NmT$O^wUq*PFqNbfr!6VV}Sg4E?k-SaQSR3mY7hqmJH$&2Lr`>iO z6jkCB)mjlz+Ch>!iwIyXq*UIgkRCuA(<=u2(vM2)a$qn|3cfdMg#BPr;B%s;quCia zaO6uLp{k>!^Z%-_T))xlYxF+8Kmg-xtdv|lUf7`Hy!8+1^)0g9TLZcp^do%QR@C64 z21h`!ISPqp0;t#Kyig$9g(!3nbPe-5Ph^NP_h;)ue|6M6-yN0^e3j23?#O!(xatApmA&u-0nD5f2AyPS>g?*?V`zxjUT4lX)U=~o_< z{~Z%=tzFj8(_Q7MZELMU?@o+Ve~&VGQgvv`nP`+!e`=1IFCQ6|F^ya=AW1U#(2wuAL4;I82n(G$7a4YJ zip1>cn)Vx$kLzB;b>@(Tdka^gqZ791U=EKs_^sCCHNyg-Wg#x_m+MS91XCf|$B@iy z8nFNsD}?yrqE(4OC2}|lUekbjb&~L+(xyA4f0iZtvj6$uU#Pl4yk_FVsqyp3xYSQ_ z1NSzjy|zMGlT5^?4GXTd16dwa2*$WNXc?p%roZaI)hvGguWrM@%4DScc(iOl1C1!=<6Ul+mN3oc|Uw(4!(uGWnyH%z*)@txp| zJKMRa2>7bXtO9l_CNx^n^fkXy6Dga`D!|2B2!*Q_H*z8=XO~eQ?Oy8Ks-09sA3B_` zpwF4t6EeKN&|Z6s;BWt`IjRM75O_*5{9lZggldi0+$L$}#jbnd-r5dzZO!G9&5gY; zibxsAw_!;_WhXogiw{|tvIT*d)9SpTjB;azX$v0U>+>4@e8_?aJ zR5325sNpWjSLN{5y8Z?dStB?*d5NJvWHgattM=%VjBHw4q5e!zvn#44;<)(@?aPLN z5I+mIre@Y*x+g`MJC%{3 zN9lXUAlNR8g|-W%zY~Y_pW4H9c5#7+`pCc9*NXzkEq>I$&j?Y?j1HYR3rx3(PeiGcsyf$()n-~0sb`ip?*A$oqPRJ z@Wf}^C8V!>9yjyq$j3UIj7Z~b-d`8f_Zl67hclJ?8rMRiGEl{VOMBBwb(zWpv{~g4 z?`sEQ_YPrbuV$*-01M2<-9T>boHZm^3q>3VB91*|?Jh*I!KR!T(OmWvvEHxWok71| zwmV&RK?Ymf4a@s){_inSZ+?96!GGkPXa4!;#-%bRxm_c3=sU~3~? zV7-a%i}GOi#>v~m_LhhkL_LzvTIS?4?w@^Bi-M~E=Pb=tg5__cNe0RsUOXBe^%1x& zCA4i;rhfl!zAUx_Q`~VB*|u$1ul*~(cvyQ_e;;J|i5df!d11|1ub?a7at+B2~jX{lI{~)Y!qQ02LCR?C+UTc)5zGu|2YL@mZsMV29 z9V+fR90-pxhL9uDB}WwsJCRBs1i7?*NrQT^|Llx%wvSlfGFPF%%F!ZkAGgj%o8&2G z>NqAnc$Nf`Snz60rP9B3bZS*A5yw+h%5&sjyOZrpY;{UVQ}0l*wvyXzF^lqnJW%0x_{Hz6gHsByh($y z)tQe7QwScBIJlkesG%>} zGRoZTvEst-o&V+ab=EVx)fpBeI=V=Muf9jQY)v0m!DCA^(84U4J>|G%q}?Vn6ArwC zm@ z3;qWjlAx}Q9=5n<`VgPLhxz8aHY_B+R}{Ow`n)^{i3%B?6s=7(*>s;=4IcqY&UN9G zx6jTK>ro7po74XO;woU3>iX=R9!?6Xz>tEj#S0so8hUSJmloBz)Nz+i_r>d11zH^r z`ko~wvwYoc?y>05hm{JgOVQ3I)LG>k6{sM~V1&Zs7!tfE6VStb-h zNy@vuA?5)J8Xey{AEay4J#2|NJ}9!F9qw4MWuJJ?PHc_98L+{92sv3xIH*B$HB5yGUf2JdwfRd000F| z4Onm$b0v^E&*pvKe!fka%JR0iamaGir2>Tcr24&l>qG+N#zMy~Mz|3RJd>}HJ@tEV zE-hYiZlO?-QrOaH5~;Gva6*H^cv1d#!76CncThHv6+ji&6F1RMMJ-#6Ji@&LBzM=+ zM%RP!@8(m29jjUll=WmW@;C4@Uv~6ona%JgpG}xCe=0^gmnwpi18rIUq7#C`$ro4= z=v3fE_mc0C3!O_7>Hc^_9o+Ml04uq_;l%Ouyrc=FteyOA*f*f08*Z88m`>^ogeIfU z890H5lysPpH{3+~1BRMPb6F!4Y)`-z$opj;m&-QSi-V`zR@xJr(NJ81P)#^ieAA(Z zWy|wVlrIO+5?em&Lm8uO0jp*79SL#F2~^+kpT+AsBv) zA*JL=1T7$>CpiL|nOTDz?q|YDNm9I`g|K`K!>-d5ncVa*(}dTi*MZ^T(a)G`L9Y%#}6XYmoz(*ca63x z)kLezQ9Ulh67c-{)NVmLwi6AVs{)=I4h@8r`=*6Y*oRwdf)3ivsg|lg4GZsI;fnwF z)W9$B`DE%g|BOKgMSH*MkIFsf19xC^k|{nTfm7(!`NS2rH$h3TmIw*;RkhFKJ)|eSK6n1(k*L& ztoYrQquP}oKMnLyyjWB7Dsi??CVC^B5Xxv_l^`GwI$C%DdYK)S!RsBBt^Q-WaAQzTA2jKl3dr`;51^PK4rNM<8Q3Z@8$RAo2^0`i6mT#zG z9Frejj#o^u;@W%Gh~fxmLs1v+7Ys<^jM=9$6@8(2S^^B}nMqe`-kn>CRIU`lWXC&| zWR6;t=fn*`f8Nuyn9UG^W24%UtG^i_`hO;wW*ndJ>VaI1aeu$t*8P5G^H%Qfe=eRW z7dgJ|x|i>zwYLtgvsNKZTZDBjylVH)LIrin)$SvJKYEj zJvknlKD19n*8fxnhBRk!XYk@+D)%~$8 z_q!RpZ!gQue$A8>DrJy9EczcWt2^RU+NC&UST5_p4M<0**70OM%&Ayj7ifXe1Yz~Y zNU=$$k6t^o>Czs844PxPg=Hn)2oT!db{7vK<#;Q?edysn^s98pWmF1`H6eI2La zjSk01VZmw*UQBEY=c0K0n7T9p{L0U5j77#K&24;5b@6`htCP#(0#k*ouxu zmV!P4jE1<+vbl*&*h;PLl=!4n=HcdOo>C*o##}N{g^SW$*}{#yLC?Rp_3Ve&ys0cXUi*nR4@YI+6x4|0lvYnQ)u(Tn&40j}y$G z8t4J47p~J{&gPsj&h_t^qcGP0*h#sI( zt7^Z|%~Fc2ZeQ8FRF}?Sce|uV7P@b0I&>5MKO{ZY<*h^E+v=3LX0zVL!O3Eg_L$G& z7Pv#3sB#$IcKCA>x3S%6ccCr!q97X0))aWaHs--Y@G0VUF6U+5-}B<@#5h!SayrA| zl%CICTrofn9@AvMZSKkopnkw!WeYuygf-3?h#Oq?qx+uchGfH-Kw^)zD&?z~`%hb0 z$q)cYU8bP7h4DG(FI>RD8$ncrD~hAwNg5l7-{zr*I<-l8y@vbdL#m+^U6^n2r-$vz zOf=8WkQ5tT?jT*}*I6yU)YTW^EV{k;v|k968H0V3IqhDKyNq~Vt&NL}+#VAYKKVb? z5%)68u8=E|g>6zxlB;nzs30hkUJYr76B8JOI|S?r9&eL^Uz93!;PK&089%G-?#yan zCH+Jp*ii%-$WjYn9|-v$23)F;WnYrOa5RD&gN4-W1rB!;>dD zLKo?x8gmdbP9ehWa$Wk*_$?{z`l$>;>V!F2#16*Dv{_Gw5TzK7U?@2NPl%xGds`xV z7zl>Az+v!B$NSaZA!k1FbBb}%ESpU>I&#zV@!RXe2Cu!0eh$LMX1Ql~$m3iy@TU@= z54#HXy_zoRK3CaXU%Jq!l2wBAD>xVKA^&s&U1I+&_K}r+CF|>kBAR~7E$>{e)f{H? zY`!#q`?$0^JomkPudWAcHgvvNY=Kj`Ejc#?(H399XOqLjp2OyX_oLUw!;qSOrAmCh zFMH1tB=3vL;D>%Y@5e&Bw>5MU04W8&Hw{gW0oc4+aBtb09Z%ce<@I=czgUlyqd|tN zrz|e1%PC@SH_n+)354bp%91gUTBLb6_8W;t`qMf@Z~)^^Oxg4w4T}v8jh*<(9wi0( zU|I>xOy5@M#NibT#`ex@d(Mo%^Gjar8DYf)Ne8V?==vR33sHrb_e!1V)mX}~vNRzh zh+|e5aZ^}Pn$Ki(ct(xkMi#vOQu%**bNs?al4Lb&OQHPr1XD)*Dx?M(;)c#Npb_~r zZCn%5+D&1p`^6&eo?x1g!xXqlk>gYtgD(bF$!4>6_@ltAf|Qd{UXMTJqd&E!DGtX{>ZmW?tN=6M{5 zg9A+pWnI^qW5qu#S*`&M-RwN()?8<(Kfc_X@1*&S*<|IorP+|`hlB+rv(eeMVA^}s zt5~J3Kf23lA{KuthjyU~AcC-^LS;jq3?UrmG)AzhpU4o8ChR;#&Y@{M)OKsuZv!pa zU&;q{$5?>PZ5l5pG!|Y3U#kcPTHhnLJgcH(F5Wie|6||*>{^6{5I%q-nPYKF49z z-j6$j!%OPiK&nl=u(qeMX7bzHcA$JV@9nmzO>KO6gJnc{#3|6#x0Ec;*sKOT0@?gd z$AFW~oRrjWM4e7a#gKO65s^l2&rUbI`XU!FhG}v$0-=giDEpQXrT95dHj-T%@{e$h z-`vFMKe)89ubBM`g-T5bFIBMu_b1P{F*BhniJfWw(i1zX+4=%9Ppn8&#vgKELP7LNoG0=J&ujHcE;sEprqN2Z3%9)vup3vJ#1ck?S24l%{74Qn^qsqDo(s} zyi+E-|0`ty>1o;f+`sRs3XNyxoaZAOL+dAeuicyS)wbp5=2WX)+F6Q#rX~F+<-S|0hTjm}lZGDEZv z_bM~B05zP?Tp(1n&!vmB3+gy( zlh%4I_7DH&2+Xw_VXrC%kPhNkRoS6;%;IKOc#u60o?8nx$AQJHxx(&|ff0i3m;*F$ z6o2hl`OzqkuEpN`<{*G2ko#%t0t{Rugk6y)RNIEjH1-l4*LI|dVZ}AbWm|j5?&r3| zd6Cf?5H;yko8fVOpRSR}Zv){s^m68;3XUI~K2Yl!Eu5X#5W>H_DY;PUaUU+bg33_T@C= zA3R^wXgR*t4VYlK7ExO9ipvu|d*xTyClQAK0RCZ+Dh{$Ty+Drr(_z_r&Jq`8IY`zB!t0E?aP;0971ScRJaX-z@aM+?b$B zkvI7AA#8fe{718c>j&LjrQIc)=i`a_();7aNhH9Z#nt+2+qODwb@jtv;I0e$6*DS4 ztMk&T)$J#oniF^24eXEUx7+_ygkTA+)3jmYN(NqkZZ&xpmWnLlK=_;v=j-dF!N$U& z+2e@_b2)u2%c?}DB*&)pGDhnPMKOZ|=153NhfcjR?y;Z3R=nzFa?77^V{X>6w)GXT z@lfYS2?sp3nL;a4CnYFm7ub8%IXuM5&Y+`*{F1CowMv+q)#NL31ierC(&o^!b+!hS z=4!Dposp=?*;-F_--{4aN)4`FIjLKv<$ASr*$yR%3C^n+z+mATFdoqq@bJTGAhfNj z5R;lININJt-@s`PQAKi1XVM^x zj)3KTt);6-CNKFW7*-hzSHNh1j@exYRPo%NRX8}}2d0{tnGFqHwgVys|AQX5aQT+w zSNT%A=A}au-|BzTjgOeTc{8=qsE#IeH8Wy29RKKg2o1s>xlqqYyvZRw^4L$;yK>Hay?sd9? zn?dJjMW)&lD229JdXoqhT}gzH^#XU<9d!{lU}1cnbJrieUx*d9$@p|(lDxfyMZeHl zVb*YF#jaR}WTmc+nh>TS@}3|B&&N)D_Rys#s34NKjXLreX| zfSNDCB<&KWof3!C&%QmJR;k1!+!J`?aJ%bwC}t^8SQw-s12s#BF55h3#O2?%9mP`7 zzlna{<>4$IGcq1bLKzyR>mMj^u>Ae@boHN8-y0Adf+O2H=jbopUa?LOe_tlQPqi<6 zdHqrhZf!DbZ=2q!%J{48Vyxa$_^|f7|36SWkllf{S#@(?7#11kdT(A5T&=v66SQjL z?wdT^*nHCN+?-P7A z?nn1NzZ<>v+bTSmHS%^SZLMo-L7UalUxQh$Vz$xgcv_H2$>wQvur+qMy(>jNWylD& zCSwLk@uIy|?2T(=P zL>`%5Nl}1aqv3`)rs*97N(6oB`T* z9MnIJA21eh>xt;6rg5`2@8-b%A`}?3TY6E!5RSeRw1f`q((n9i>dPdup|u#uLvS+^ z9Z>ly@G_PUZ11%B{YExRqBne575Fm(K5+i$Hl2)iel6Mv`ZF^|lMZUXq=uMV_SkvS zPj#@bbZXL-85O<+5lanXw7Mq`rkRg=ZtCb(uo#Y|F7bT*`i)&s=&MaO8-8&y8=CmY zHZ4rRZ_w3O?W=@xcZa(n@3R1v{KN4hQ=lvtpNN3h@hrQ&tL`z{+osXH(8aS@b@TFp zZgJ{-kWB0TvI?K!~C@af5E~NGq0iF*6y68u#bX^XpzV%gK4Uo z2)TMxw)G_-7&(ly1#vosl=LU>g1d<2FXI|c&4dq=c_L*>yKIVs1%x~oF$s=vG_%pP zuOg6F#6;d6mt)-|M4LqD+^2FUzG4}(lTN%=`jeHCD#O#TaULZlT}rWK zjzdsp-N>5OLutXZ73J4zu>N>Ez1DWZ@4`GxUpU`+{uRfcA;Y#lECAFJt+v|<74 zJ$h9PKei8toC~Et%7kSwJwqB^bP_jtAWIHte@>Gz*w=#!A0gh{g?`MG_6{#UXmRno zRhMiK1`mh6Rdi-;noSC6A}o|uUfC#px#0i@#n&%Isv=eCCa%M}EAI3^UpeFBP}j(_?pei`R`IlOPN39y$g+3FMKU1c!NfYy-h`O{6%OyRBA+sUN!*%B2GWs8|%HDo!v=T1%IKB1h%aMD=c@i2q$+x zu&(qNmI^Z=#G%1(ON&Gl)G5;ZtpF3wzVF4nG}c&ViVMq&9j5$GSN{`J))3?823fNe z`$SDoM7!H@BEHYj;%_K>m{^n};mNEL?s5!tOM%j{p}}>34Wb#Cu$Ye=Iyw2yQHec@Tm^*Gxkii;BE+5RS zV1AF}%!c>3nVckn?rd|^!|Q6AZ1TaKDQ4y_Zh)Iv~rEw>6eSGm){q!j;=Nj z-99?HJZFftFSvw*e*3|W=(2pJ8RKl;F5Qi>MTq1Dx|`drjD) z)6OC{)VkO3V-fMrVWs} zm#;#Vs@~P?ySUSp06UB zqQRfugMY*5ulgq#VwZA~2Xb&46?G>U!4wouRja0gETvRBjS-usq!M?@xgSu(E}OY) zGRZD_>bEue%aeVzFQiO$@WlX>{&(AQojL|;p=m=99sNJ{ePzb)o^nlZkoV4{y~G6HKvEr)Wz_((x!{4DUzAa58KJ{+2IMo zsk|_nt;)>(FfVoa+XC>5+5Oekk`qhk9nhwI`SDP>kik6{mwNRVsS<{?F$(GFdh%Q- z4)?l}WjOylU3G3WM~%xA^~Xw;+wlAKfjc}xWHNSro`RMc{W=9UPcUxgxQq!(6y!PW za}Bdqj~*v6dhzx?J!|^HUg3apDM~2am+%2iE#vRGUYgkXMxZ~jhj__IsO=u7i|_gQ zo{dUBsrzezmz>V6!Ga;NMT!++ZEV{p1JbTt?znZe5pC6YUBqqP3cchYF3;GtNpDD3 z?uQLK#^_*zQ4@s00AVc@21EJ4EIWZ|r_Sup)}CRg-f4PODDpewl|o{i^T7((WDzYB z>>xxHOcU6H_%C$B404}r1;jiupvj`+@|D?na%6eka=o25F7@@IUfz0SlT`TwfQlB@ zae+LduA-w=9>5^n7HviwoDnhgImdG-@%-FanAebsSsy~h|dNRmESl?Eb9vM*2QRf6M1(GvEv z>Llb2%-5qua;dlX}ljuIHZ|6sr-&x4V0gchLA{j zK|*AWSH!ZjK!KWq{Sii}DkeKqM1dRv6DqMNvfR1olV z=<4f!=&;L}Db%@}Wzq`->BdP4X6KFQv;*ftbEnI))%^@v4ORJS zTJzIz{12&xTANrg#rboZQpm%MT zA8@@B)b6tXs}H_wng_?5cs|L6#!$h2=LyG%CrCiiGoj`j^YDrfIpbx2$%Yr87~<#u z0D!x^5yhr3g^3);O`#Qe-l|8f`%K=s^OokRPfy196Jjow%LzQtIL16NLmvhwDoel4 zhed_cAS5HY-A{S8u)XBc5teP-o#IOAFBP6m33xZqKTB_)cTMb&m;~Naef;y~k|8W^ z$k~l&`IlN38yASoAA;_BGM3nwv|(6uXMweq9mnuhImCYWasTOQw@tKZ@qWWB9h|)y!qqE zUmYOR4Tftjw7jZ_NnYrCV^M5ULS-+JEJieO!c&IEL{*SJ5`Vi8BPPO--Stt?4*6<> z-+)tlKjf6D!{h4uVO#(49V37^5ky&x`iYJ7DuuC)T{SezMTk9@W9(jJnYV87^6Hl}E{LN>)ctvQH%r2p=?CT!orTI>%wzMyE_4-G#3 zseB^zOdh?ZZxb}w5#AS3X~j9}bL{ROh!Vc!)w!5;GGC3rd*bQ=bZx*nC4K_O4pD0R zqvO@i$GiNS8|a>ZFY&Oor7*`Bf6Q`5wvKr#Xaxl}%hKpsvsB?_S3;f{EGPHc(u|Eh zs}%gJ-3lCKA&^Bh?ZZ{A!^f}j7O|S0s@6*BU4PW=5Ze*Dv33Pp zs?IDu)nLwxNN(m2b3+Slyg8SG1;P?x%T%N`18Uh1`JZ2=W&Tu=`)72iLYTCIV6;-a zIwf}=f!qSQE!n%*C>}`+ScL@hg1RdeuTul{$2-(9nXK|`qKBW4aD`a-wCln zb)$;ZL`)X}$J&l}9?nnifIQDM@!3Ht1ETJdfAI}SjMSmo0&XWFE2hLoovQyn1vVCQ zCR{;YLL+#ttyH_sj*h-=KYSk!qZlE*k8R=zd(*p-(*YX)#8}yGmoEB}uCS|K%K2(O zgT|jFd!^NzsB13E*+?Hl%Kh4!;_*&T?Wse>v(t7gnj1S@xTux8fsbgDrEfma|TBH!-UqfZsl!UyUv1*0@c)a+gTonXP3} zC>~?SkOkNNZ_zhY3bWNLVs~O%KUu*cuC1~eFPW@nUFqG;)iv3$g3-G`vzlcKG}m3w z6|ja?R5f}z@)~*%0}zeFhKMgWsy8=QlZVj;MQ$qjWyWj|u^W2X6X*5^E8*I`7wSH= zVkoiOd^=!tMgT8f_&c?uN=w5GK1OH7VUxZ=1B_%XKi7%C#I2UXbUqDMvvV!7I63_r z(Vl%oar_f}L0q($(VB#U4@^xg z1INF#bcH=~$4q8TG=UL2a8b*SUWs@m+i7T&eYD^HJLUxoy#K{oo42vz>GpJc^T6h_ zVXSs!J@;*3shQ>xlO0hPd=a=m&-r~-3YM+`e*+Z`|=5& zui?zfV~40Hky9I#dtqgze2_GIe^M{=%-igsA=^Yg;PKSlk_YVgv3(eAo+jJogm zx-@LH*w}6OJ#lwNm-rgX9=>%}qh}NUUZegH^`5$I@F$l)@{P8CQiBu=D1WaQc-gf= zJL=~@@0VugA^_8r6m7fetRIluh+;RSgANy&QdhdSI=)7K8lckl($kT*$ECtXUCJ@~ zNxcjCJnZ{7$u8U5{=zK*%29gF$rM7(m#I@D+#Fio_8}MSDPb;LMEK!UP1a@0TpwSj zzj-GL1V_Ij?54Vt0b|ZFC?S#&$Mz7&b?H245(;H)}&iJu{mB%&8P4BSckERL+6=B z97#UGt-s&qeGJhwECT~|FWw}G9$~jXUyG7*K80=HxWiT%L74VHyqFQ6F|0}v+GhAN?7MejDVWOW` z;>UtEb|rQk$A#rOTnbdARYu4vHeBDFQXT~$z&$QdZlu&0a}~w73Z(L5+!JC@sp-$k z_=1f_JBd`KvQxV#xiR+>jpTvx0~VF?Y^9-xyE#~D4Qz5Ca4)(P`R3Jwo#CE>0{%H| z-FP~V+^zB)3%P)0CI`h9#wdWum^Fkh6SMIpI?~SV%W^h5-6XJN622P`rQ+9jNgk#) z4&sC_c)ngDzpWtRWJC$9pnWwG)MxJfvWodukevR=k~!-AQ1TCQ2j2=c7%vz;pP#X^!#k{A1HiwU^&hC)YD<@H}tjGH4nuNejG zNir3?w)5|*6YQM5Rtf#PEJ%8c*%Niz1x%1~RVR*?@2Gkc?-<~7vl_J0antm;BHATI z`+j`+`QWt4DWH*m0oA~>;%N$lNk5(ck^nyfT%XEO5zMB-G+g~;FUQ%$WYlEH8Ajhm zv6&lp?%B5bGfoM}=|!H~k-M~%eNXFBnyfRWR7s00$1lxXRU-1rCFKZ`Re}|r0w-HD z`cy4wezKswI#{`YQDWoiN)?8d33nzIadM)vcc2bVVh_i9gP5fJjT0#X9grp0q1@eP zl{BlWDb#Y?6|ID~#1C0y;+LAyndz^kHJ3<<`HOlO12~Ksd9qX*#6iQjV~|ObVZjY9 z5!w*TG|#nFU_jvgERVi>KZKNoS>g{!EQBbL7^ zedzZRyLp)3eQr>|@fDo&8D>8Lhjv)!Wa7-6i>8sDuMJV<5_yumStvg+7N{a|&i=970Wf}XtDP#zuj#gE z5GPYc^z9ly(kgpSY@AL73f{O6mGF+9Rl2ebfD^ZIqmo5uN3J|;R1|Zxdny{RpQeGx z8>(SBB@}5^E0u^*Dh&-P6yNj;qdQVnu=NB7+GeIm9OwHA6L;NS4v(h-igAHeTy=d+ znt9a?`UFf!y{I0bOG3T@>9mAPFpw`b^aToTO%11MTL?eebHrmHtpg7^doh?uzUIxE z4LACB{h>?TknQfbxl6l~wniYy>w7PwMXjv7KomKJ#r5&M(AGlXgHJ&7?#YW; zyVJ+(nix{f4rjuV+H9xIP4Q7e!GQ78yW)3GgBIPJrvFm_I%{41^?WZO_m3NFe#6xo z%Q=!OodSnH?!-rFET5EGrv~D75NKg#7#o`tB~a3Pcjc>eczYrM| z%ACs|jo~Kgc%Ak565t*F+3S99Z;j)&p%6sA{kLYx6xR0awU*|PiZnvItlF`}BpA+? z{(V|39ISgFfcYp8Bc{WyHRp^GaLruoC3K=DSk|`JuJJ|K2#03{_G~V)tclJ{3Lr$? zLG;ro)kV{-?dD9rvz6`?TQ<1GX+qQ)IG07$BUrRen%u0!MJQuSvz~2>6`JpB!>cmP zfSjl~3LVU|P5i?wa7q%_a2W>dPSls6IKq-q^D8%QDy=DLn3R2H%Acbbg(G`3u{fT^ z+e&D9^8o92WB@ND%mS6cipC9BN}A{`aF+s9)HXy@5*AHrxX?!CPn(39_8<_t*?TLM`_4;ksO zCuY3<0)yWD7y6|rczxZ>UpXbWUI1FfZR|Ykdo}^R#!f#yF~Rkw<0KsUZhBKr)z5;8 zNliPD#DMLtxqan37A9=bTl&}p*wxkjAJDQb!zk0bE0O-h?Q?8nK+WsqfvlJrGTJXEU6FP`JVOHB+QT-mpKt3qX@-$C9Dy7(sac$X9Y&Z8_#*Fu z;XCe5JQ)JVx?`1B29Ns|k?5pq?ixdqgSlzp$wN%9fJtKI#B1!@2S0s(0+X=KC6Y$z znMmt7s)*oKK>D#>dRnfJ?Mh(>Yc6JA6d_zipZvZ~sbsQjg{p;=$dMG<5#vhLkL8r8 z$e|O5W+A81=?KxiV_V!)4gzrVvFU?Qy&1yRy_r(u`wLKY-VI}K#f~99cMZA7z_5Ph z_^qCAYEbUGd}UFOaLR*G+0O+4@{cSc%EKQsZ9fW6b;e5z(5Qu_BGM&O?rhz$P$FPX z6#aa9diQ3F{-VWxBl3Orrm+}0M`qNmzjtS*e(e5GjG1A4*|09`ed##2Zyd(pn_R$q zW~mH&7|*4~Ev5q&Vk0^C2kG85Q>?K$z?N|0COC>n_g!7<&)bFBn^oWYX;xAbeIXa4 zAw@4N!TUjogU@war_)7_RsGt3$^8kfozqt*H!(nV>toRY1(%uru@390yW*_oeK?y} zu3URZAZRqGGjEiTjbQC27uN1^oRI$)q(`XjATTClR8eW)OZwu+4+f^!+IjwIDoYsl zbAI=1jPS3s0*e_(_VHd3x!g>*dwYPjN(Y^0z80piC;JP6ADWS&(+-ydVR0r9Sfv0} z!Zz3{Gg^atBpyiSE~QJ) z8{o0#{5ENPK#PYnRlCSGIR^ZC1`CPLBFvQv&J(`8Bhpf2o2p6HLa+m z&mUr_qvT{cOrDtO%&9mO2Oq-8XBYZ0h^25c8SjYi`p()7uUxZ>)5p9jcu%*{m~}p8 zwDwJF(lcDJv)A1M`*#MZx2tfxa7j9oA&+J5Fi(}B+02lCUlHb+hX9Ee*lb<%ZCZD2 zs*On2M+L(8mv8csr|bZLr)?dk*!_mX+)t!+ux_-^Aq34r8~DX^^+s&;78kM$1>RPs zrC$vya2D70H^2Qwsg8XGoW(VeALdjME*!ecoR$?ui^~M*RN4L^841G;L=d>9cUuWg zo#%%DQjWam{);x}i*ho-wjM|tP-N5z!PLQL;4QBqzWQabUYFy`e`a)`nBV!-l| zI)qR7=?=K>uc@+p=>uvTr(2De1nfwfs^u|BC66FpgvT8xB;3Y;UcY{}Rgrbpc4ThD|51&c`whujv{u#-f_sv9PhBlR0-Mzs&*|StfYA z#I;4%fR4hhLblJ^(vVYaKvXn4a>WWJV4uC5oZH%Ao4K8g^6JJgOv4F9nE`4JGA66T z;QNuDU8D4xk;=;ya}tsGHkz(ht?994S2+(cD#$eDcoQd9e(Z?|8z^b1GMXe~5s@oj zk5Nh>Vj^uzdvi)U+zNb{g=jG8d@Q0#C8UGED%h7xwmx^~1Y|2p0NSvp681S8Bcx|j zm1h@oya$$};oZ$fp8Bp;oAqKN%nBz^IMGSu1Lla)*lUlSF6ht;zFyly_&O`xK(9eB6 zp!~%Ar&wyzyV_f^*Z%Fs&1T2n<62nz*>DwS`|TLCmvq@6kcKb6o^(_MUTp!wgD;KR zK0jRg{{a8*-Ik>ES#9e-r=~t!Sm4VSN~BPs77uFQMiBS=J65T8$18`YLu@WkbIIJs z09{`3FOoKhECB%eyb@^_6Vq8j{5;H(@!}!dg0B}R-r^VFD`MQYYYh80Ig=l6N~Epb z@2}G%6>eI`Ogc34PxurL>BB<`GyABR0o+#kQS z`OQ4}ZhKN{nx57=Q%BlXD}TF{B{{$D?f#l*l}+e}feuBexH@{ceXZ&vPzk3mqzE&2 z=z0e^-ofCs2muhmF*kvv3ihICfPaeK>Ob#1D-50WYTgAJK}Hn zseLV0px)byvxu3{2(osPa7F|8$?^j?ICVH%PLPoYZ%0ds!-|K57o8`U6nE6|ac5)6 zsr~K%+I}$|D*}bXwt%n(_(XGy*Bq2wkbSpFvVs8yW^4Xo!S{RsncZT`{YSJ#p!J~- zKC6BM=hX412)(&=$|3N1z;GOD2Xb_j&xEaZJRxfO4eRv`aLJl~=JgePy2Y&)v2b(U z?-bQ7*oixcwystF%2$6sUscW?CfN{dnInlvuqW8 zLkIY?>XS8^Ew$&su|fKItxP{~XWeL;jfZ=a@g6C+`*-!UqiRY_h92gc;g`^p%&W|d zB;k*wHo(CJp;y@IftCI|Dy7pl?TN#P{;n{MNO}t_OzR+!=j_UpA}*diBP*wONe7X} z)|O+6TnF=!g7Zm|zbGYBzUcGE`HWl>75h;!&2lFpZoNjNDjBCsFj}60WZ+nKuSA5H z4KKW~oAz;?E-CO05ssLeLdu@edQ|5j8qIfv#{;JdYq*-HEN?{Y5 zzylt-F>8(6FF*F44w(m92h5C1ZtkoCpKX^La$rxzS^gvcrv#V?cS6O)PF+vE8{)D9 ztmirfpwF8{IokPmkPJ@i{dITNeS~a_iTn*g+#Loz+}_liWpD%Vj$U8fNr`{wHx12v z#T=ieTr-3Fwo=oYWVeX_VJ(jIVlXxP+=_O7Y&I9j7ZKTWj=!S~y%cnj z^&xR)3XNmIx5P?UdcmS$+v2V1NBKeD@lelj1vds%5CpA^sQ&O4KP-qh3GMIuNQ>bi zO1EEu+~pkmqfb?OxNV;Vvpq+&W9|8p)GTau8%=BrdMt!MvGQ(FsTrT8o2^QUK}06+ zH|<5LVz732PE>uzBz&EXO5yPp^Q5tVQB&7h-gKuF2E#mP2E80yzIeDWH-pIy3}dSA zo8R|WCPY%Ctdj_3G1EY_AtsJ%WgHud6_=MKbR#o;k@KifznhhLPE!%D6AOff&%S#~ zgm}`SUQa%P;%!scM;D{_rruk%Gw=ns^;e8PX7=lxWjgaiv@mUtsT3PF6F0L|p0e-)W&}G7UL(M*R`AVO?y-hPo{E&N zB5TrXuq8!wyma^XpFj^y$@!8yZ(fsHAy|brs$r|4KQU_2sG?<@B zfZV=-hPL>1?twN<#_*$oQb=pa@eqnoOLrhp;^Q)&G-RwaQhfpnYqT>{o<`*JZiQ-Aa=Dt8bPb_}Y>ZMvSG69%ea+3BrGMeP^=zqEe)c0FQsh_y?3HkE~L_TBEvscu4^ z+7QD~Edjj(dcq zC(6}FbZWM+s)Aqg6{}2wDhuj93yB`tm3MqpPY!ybh7^9APqL%%b9EuAsNEDYe|h}) zNZv#&Ss?3dH#DUiqd<|k*j`Xfku?OQ8|#d|6lx;yJ$RPEJEj@D}xX5tqH!06{<)J zcc%_O$e9rqLUxL~r|@!o z-e2v2QXK`vGcxU972InCf%z9|K$ThgzvX5VwS_sqK8E1K0#2_+(kGw~7d`X$w@VUs z2^r9Y=G5?%#QAdBUo?7dT_-V&9g5~wmyD? zd?|hQB;JvpKI_uQ6rgVXbvc&99_#{&3rG!LaAa!l5YrNUn?~tJO#+(^ZK~@RjD2F5 zi|C!m`OG%yJTI-0-4|?RHojW5a386bZXT-^>239D3lSQ;+hq366jGg<`UDkUe&gii zM2XY(uFI*%@x-3W(dj6CHaW3GQvpdoyhPeFnI)_@#LC9m{ct3#rwwV{vqNi+O&6qx zFdVr%>KG8=+3O%p;q8W6hlHrCwcEZJHNa)U$O~&88p;e!N9V}Z5w0*seN^?UL4K2% zhQqOyIrdw6jdDbX822krea0|=t&IrqX@wFgM@L#w;dO=?4|$q!WDs*(>R>cw2#rs4 z?D)1hv+l0oug~(;p~+fJ->_~&zcGtmhQ%7D=0ralhh9W+KcRElC0A-@R#HY3(5a7^ z%s2|NXzyfff4Kb znUp?VH3h@AB?Sb7ayK{icy3l@zUUevNJNz{$k6r^_&s&;(ksfyJKzzYCh+#}_PpuC zKSDzy^JO?ZY27@gH2i}s7SA2fl()i{o5{vnty?|5ApdQo6Z^NeBp zbNwbz-rnY}t+Q51a-7hs;Lj2ELXJZn@-*!Wm5p{*jY~%~l>W#U;OJ5<_+SO=7SU*l zj2sy2X=On|L7|=(%d#yz@aZ-?Y+9$D>(AFzR&5+a8>i8@@#HSD+8wv| z_5fdfzud+Mak3f0`xK`)CauBGR>)W3+89Tfv9k5DQdR@}t%-wcWht)~hmx+k^fJl9 zzrV>NN~h!S%p)S!9)@RxZk9Rlc)95A=oc27a97ff<~eB$y53okP~z4wO?kcVzYu^| zqd8AAky{qU603#}y)syTkHk;nX$^O_hMS2j91Hli8d)&d|0o0^=;$O9AdBZBmWntp;vFX|EjW+K^?`y$}Q5fsx6(rsCDdG8Cl0>o% zi?WDL0by!pljf){V3bZ3MpoZ>PlhoevLmOSHt0$u`d~P%6s(1`(=3X-hs@}Z^2>Ew z>{i1a>yVE{g{!(G{fMyJtZbEE2T(w#Ae?AiwEV`Se{oUgCnLyV7mW=ozqpJgql;r?nas&EU8|d1~);q&2%{1=TqY zUhActh=yA+k7+U9zI-J8 z-|z18aBtHDBY&3gkWCjKC3jyX&5aTG@2%escgo49%7mniF7jKg@C4~)1qIGA!4>jh z(;cH(;rD*Kupo0qsT8&?2(hR_J|gy+%=e^ zaRRZmb3v#Nu5{yiu~^K#6O7EHnGgNK4jKz+udzk*&{mh@s{P&G9 z_bqP3{MG{K z&N zWXat{6Bi8*nbE}1XP^*`N}CJdW$^5PqW{wv-zvA9vW1ZhNgZq363m=v2>tYm3ZK- zSpy+Tt<1!?G7MGDp$-d0C(XtVML@APG82Rixz>T5|$AA3s@v8Sv5$!H9) z4tT{y=9>x$Kj)P{3*U^l+69i>`Q=dH?k4P6;d>NC-LE2|9EK@DzIWEphd$2Lp!?ix zgfEPbU$IdeFbuCy$GJ_3?g#i*nEa?nM)_G-SnrDt1&wJYy+$X|tc+HgEf3y5*!C@( zBXf_CGPtNI$yi8M8A{a##VK)F)&Rd;Wj!Jky9zInvB0LO9`-RFVY&Hg@-qUxwlV2{ zJU4%ZUj7;`nSO(9974$$7PoS2xI}TUiZ8l^iP_dP@W@QG#;aYeFzkjTzf`WdZ$k1T z##FkZw0cQoyQsf}PN#kBTY(%&3r^nlv@qigKbatU%SXiqBBa~q-7_Z!YT75_=@xgs zS67%ab`nSxS|7jZxD-(R3m_m7scXWReUjFdP@HnmOsbwXy$C zLEi|E;q34}sh>Z+y{XGSy=FAYg=pot_wK$OxVrnn=c7$+3qDg`mSro3q|_4~K1 z6K&U1ZPl-A-R|(%)n*1gdFR7Vb3NuCK=2!BLGp2$sWFK|`PVlcJ{v<#w49xn(}<-{ zlF#?hr;8#lN&QY=@eS;)p*9`}F4!Hk1VOy5);Eeb3Zc}v6=f-K`z z1(akvrQ{xte*0ay>JT&i{4Kz`rs6LZ*@r1HZAsv+2tf*_UjeJM+0L;47T8{f0MtR!#9Q38cNB}^E0`L>jcGbPN`AaPoGn; z%NJ3*@;`*VAu@d+A|v$h*?TV3jT297CQF9`AK{3i3Kl5wB6&|BK3AjjJyiWs zH-Fn7G@aCYrH1Ibc59)x8!zpf;ZTiyZ;$aIgkeK$t62h;#*i@lLFNC{1rEq{Zlqp* z>&Pf9ARgw|+F?I8o06A5YX!=KoQUU&B}fE)6Y;)yeASNi{4nu++5h}7i+JLXOikWK zt_p4IW85O8e^r(sE6tdcp~J02Pt>i(BA9h?#qdN12GcXN{zk{1QsDrNeL5B&i)(zjNuZ9|5s@06ccOrI=s%u^OQsw!1g2$@Pl86R24ln%pWvWs?gchjG8ABXZH1k z)}Grjkf=ozndc3VO)MaD1=z5IS4JI=K%X}GJm;X)9c5VfX^*Lw&&>x zM_t3;x2R$J#2dxPrNvfq5BDfvn@U@JDHjGW*%C1r5ixu5<#W{e4r|MiJ{%%48n>w7 zvJ4bz=%6{>AFy6Uj?Af-Df|ti^vP?EvF1d~sGfaH>Dt(m`(akdCCu+g&V)yh;eb?| zDseK6+3%mca9)J}jCzsh6s@*Ph01*w$oL|#-X;*tJ$bT=+u7m{xeG@hA z5m4ogJDCiy9-_}Kc@nTJlH*Sh!1r`IwWrzmF8Z$7Di{P3HC&6_+&g=~+j;$7>;%#z(|KQ+dQq6wNpygYxktv*uIhuxsRWzTmA z{%`;EnZV%2@^x%1mKax!N#&9*vCzx+?uCv6)%t23+PpC!2i@-CN~t~z<^^q@BAzu@ zLea2L;CYebj3e^Qu>M~YUHQnVE43@O>%%sE3^V9RJKRhc_FPQ&OB3I5FGw4s@dZOAaAR&`#j)XA{= zy9D0e7X2<1UTDPQQ`aySw-p}=e#AU!x}FnTKZ-O*?o37sByk(A9nI8T23A$)sLR{>p1WJGJF4MtC$fkErAW?->Yw6;pOXw8WtR@C$7_f-?4Y8EdLQ;O zZ*p1UD#<@c!!8iR*mx|<@zBnBUW}UmINOTB1NV#2oCMViuhbawt7wyL8jczGO;Y2D z7FAjzb}&f>-kwjG`W^R`1+=v;kmhv;i5>r+L(wz}#kW5AuksI56W%Y~v4UmJ1|pPT zhviG&AQN~kHRr@upr`eh%_v6ebl%P{!7#zVt18y~hgY$i?{P8a_2pjEwurA_iU3>D zbx|BVvO79f5YGO{+2op-KCnr@#(SbMi^6(;F`cbU7Z9P4Asft<`1eaRg!Pw5p2ZFY z0uS|ZA-=U|%943mg!Wbs=?tZ*99T>HT@`W z2eu9jjTDo7vU+|UMB{mmLtJHK1Wa{Rs%=+Da>0Ib z8TvgW@VNYIIq7Nov7x_x)^07{gz!Rw(~p#l$cyyg({$Vg0!X-WEQ=cY+?+pvRm#)+8@-);l*Htd1yT7}8*Kj5POSS|HN^(mYSMm@BhO%M& zEXPV_VUpKq8bbhm4+^9q$42cQpRxk>2(zbF0eX{h7d#?S@sH>x>vEH1Rr5t!v)>V? zmrV7q7ULt25RrPdGvWGATBlgAla=Rt)2C}_=fmIUl?9QbpZ9S}sDdbalU8nEzx(ld z(IpF%QXWM!eL00^RZr%$bZOfmbu_-#j(TXDheZV_amX&&fKyPqm)23;TI1_a;w3P@ zbaw%*sWV+T65|Y;8(8zB^>or3CVmQlP(^mVgw9Cmpb>DUn2z9$a;~Dfw-Xxy+JWZX z_t4-lA6aYcA-*}uVf*Tlc_$>lq7YiVfo-8Mg`OD8l&3|hyGDIYo6BGg>WkWx`Btl0 zZYG4Ggg>_MFt9pIhfiVUC7uxrmm4HwySmUsmz|!|b$l<$#$pA3FG8Z!JhZfm!IGt? zcEOv6IEvxjlue>*Frs}S>aWeC zyRscans0j-aCvZ}ke8+lTc;%bZ%fdd5|m0xjoig}qQK#m3A~>wvR*zihfho#_&n)z z%zCy|wVLAI93wbAch`fa!)*kw(|1@KbTKs$?*7AE6RDz)P)#H0UDce!CB}+k(?U_R zak!B~@niW~ycZ#JWx}tE{YFxSBzN)W5|VzI@2hgHK}}%; z9c?LjVhG(f^DfuyVHACC^#~E;h*k{^&-Vk%GAzv|;S8Lz%_j`)%4B>=E{Sv+GaR`i-`e0{Nq6ot8DdIX@u#FEVuz^^K3V6#=qyVxbycPQ%HOH3b7V0+Wp0QBx3q6T;_#xprCVzo_aep% zw|zF=Q<9O^A*{C*zfkqBQ{+TJzhz5ID)0@$Kr5wazhAk6RE4?#3TzZ=F)jXYQvhFG zBtlyZ<%)FZStUtmPJ@2|^h+p#D8`fR@O**i@hRItKf!=jr_(6LvXq&2W6pM@+koTglBQK}x9xtF z+?Gm_9P9&kmaPri9=dl%l(&sqhw4$Q2BhBiacLra^7M(nlJuEmpC(3FyN05zJPc8*+gXxvMY2DB-al(8OdF*Ak-pIG zea4pBs~@~DxhO)QGYa>p`pLaOb;XFW;O5pKB;R7baOAV^|C0dQ{5{yl`iw}ZUiM3e zL(FVIKRu;B@?Ouapuxw|n4|s8Zu%Z>F-}{jMSfQmMr?k>=}%D;qQ?Z(7(wq&pZ|_9 zcIG)=hu`Um3s?AKAGZ8|XAhciXF`s9kPC#hW&gRjZE4@L3)m{Yl>2)rSNzV=a=h*4 zAF_6S-o)>4-YM{+E#YybN=88KD0A}+VufNb6sJoZQ&RY;zFkKs*uyLbF=m2EP#Xh6 zJj0NZUrpvZwQib|3g7C&N$k~Wvslu;YBb`Gs&LVc#quaIs3x!NE`wA!kGd4`6UBi) zqyV_&kSVZyj07Fl+&W<7)Ktr&B7X_R0BII+u9=}Rhbim*D{aqrv-!`@h#VjFRoR+o zMqC4#4Dq-hY3@%1e__*9Eiv05aT$?CwgBC zTQ#t|^0=W)Xmps(Ht=EF;hE$9_`z<{;rTc-;b_v*+S%|h`7C^NL&{9-=Ew8LcdaL9 zxbDwtbFdBz`PX_Zeg3ql-j5v?UPvA zb)aO>(=w-t-{U6!s%dB7yM|U!tZa+2s#S!ZiYBtsm8LNnwWm`yd(5J`EGE)e0Y zM;elSzhP=(+!2V1GpL-SV}l*Kqd(0kkvl@KWoBJqEpk5s$uM^9E<^sAfzXRzx26|pCmgTb>x2+o*MBP4Wm}}CIV2&}N z_=0)&V(Tlz-AVZV(jsN11F9p4K-^@}Qi2j`=!K!y@biYxwq=-~QVZT-{F?MGAc|K3 zX2pmRp+1B<%m=7&@#ZOdOaj8~JD=^!m3)5a6Pzzs z9Yw8O?fn+re6sjMu~Zt@_H;I-P-_}^98PMQ0~e6E{(*q=R#!Wnk=Cr%WRE_F*J4{0 zBAlb~X93#(ee}25(txlnM^7?AznOFD<%Z1JXGMOoeWRV5O_TP=sg%?2IS50?MPCfm zZ+FF;2?YzaN|S*}kz1$7#T#Q4MXm$|pXI1AViO^q^A}hQHmcSx(0B~2Ske6c{81!) zMw6M&yw#urYvXl=y9OQ=A~r?$o!fh|PP(l_7smXxSE`~7;?vB%SWm=Ds%EV}{%NU> z+kJ>>y`OF}+md~CLF~`!AJ~G(@`?n)7u;ya&SLhy0%R*S>j=T*`YI8p)WdS{CN~zU zOyiEC3>eth|41~6C5BUbzuBFbx+@(+2b8He;FzUSwGK&Kn(2s}`q>+GF7-`$`qi*J z`V-<(@1&3=`c*A{x7pSwY$B4ATek>dx$Z|evTnJ_;#@1-lhO+W=DHI-c8+R<7&Z~Y z70Hr*&eOO$0Uwb4aND=Uk;1Zt)@n0qu+?e1KkhI;5K$sn4+YZ|bzDKEEFE&v`@a_v zgJO*PbdtQa#7z_Pd3~Sqi`&NfD<>$4~cT5ed|@@4}!^%MKH1$l8Gj z{wODTe3e+gVLw?aY#xekB)uOmO5g~f-kW}QD+u-T`PtDzc3A9S z^+l*^4D$Qdp2yViCU(>uNBlf^<+RWH%`-b=ksGzXv@!L`$3FB^kpn16eyBK#L7^CxUIIW z2pK&#$lN~GDU^nTD) zdL*J)w+4#Kcez? z@kUUAXRE8L$3xClx|Jcr$Z0H`X?&34bhg=Ef-G8AzQV92%SrBLo(Wf-68#^Q-dwS$ z#Y3)c6_W&&8xSqfi$C95ZkAAU&?Z8Ics1zeWM4ED*O7Nz7cA|O%DEcr`k+6))+0gV zLwz4=64JHc4IUi1A|!rmzOqv+hN(XeSsovHQIQlai(n9#YtwB(am=4(nRX0~I(@eP z^6xxQ>H~YosudBA@8UXhgml64r|?2;JIg_rPosMl5#rdu5B@Zzn3+@FS4gWj#)6kt zBM)pEmJgrxE@YeGGnM|yPLa^8b@~w(1f)v==}?r;p;KDAJ4HYm>Fyea?v&0U6c{?CduWE-_wzpQxA*ZK z$NtY8{J7V3U2C1|4EJ}Qf}0bL!1TYi=?HPP|AKNMGIp@6vm=Jfd(TK(K5()^4@Wk07E|>{p$l;G1~iCFp)#(LLeqZF<`PCb5bU_usWZMCy4AR9jg#p*b)^<0Kqup zuyE93%LujfZEtp5L)=AiKV3{@OW51f%&_C9yor)$e%YtK!B}pB3+k^{MY>(6@<57k z37&jAwV=aC8i~Bu?F0IyrHW*|XFT@uS-7?49E_LC9@Op(UqC6YmA62+5j5kre%GDJ z^gxBLg54EiNWOX;TPd$glOmY2U1X6{Byd)m4zmI2nDrQ+o*4;;drBxCsvfYdyU=H@ z8MsrG-Z#e(t1xH}0B(!*wE@T+Qqv`7FsNy`oY6D0bNuY2tV{0iv{v!bf!WKvt-F6N zCKjYCi=T@%zooo~7PQGUmg_p_(Ir(vWt95!_s4V`Gd&=SR32eh>Zp$&iC;K)tuzB% z;YNvoHn*#c!1M!xO{CqsR4udDI8RsA6;%dZt$>{W?ws$QS~`+5`#WiwhD}{S{c>Ks zjaCoa5w0Kn+86L;d9ZG>x>>s(S{ggpxZTx#%r&Gt^zO+%J@NBbF2A_QSuwj4b&hp) z%jsgqeNH-=MmME&EophV>I!%9ESgD`P9;Ef-4w z)wmg+lNVU`0N8)cb=}3WcRjyh!PvU`1EYK)e5BY^0>~HzZn0jaM=>GX=(-y_y}h2F z)}GJjo*w~Qn4@M)GR+TcWJ1{M*eEC;JgFZY3WsPi?Ug{;=aT4f+MWuzlKBF;nb{+J zpTq!LEF8M4!NeZ7Ka>LH_?YR$>lLa$(nVwpL3lDloqK-ExhD?vD{WWX0DOtK5D8pe zT*kbsotggrpmb(X!`Q&dIEC|8b=4B?-lvm{A57uBJl|3g=QIMdeXLi=FLll8VxXyI#At5-&W+uW>FY<{CV zPu?afUdQ-=x(*ZKm*l4T2OLxU$_nJy#Wa`17O_JlM8Ad)#xv){?~m?)PUBrQ@CLnB zr)8pzGh5D7{4A3FStT(ttZ2$cTQA6#Z{Q9^Qmu5DWE}U0EsR5NN->t~6UtF0j^s*1 zrA^_KwWbIlFi-=Vk?mX4WM#&@P23osf>CQf!Le`2{S$%27Y_h;I@F4MebPK|$iYyw#a?S5xdfOv1hr*HDf{>bu+SJS!9 zIaqk9LcXDN;>j!6!e%4KmLTVeawl(X(?cbb6A3|X+=~`qUJ?;$z9#(rL9```aPtZ6P2Eqkawqd| zCCcdj=LT$?yJ(iyO~}IlAvB|qIGy+dM$T3>yX~<}yMlLaIVo<->NjnDi*b})X{&DW znp!o7e*ogm&YCAW|!Yi}1NQvtT42+qpKw!E)2s zImU5k31;#=9XwaSoeR7AK5fYTB{X!E$5=FWeerH8`LG*EwOqed@z)B>ogds z?}PoE#OxTL;hjB*DYgxKxC9ghz`7zYez(z`h4KoMNXqBEf_Am>^PBDmy&3ZUI;3L+ zC}q;=PmzV7vk7?mZ$B{iKJCN^0xy10s{O?M{?pRZxaaNJg;i=|EdSx!`omN1;!>{! z(Kf4Pn^OXfhLyocXe)o*jVb1P94v>Z`$_l z1E9K(?SDs?jKmOCTSup>S#(ZM%ZQ8r+(;9Ed+ptj3gA|iE^APDtHFj>q{dN+^|X?9 zq!gy#Ry2V6l`N1--K$pP6!>AA=V{l8|5fwK%2Ick-TR!^^4lzaup&jRS3M(6zQU{a zbHaIQ;ei7kl2yZ6q!dxgfGhzeLd8AtUK0Gkt9$SD8l1)0Ak8Tky(sv5&> zvWUB%t{mY4EmE8woh&b|h?}m?WoKyCgAxbeWa$GMm{Gy&Ti;Ds!YWfC#d?+IsmP%+ zk&{g1dtO8owrs*dhPL)* zPff4Q5sG1O_n2~a9OidmBMF^zsN&`{W0frikqLWdbgBg|f}8V=UjG^yOi-TSibh{? z@|EG%&Dbv59DLKK+0a9*_+>NJwNB0=N=6H<9OruI-RPi(nuJA)@@F%X18F{DgDYU- z3Ah;5d@$&g68@pZS|CIj@qK~3+5nXb0Jwjc`lYy%#C!h*th`?|8U3pdg=I!Lb|Gd% zwT=A$`F=QD3V6Cd+7WrUMbty(hBB@kodTX!j_o(}ch@$jg$8s~8ZPL%e5Rg^;T~51 zWuW9VwygQ@gwU+PVKQd#$MbeL%Qwr@1ya(bf_py-Ma*uJlEaCQ3t%&e2# z#sR05&D!1E8$3V5RCbY!E$S;G_+0;N+fQRy#@3m^8HF-=(Fxx-L%QEpm5VG4=<#Pd4rbDjb>&CRhsF#*l10Hy^PO}57v zjaMv$*{jp$evjW!gw0scwq*bObc>fv#s&sCgNxGJ%8;gUl%F6@c(N?!-jPc%FkZZ2 zdF&nVim7gG+dVwj+|Vhz=xaZn#y4`dgBtUB z_x&$5BF+)-xx>fKMdQbS>Hy8^)q9Dxn`H&(p`&jvh*_rjV%thG_M%)TJ7bV9(-U3N zGRQ+67Al2ORY$nsj_<-d+pS^8SyViHroS3xB%rCqMX^c7pHg}RCUK^MF=Qy|Is4fweFk3-~0I%e_ghU>WArW#7 z74{`h9o~aRYA8^GI|`}X#x3y1H{88_+TW7y;RU6Ay4k)4>2rQsuAFy|F)sgzb@@iq zhPGZ7h~FK0e)2wQ7fG-yx4H{-5SKz4aCsN>eO>{=-b`rI_xuHQ|i#11PG5DsD zbKv3ravRc+!mW`L>Mt@C=DIs++~IYm|9l%K5pW+aSZ%;sRG&9zQ-$VWlg??9p;Mkb zMFO$2ovjfBWJySZU^E)`AZLS>g`A_n>xEq4C(kJ8lgyYO3L;$+d8X~!k-g&MHR>%l zvpbKMRzc?6afU`5elkKLUnkD3?}Xi;p@+R@#pQoD=;(Mb+ykO5sqxhs9A zOC^dywaM4l9xx4+H{4bTlgI7nIe@dvBiTe|%w~tNpazgiC9pMY6mvi>i_?)1VY0!q zJb76YeF+S$bFM)K*Ob=QK z{av>YuB6#Q9#30n!3HCC4i<@WEY)?2RxH)P!}xu?=L@3p{a1d{B%{6vNy7)liWko* z-Cf|BopYS-j!*cpxDcIQVH6>In@gRHKsy6rq;r4fUk4VDX%zJPf5k+o{ zIPna;-V8*}4+<+s)PXoqgM%HB_r{&r(?#K>S}X!g=OFb>x_0|R0r!^))F$043&)e< z_ctmM&(lvQD|A;awRkduy3MrV`PLdG0m6W|fzadh`+c`@`Z!uztx=&mD8!^Y<02N> zxx|J=lhU99#~t<5_TTL2;$4h|(X~9Aw$!g}J7lUY7yRAtzrJ+VntgaRI%0x@cG7$w zq)Lejey2v%KcwS6^*tf*imSia!dH&-(>V=M{ z+0b7_qh8!oURL%g%^#s1)5PA95QggC#ZVanvhMK#jb6`A9*%7tCn7U`I(`%F3eH1J=uKqD?S9+yn@F+@n)C6T@+sr zyF`o{nDPAnUfGEMg4YOq6|>Dg=MaGO)H!%hLpq&qz&BtxwcNx<+Q@aEGUwbjpOS1V zxO(?=W8CJ4I5fUL&03SW8H|4m{gwOq*QQMxz4z_#Mp7=kenOt?c-}erht&#Q4g(H< z?maX-;OBU_J6)__thGu~@c?im05t*CNccJV>S=O_p|IC|;*d~+D8M1DfV(%Dd7M`NXMe`dWJHm@mMJzi3jP5 z&fH;R+f2cn4Zbj{$!Tfs(;48vBStw9}SDsZq%QY z5%n`?R>I3W59}nY^DPa0^ z`|0S9`kDhO2tkZ}j|mO(6QM|9j>IdK=1-hI`qe3$khKrTE}+IPGX1TVA(HxuBrfYa zxayin@fZ%0OkIj`Z7=!3V!S29!=0HBQa0(FGemIV$RF-gIO-2>Z3_-JA+%IrLXfYdE+QPED zqaBF`B@f3H5O--bLgwUmbr%zp$$m@5rn?T`8NH&0YFAYl6tn59ulezXlJnb*k}3IZ za$vRsS9c|6acgVc^=5O+?hQA07yAEI5Qx3uDRMWDlhe$=TdO(O2+ZiQh z;)4lnAlnK^yxmk-SYEiYMJ>zaNJplIE-Z%4Yx{9Nn*lsDZlCMVRx9=C1J6esPgWk? zW->oiWbwHg2vExWBdNDg?>*{lC%kTQ1UA&mn$*0o5m&^a)TDsyqqFX&j zeT(4@1V+vezw1mnJ}ftyAlmr;72Gv7dN9bBZ_ApD+`vcZC7dl=Bq#_4aYMlD!mW$b zLXjuRmQ7mP#O&|ss1gpT51~+Y?W$^{_9mb;QBrO43hs2mxn8#3lde_dT9;;RZF?$g zUVYkmJ?S`{ji?ReDz9j9Qx6kMJX4552;P0V@D~1SFLEL-sc6+b`3;APpTlQAt%<{Eh9NOQzlVp&UTxaPR?2|{9a9ARs1QaMci{cf zY1c)RDYK)k$C3kb&(A>JX!dR#>)ECy`=MRuUL^LstiB9NsAP3Xu)Z3q5!8=R#@M?94S({CY{KxjN@HgfvN+>*SZK#d08~;e`u%NiJ z?lSMFZ-+7F<{*4L7aO>P8b1WQgS|^CRXJ)gKEHA!O!=TxpHTc@yk-+~Pkaz=>r>I> z8j_~QyH(DpRbI{#0^XJ<#bPCcuwAJYz`V)axqDf)fRy*7R|d+&CZ_Ke=$S-!V&5{B zO4`oqP%7kAjfRoWBPSbkX+=`X(@fYG&pIrlJ*SlUziZ8`9hujRxASntUHhF+WjSrm zRKqtzCX_B$ZO^EsB{d$=c(p}Ex~|t6VD^aNjy&O5>^ktGP5T=)Y&o6&ez$(4D-KVj>Zy;IRyil8V0YM1c;VJ-ervqGb(HUXk2a@_@6`G~%tl3W4(>?%9rIfRSst9X{&8wMg-a+L5PX=X90 zRaIGoF)oVP)QiJ3U7xO^$p#ElZ6sHkj_dEVX>&TEZLDgK<}PT^Jg?TQ@m&qpv`<_! z;a4e;3R!J@^U>&{)sMl%(U|Y-m}er3aY$nCh$+Tu$rX^IsY%|iZcUhKr75J8^B)wj ztKl-9Ac|8hdrZc#;6?pQ<|$S-`br@@3+Kn&<&I|o{YjyfX3X@vQ}ViJ>{%^7o1b0G zP~RLgKWgUpF4Cu}gAQ=!Cmzq$H5qS}EV>8uA%~ez2yp0M8N*L!*_bR`30*wc)8*ph z=x{Ff8w^ODvV(qB|Gw!Vq&vLuJ)uY<4_Gq-s2|4ePtz=4$o#3EmfB?dHhR=9>4i3@ z&T_j{lH#*Pw>{mqI9@;aZXN9G3Rh(ref;lu5a>v>jqScQ9Iw(hlv~N6r z#*~Hz=1_fPnWk?FS4IDvGD@mYFKK_9G>Tj5x?GQ~HSS=)-PDAWG^kLJI!xz1Wpl4tTgy~odz5=l&mNxca(LNU) z0HHdmJBEoYkGe3E*D|d7!TmmjtSGHPr1=wK9TbTRXg8JQURb=2$Of;UxsyUdYYC-) zquGVy&u=+E!ngbET!!0%!5JAvE}ug6Oy|QkGPs;p`^jI=7UNt^qTBW{9-xe!gAKEv z$dLC|TUtAuUC}X2TxT+7k~FjS>g)8_vK8Em5KkWiqxA0Xyb3`wI#Ak{`HzsV|48yY zJK3O2@{eH)Ef_ul6PIyK8?OO#t~6I~;f| zIMVNS!nIceE-+J#JNznqeQ$>mYf%W~zmMe?xu1pV_NL)$vx$|~fP0X*;T`qH+M8y< zoi*UI0$o6kztFjJliLH!-gGo}E#oJZ+eqblRI6g46deNSbW6YlXSOc@mP*{NQfmhw z==O;I%v=ELIc=)|9hWcV!jmQg_e~$4G-_-#Km#tML*QpMo-6{($7_>$%Hs)wrqX+m zHyE~*ezGZ6L$GeZPGb8hiVvoOv1GILXUjc8M*d#2+xnG5>9-LOWBJY=*B+kEmk3C7 zAY=<=LcRN#?*%tL7S&Tc}m*0gfXDdB{Y3mf3m z4AIn{h0GMQXs~Mu$t!G?kYKxCSQy=b(U@QY#V9%Z^8B7G`n&Ddq1`%}_dj zNC+YAhGy3U8AmQmko{ngp*4Gr7i_Cq5J_Z*l?52kS?khidQFhBFdOib{Q7);r~LuK zB|Fb#M}E)6II*tY+IyQ?mL)U_BfC~=t|7IZbEq)v`n4#FHBcw5^ur=?AlX`unKteJGLc%0v?gh$H7cNi4L4LJGkZN zncO)uL*Jwnsr}-l2I%6|-KW6cD-B-!X7yi#xUBl@;f{01NIaN8bP?SLW`xmD$iCbA zH_euP)-&cYyyPuurU~x)+L=Lo>8(oO>MG>O3)JQqaE~p;Cgs*_1?lJjC{$MFa`}sZ9oGs;VivsjY^miny4qe5mb5>x#Kh=9;usTVq%)oo<#K{7%NbHkx8$Qz zEl5r$*Q7cHyojX4ez#X5HfEr*8ala1+j9nO&UjyOxq)mf8C@weC(}w*wwg$Q2B=jT z5x1A)`wfViUw#1|B@@8(5q7}TXGs{_r^l)(+aji0oYsd$m+cJz7!Zi#XS zHl7;9*j+;l;Hs`%Y4JXOB-H7Fq~>_d#RP=M1?0w6Sp|$e+)oEm4NR~=epbC3CEyU= z#zWl5j(<5n#je0vOSh7G(mIO%pO4KHNprJ6WwG_GLFO-wzj=}-_Y}RMK1b~X>DKa; zM91ZL;Nyr&0^|^+7kRFzL?&=VtX_MwoCvj6+ot)lUt1@?VgeySh*C~8y%pJ9MSDN= zFJ>uc`@H+xE30rRXQ+$)_>mVa&rHwiW6qjjS!&f3iKfxZMH{N$o0Fe`Ero>ehg)lb z)euX+eg&0~nwEP~tTAvR4z~i%eCsHiaV?tW0nVq#wSOwsSsGT*ef$CitN%$W#6W*(Wwf zO*J%1?gJs2#tQz}19e@N+FmHWngCd(7TG>ok>FAudA=ZNLH_&uIY%yX4N5I>g;I~s zf~lrQ2Z)uRqMe$JtLx?tpLKKE#8jltlOt=kaaV1Jw`=hz&E>iq8Jf|Y4wAra#`0N4 zr`Rg}O(_p{DG*(huD7;+oV$lBzgy$6*Z+INO1L(;;O8FN&kwCl0mq$$0q{HOptb72 zW9n!BeVGuYv#i4kO;E6mmxH?7b7s}m(3QL!$a)x>vJv~E<@h}$R6dB#!meR&7Xli|^Ua)4*6ph`07Z0t+P}TMZ zmZrc2X(e;800QhPV|1p&kzA{7*o^waQB|L*aqeKlK!KlEElN!&h~x$SExMt)do@S0 z0a+Iujx)m#R^NO%7b%rlt=`V0g`DYwjVOsDl_L#y7c0T|NP%~`s$(QqWgoPxnO`*m zG_40Ng@-p`+4&!jC`Ok?5Ttd~Op`^1jI^VaIX7gL*LkkaY ziO%?Y7^4k-d*G9BY(>rUI(RUtyyDn`O0L^6q_578F(PeI3yR;uzc_Y2PG#*1j;{Fr zEvDXH{k^BvA^Wiff8$M`l~Bs~%ee5PLG`h&$#T(qvcdnNJBB-_2P%GEv~-BFT$#(= z{fCYrG4|2nJxDAcfc}VToc}8(54a6!Zqk~yTfv|YHtKO+H#T}VT9_g{!%}L22$FY+ zOHd%kszCYWh0hdakX|W(Y6LG)2^e&!UZF=rrE|oadVioa^a_CHFg*#xpQfL$o*&NE zp6AL$97bmfhCTgM+1#ZvjsnluJp-R|pHI6U5zj|s1ftMJ>KQunL;>?qy}i2GzIBU( z4;9v&sKjoIBpk|txa@OvTQ;sD%ayPSVj`=^BSgQhO_7r;({ znw=fV>7&CeSW747#8pz*O~$ ztO8OH#wqZ7A&Gz%UX7pjFXO)G?*H25k|`N}v0XaDQw^^@-5$nWH@}z&r2Q`r+<(qA z{9wlN50(AS_1)I(LmG>f3?-#M3~>5qO0oJhVcg<`2qj_31D>y+9wi?30|T!Sx&Cie(HBaex;}QFngjD;`whbC87Pgb=f}I|XH=i9y1Wsk z)qk^pvrF*sY?0jk2Ny+0sXm)BCYd0?vzoVQ(NsTdUEhdCF7GT1N#`5LT6CuY>Glq_ zdk!(eFQ@e=uoRL-w^6iRy^&0k2k0~uT{Mfv3=Wj+YS6EFqk3^n6EQnhoyxRGTb*0Y zsHkCl`=>}rOA3bJpOBcb+ys^f_p3JC_5F2Z^5;U;O)cz??_&BF^~BTvSyV-V-B^<$ zr0g!CE!3qKMlzoky8Su?4UcrHSB5?{nnql>@awM^cf(ck*ssD1To#0CK|QUB8+Z@4 zGmS3HUm^g%!{1sI3r&8LaIbhF0Zg7M^^W(C`AD|mXPk*u$hA8DpumchHyyyr$+*>r zw8FleDcLp$c$ULpa+z#j~8$mk-$`f);{h> zrsvOHOWbW{;cJtKv$VjEBwU>9YjE$}7NLtZng0%YwSGb_TZt!jxtY5;mw~KNmW0i3 z?@Bl7xu;w+3?KDVy)bihy*EP1pMn2^8Xy&j8puOy5A^Jh*RPyJ44ZL<5APnERxn^T z2{_kwKewoh8#Gd$p<*?$`!!zQ!bKxE7MeEQg2Ep?=zW3=DY(g?>cuwvN(YoP2dB{< zC#wk9^_C=fM7kD_4?QEshxpIJ#O3;GHfFBq?c>Cyz#b9aPdV1RjK2(4Mjaa+(SkYK zUvVaKd}!S&sLD@jt&hL*oUb4q9Z^={3WV2wM-v#ca|k|1s_b|mQ5MwwW_xbCX(z>1 z^o|1c4`e$MNwQX*6#9LbO+W$AAF3Wy?Js4>&}KvyhgGDFeOyTbov;p4A3zj9%C+Ma zf*J%+N{_I4^Mhjr@Ai2~Qg~FWPJ4mHV9}OIr8!Qhd0WW2w8tsit zQa)vOtZOY=Wb6}sQAFZ#;l{}O_&h4L>-wr%tPNhU>`Q1|7IiWPK>LNVYN3miOBW8&Y4kPFSXP!*^w|yK$#Tjc$MZXP+M$8`7@Who;?pZYf zT2lrYy9o@5wscMqT%rNSk?!x+4*ZaY$=mAyY(6 zb||8#zzm5cH=&no zf!P_c)EIo5)uNacC=$MH&fu<(-^WS+#m=U=z)wpNP0R9*{GH}@!M}Of<&LGPH-E0; z*Mb16{yTE*^O5&|D10^LEdbomiyVG`0O1x5{I<{Sh@^JX88w*uxz|c!A^I&fPzCSS zf`O&kh2v%Y#O%cXj{f{YH>vr?3b^XNDY17F@rca}GcvI+1-3@-p$yby-+r2^Jj_IG zzjw(v+{NBS3E&pLS%g*_Jg>8*xe3p&F8!_-5kX2+#?a^(1hILeP2eCkr5wH(+V42# zfXkOE8ksW8dZ*m&`c!--lbo6b1kdrTkC4ntd-h2-Zk8p#a3V8bOG@>P@ z@DSBtUoy*H`nK0Esp5KtH@*^2o>w)uh(EN!KVqepuRq2Jp6(%{N|2AW>%%W2{AD;n zR-dWQ0ny&N9bpsDz_uu6Q&V-z=`H2ou`RjNGa7oQ-%;%lgD&ApRBF`C&(Wnmu@jlM z?}D$tmChA=@zgc*#_LV3v#U_!ZzDx3(plCBe%cZu_2sxR8&i#~Rwc>fCS6MVoYZk> zl$ym6ijWOhiS(n1K>Ol4DWrP_K@@$4H#Fomj&fTsA(F&PG#saynbCvV)l=E64>)MW z_N*_^9Cw|xq?Fc?DNBR(s^yf_g3ojhTpMIiGg3|)zP`Pw)UKCtv3W~G|8(9tXYBnL zs*nm-{ct`idLriiBzv1^YNUC~q4qvJE`nhQ=KB3gT&;KiDndAw%#&6)h4RZmgu~SL z_NA9D%V$=_8ZP}WGXsW zzjdW;)Oo(@+bC`EhjMkXv%THlm(S$o@Z-p}m#=TfyQA24P8+kWG=g2@cmmQ-Y+8Vi z-CUi2Jh)i>nHGs^o)`^no^jXYHzV0-5(L^Y*k~Gho4QB@UeUUlefk2lk8~biKD-PO zgLb;!C;Hxq(>7odc$*l~IP+6mk7TumIjWBV4nf!KLM0)=FdnKpX_?v#W>}`FTs05j zx+3qAL#j{`_U>_5=;kuhViL(m7>(B9h>0qtS9TTd6AaliqiFp@TAPKpOR?4jS<8iX zq2>#eKBC!xvYs|VjSk*FbT!M)!a5{l7}~Svl3jdQzv3L_x10yHKrCOIShQt67E9Wu zC(D-*0Z?C%v#UFQXL>i0R~+Lnd-7IYR@zY=ctA%3_&RzY8)cCkubGnN}N z!`MbIJu!Ax20i3pR5Geo=RSt0_ZQ`h6}zWeLfMmVr~fk%gggFrM}(%vUOsU71TOnJ z-X=1P>P7{47Rg;KA;h{$6FaE zz1{p)p;z=a61W+J(*J|=4=8YVJa(S0b-3Wyphjm9lq~hpBAJEzoT=vKEm%`mf3=!n zqOkL3MtI=Mq+*rSZFBG_o!i$q1IIW~-b~GvCV5=}!xbBEt*pBaYYTMvefY8d7CYw{ z7!poJyQ74kXZb5vj~X#^{m$<(2?OSC?sGP}6Vx1+ol)a7bFb}<=0|6XFyQuoPKclD z_%!5|lDhUqjqY|xd~RS+Ei7;&z_X@S&K$L94;vLGsW;Wt%hud0 z=pxi&s$KMEm^FiNOFLa(m`A9(jxC~#*gVz_#6Z@}DkGb73yTzYb_EW0Ee_3SAJ-RnCu@%+54bI}hg2;t zd};o7`(0vQ@NmFCV!7mDZS}_}voGjVlmVm!b=37eaCwuYtz;uf_pB3P#hx*59^xP^ zztf@JKWUje_$rhpn5wv=&KfVm9=T1V^e)U^Hcuv*p&8tsC{^6aNVz;}8qJ#>Ec3M( zBr2reUEmadb#VMIhD}ydf^HJ;$s)@(5w}r&)5uT*hFUspd-auP?9U;a=fEfl--@*= z+(`yJQel|Hox&~}-x4pMTBj??@`C8XGzcOxkL>qFwZMcrKi>eg(3zLd+^#Q+b3&F?2&6=+ty8t(;UGP+UR*C?s>a7 z^|!afx7QbR0rcBd)c^kl@P;1uQh2*#sPXHDm_u;ZQAIuM#eeA@+M3dIQ5SDi5Hxsm zWa4JGzhrW`rYP+l0Tc)tA3Dc4iSWNl&ZIX&e}b!b2P@DS)qk^2uwj|mNtPFEzV|=K zQV39&f8zIk;)Xe^qy06h3;<`xAEVxN=i|%0t}d9G0Y|+MQuoGZSuG|XB9$VdC@>{c z-N;_bU2eNln>(an6Ee3dr0qTp!R%V2J8huN9gy%vzHNgYHkS>(fMv{982Q$SiG7&w z6rn!;ZXUd}EQAXIY5j;~V|*7%TOEar)F91<-hh@AENs}fNt@x-{APAcJIEf?kdCOv z*DSoXr-bB%AZ?inXD-fjFxU5YF?*Clp}HY~lx91Jn%KlWmhkG5_bfMBCIhvZ80$%z zhX>PZWO$fkP_?9TwdC?wwrTGVV!k}GdSJI?s91J)4Y;+Xjs9aww)wMg=F>q=`qsJ} zos)GQ$EH!y!8!L~B9a+iFkS)XEmY!4ZObGPzsvf9<-WpYSRo)rAHUsJxP0_}pVK8Y zYn;<(CDEC~QZH(sZu~d(o#X$m_o9d%g-9Re$hUxCi zC=nPCzHu)RBwAnd(JaY!Mpf~wRp3+RPJ)CMs6*a?O8KeeLl8-%X&VPx>+z2vCbD9g ziiAVZeFLs!)0oIeNk{nY>hdxaEV%$ z@+#qa%D9;--0k>Vn8%jHBc^O0Bbvc@rw>sfKb|8PpIDRGl_Gk$muPUZ1pH?!BW5Rz zB6TW?1O>FK4N9zya8%HT+8}BwU}!VvyUo;B>O^>|tE@>~uf*Q~I_- ze4nd-`u}P21li)mN_TQ;FLJqriGV7o;=DU^8h;Iq28zHBo9Izq#APcA$Xl2Ml9De* z`QxKj8kj?lk4L!H(PeQjQKyA6#t*SWcFNivcxbMe^VA^Uknxs+Oq+4j23V(i>;x95 zZ zy<6z=ho7x1QWcDaH1meS81GpFJ{TuNChOIrm|8I9xLlQQ zrGc7tA%X{>hH@NJ(w~7A>)z1o%CM1yJn+stCsNV*D<6)g4tg&_kyjt7k2e0!)X=;6 z?XGVEp>2}B-5>muM*1l91@j<+=c$RG1vrn464C807)2p9HRw(*kdOLg{SZ|PHPJD^>#9<4wd0|8yPEd=fve4- zaCwQ`5T=%cazPwANnM3#acNqN6>+?zjrH=||Dai(<6&I%#?j~h;C)$BuQ zRO}~jf-u{t08xXB0{%gjEuG&q5dpSH4|J1*gXFFr5W8- z+uuzwK=4+~^@Aqiz6oH3L+$>h$?^~7fZ^Z@RFReizkF{Z z6HFXLUtE``n)^yO|HrIw@na;%t?u7F0~iU#_4%D4=ykcyc5yMsIFhtFra4X5j>Ti(pVT{*S0zVPkv*@1tSgU&MAb`^IDiVpA>0b7PbITdcTvWOi*o zfc_9yPex6O0kb`~vG1urk3uyJ{rXOM3C5Ay%G%RQGPz7kf3zwx-#JYf#!1$IHqRqxg}AGuKS>RA9LLIPCS@~w;|+C=xHX8;DYjMq zwo=F7WtZN@|GrTpa-e!pdzvZ!$L>%1(FB15t>60-p*)SvbR^_!Gv|DI!d%ne=&rQ z1^77}gs6(CH3n;!%eJAWwWchfuqe#egtcdtTohS%2X))s0&_)A1NQCXY{pl50Y2kXE-A^?2nRjB9m>aG4@BsW&ZZkxNs`RWJei8)~GG zV?tmSUx`es5i!%9zSQf)dA+V$KVYA$Rb@2kzzp5@189I+AE~)%DnU#Yo{xhuwm`bD z-col$c<0&b1YkVMq1k^(Z{U5=ILBq^v(byd4d;fMt+@A{HgCL95l~3-efoBkOHavF zDsgz(?i}V4cK2rWaKhmC1Lc2r{fMPxnaS!m5@IfXxAok9W5iZ|1vyUkKph;(4quIk zc1?CZ96LV$+m&E1nx=g_Pj`%>U*-i;QZKuK0E@9nhd9sEmHe4Sy7^hVV7Yc9Lb%8t zp8rxkKf?zk+QTTcb(|oHZirq!M>28;kt08(hC?qKB|=HRx!dzqi<&2%SahIR2vZgn zh*}6~{;tBBXy+f2IITm-Uw96`T7r|XO3r}ED>_Ocp>7DhD({w$62l^T8;&~juXzKb zaXSZ1U29%XTk)fC1>}+Pg;#r)umaH_KPcQ_d;>h16$s0)V_9G8emhxb03|I}S0e41 zP*SKDCDRxOW>UzjF)YzB<^+>LKQ>Mhs7W9Pjy|A~`vPk&qvheovFBHWeEpgWme>6K zBUO&TbV>D_jdr~g!>RfYdo(J2B^<}=N{_kYYszQSX8jafLC!rZz$8%&t7oLO)zN3wcqbSGZ?y$dstvlX zS26QUdY=t~I}Rey)LJFSlOy++XAcel;vOKo7`HF}%J{pwbAhw_X>j!5X3c98pkL9q zGspSP;diZt#fdI(sGT56YXbw!Te6-ircVcTM-~nO|8<_Qj-*PM{cqRT&i6c%7FZy2 z>hZq%_1!O-`Y*LY23Eknzmai~-}_|Bb+YU39D4e2S*mYKQiGF~h3|>+)UEEGXUngx z`e}jRz-ji{>3;U9Gkc*jc4?z(!~ufogU+S4z%H5oS#5fKZQlu_-!{@6sYJcdK|F~F zO7u<2n^TK9YEH+)eW;XYol7;f?u*h~fwcaN8CIW;iBnWLn-DDp(vp{G6GUHtf6rN$ z(0G*ALy1iJ$Rn@(7%i4S48z-zbliplUuxp*bVPFF%pLOw0xh-I99n(pdPE_Z>?pN0 zI)Y$?V-!(vC0REyPgKZwcy^TTuCY_?NqNONX|QOhs|KIr5^6uKV$5bP=4?SL0$z+G}TF%gVF8RalcoR7-&gb#1{}f@^ znk)J##j_9dAc=@lpDJU#ODnA%wo18R?@Mz@v9V&Bn-xq2bc@DA0<)2qsWFu>cLRYe zun>V`Wz|Nq!P5HQ{pr6GEfOh^f0F^1o8&ox8xO68_YZV84m9H829pI=QnzRDwZdsz zf>ahrtjozhr?&vpXtEPuMAdPH<$q}&+YrtTm8wKBWEBtdzej3z;^)iLj>;UhS?W1n zQbzwn?j{& zhgUj%aJ}eH=c^c6nZa!Idmr`i^GbwcbB}2^%Z?s@P(V2d6Q=(6EzUP)v?j_sXB8%_ zR85rvWifoUzXuss!lKeGn`)K&Mv$8|g6R^e+F7IUj>(=Nn#OKntu$Ooe5`>Ed@Zx| zaGZ~CTZm>-4D?a4qPE#8_((#=H8CF|LtQvkc)OAG>oA|yxXog|JeM=HN}ZVsv$E(V zo|OdK=T9iPpIcyVkzdCME9YCF&_$)=-2$;;(B!g2?sY2t86Kqrylo(LyQ2(}B)<~F z3x+J@4ND6vDIXZT9D}yMRw%aNG-k87Z~Lwb*mY$x$N3*92 z#7(KU&*yaZhvAJ7m9KrkWKVJa;}E_)g*#~s2uD_L;VZ^=m6fnai*=(Re55V_P#e>! zmLD*0idRI}4`v2WpCCf2RQT&83u#=W zev0l;1|8|!uT#G@c0m&aYjA#Wco8jWFRDa=2bC`L1*x)|kS45j7bpEE;rL9Snd#L{ zhtYadjBs*k6Y>Cu6`8<{?!vB*Qe7Dcv`(3$lSg7ghk{>bF6K{?j4pd2X+8R5oP5g# zX1$j;jB%*@z@y(P|EpVFvq*lJsr(0?UlUKXS{GP-oV_9m5DL%qVhe{#3k}`jBuAK! zU{8!%1-H0&R-y1nWq6&H$bcH;Vf?KTzW{38QHA+=2L}Hcw=;`SMQx&}4OQkkVAy*t z!Udb?mH3Kk7cc`S|6*r^5+%r&LUQz(HL)^PCWUXg?+XvAh@-%jaHC90O}xN8`wvHr zTxP`~-xr(sQQH$eY}c4S@HTJ1*FzHA-KB7MF9;Ca-66QU1*v||z4z;Hj2`_PwynL^eCAZ(PaG@(xTm2OOR;;0=zR9 zBK+E^(jB>D@M#+IN}EwQ8K4P>cK%g!d2^djtLbS_t^}*^o))p} z0{NH7AE@WxW%BM@J3}u^1;{;&Cx8C&&4!5@mhq0-+2SRVpPp9!<{s-#o`AWxWeD^6 z5>xr~16JM!hhClDI8}3x10d#|?=;zE2=N0kvuYD1(Gc)n4Zl08QBJW{Z;M3IlFU~( z_fK+JVs`lS&cZ@wbcM*NH~>w2($wfv9t2NVPM;a?SA_nzu{uvtSj`CLR_y0?3GH^a;>-xx6Vj#(6)Y zlw`VRA0Wa9T#eAo4sb5${&o{ABK38@OTF+v005{LXFtoqu6GmNm1uLvU`+ftg8T={i3mJ1B?7?qSJ zcA@bA^z-+bLQ`8#Fa6pWKgev70^>yt;K4m;wix4*Z28GzbzVL6t_87r4Fhs}X79@; z=ABj>1VvNUKQ<$Ba+!s>Uz~-i=10GDViwS+l4d6%j+uCpg-G869UcdXCp%t}hhYjd zxu74)=zcjEwB0R>S1!K7E2j9K5Vk~l(?rjGT@iZsPkpxUQ=n3$(038 ze{Jpm6?BEGJ|qa?Cy+cH3kjAaV8yW5Wkq>oGIvpxG((}2z^^IA5btNDCtP3!wBIo7 z68iZm3fI{8ulL062i+H6UHKj)dUdkw%lpDJ9sH_9JVkD0l8;AEH;G0OPbd=OXDfbPzY8PZ-n={DS98E@;P*PORUPOAPGJ#HK(_;{ zMy^U_Qf5g@h-!LvcKF*`de|K?^4tFy9Rohd zw{XL1Ei%rE9*B|d zvE^;;eEf)icTp~%e7YQGwgNR92C_MQ1LIYm)gi1~YD1e&jNlM2A*;bS0c+4Kk2~*3 zYORXBK+u(_$|;ddI+GbE7<2iy=%THPU06u=41B5z{JZc(!!}glds^^$Fq!rNdMI6R7$xj7 zo%ZvdMTqOopVM~?vOO5fprjl4-%@?D{;PL{Wc;Be6LEvp{nNuXae-9~RSKkCF!1UR z!>0dJpJyPQDqYb+twNVM9bTL9A50?GwcN4a0?5w~S8$4dhVnRyh-Jrqtk%B-O;xU= z{}pHegmX49Y2|PyeqV#e7&Mzer1fIntqJPyf2xAM(S{$R%BdHov9Ys|j*FO=w5V&c z6L;<>26|gswkr)o-i)}{A^uL#`>NQBb#Eu=o2Bn+i!KqyN;wLnLQ@o#oe~z-{keM= zb1M$#kDWZ<@>FwP%-;|gZN);tI<3Uyls!ye(>xyu&2ogH0h?xR*}b7B-Ac|cVFRcq z+HfLWX#v_Z>Bw4%pOf`^{;95oMW#AdRR=7n+tkZ5O7?&C&*6udXv%kJ%Ukv&G>M~D zAnBnGxG-s%fzyU#D4)_+Axr`>RmR0gW4QQwq{mr=(>Hjh;B_t{CtQcC2;2|nplmnfN=-UX3f1j{3u)O4n!zYZK8$iH-9x7Bm#Hp~qdsoCGNbQC z3oWoeZN8bpi^t?vjp^bDQ~$S?gYcjRk_+7*;ZoGx0Gr`M_4Z}j|J@D+TY+ROLeQ6! z8tj)4E58aZGWo$*Q0@TV&b;m2_w{K&QkQeOxdF7#woI|l%|sDv;55yKr_0V1M~m+H ziP}2+(O={g$5io4BST*&utRn8%ogeiLi3`+Cy+u+@Rl zfy3m9G4mGvlxpG-TQngNcAl2`hPLKR1f{RBlu^szoM$UKtL0Gzs1xl7LlhswN;#71 z*cKz;A93-mAE0V$ouoA<%uzP|#HW~(U7fw;ng}9zsw_^biJYKKKiCBV4sUEq{QZJ8 zBAbXt$`2s-5pRbpMTr_Tgmz7E8j5%@@Lt{dP?hG z2dGM#k6yH|i%n5@49;GiS9SRUmqIUO=Pk|WgmsX)hIudJ{PSD(ZHbRQek6W0pVMF^ zN&Gx3J`7%*vKNuXn2A4X>JV}U3vANwu3@`I%&;v@$t2=;zVO!U$zT(+V7)CL<%ZWIC{`39NiMFF%)2fzzK1b@L5fpS{tf9=XTLXYNmDGpi?$nu8sU_ z=Vu&C-5)JVgC@N)gqxwkY~=Yrmdwd;<~z^q6jE*sf>@-PFgliqH8YLYdp4gEjm6gI zGEuR|ySA4&J5w2&Y^rNLOrOqp0s*n?=mATX$h9mML`e$J&+Ix=wdY*M-#|)ATI>y= zM_kf#wQi(v{--E`H$#%XMJu>Qcc!kAZL31frZ*S=19A37Q)z_5C;U|;BjoxIF5)u? zqeaf!A~_lBzocj@vRJxEI#04x+`kxb86wo5DLw$M3g_~U(LTHXU}ojnw_G(09&=BA z-`W&F_I&^>5R7w5BO5LYd`2}Z7LQfaZg-8QKETz`mZi+7Gv&EW9mh2^Q4Xm)eKR`q zeOra1k5%rXiSB<3Y!+Ja!2FRH)tRDB@<9YNOA+jw2sC^}h1cu6dl zSni3FT(nYG^;?gd*E~^!D-HV;`D)CaOA*z+!hz8{18uUO_(bU9H3Si&i?Y=}$K5a@ zQ`yyq5Dm?*HrmA56GLG?@V7AkZ1oBnQ0xg?*q^}|0j3nZEU)%u-frCD{xhj#I(5YLt5jGJBCz8QX>N}yqj>s zkUWU?{l_GIuP4RZ|BJz98F0?=rPqf`MW&O#D;M00VlG6dPJ^mbSj6Ea)lA7D=(qb< zle62+3Sz(b=S9yk_FR}clIg$93OW%sE?r>!$Y!&&`PT|&x$;}J1h|C4h4!6Fv8;0E z8Oz>*YBp^c*_U&MB(b0W{DU7{OGYz7|K!9_pj|z0ODP~@pkG+sMC-7&m%{On0e2(V`RHMhFryimKng3 z=k3n{^luknEPXYzCmmcV7kQCO8o$pnciCb4C?xpeKw)0(BosN3ZD@@rP-rEr%cuKF zGu4bY0*M9KTcI2P%wgE(yykTKpUiGP<;hYysbrfH^HXllV>*$^wwh1QZ=BH&Xrl0d zd~=iq@-WfSL%ZnaN&WnAF4*e(parzwR2*mC{hi|;x_}Svg}iD8&XJ8vtpcT355&_^ zBrWv_pN|TwSRz_uV)tBT7@oo&01X=t7L61%Y z{C@E=y7{u0#!dKs4Hv|yqI*#jGM|ySuL}O6>vgqxJ(lM6SlN~FQ1oO~LR_g5QyD0gEWhi-vBa3+4&UwV zjqmO0MPv|XMw}~WG>>Orvj&+!G~hGk%`4RCis?h=<5@Z==h8p;J=9Ka8Is+nR7ClW z3VLK~HKx#O#JdN<38&5^v1jS6=2?t{R{>HS;1kE8XF4eo=nQCSe?*?=vO%S${hD2x zN0f}t0K(?~j8r)b+xA5;CqHAgu)fGJUgZc1@y&1K=(f9s|H=t`s=4^GxR6|qvC`#w zvZEyO`~dh7Tr~M;&e{lw#Wsy2!rf?1Uci2_>^lp6eWnO}$qWsR^_xYOc*47v$ItB8 zr9B0bPJrK4Ef1T9KCNaOM?7r;8ZSo>W#bowzRu2rc(G_N+Bl-yMRxzVJoQSvnIrmv zP1SAcduv3eAE3Y4#;Z1-I_qagz3aLZ6sPMa$neTEyh%YqM4Vqhv>LbkKPQ9Bxo-$t z$S5p=2+)TyHoU$gTUfps9v{tOo7IwEtn|H3tM8R*fC@&Er~_ zk$I2en_Q0aQNy;L(#1!k?CE`<#|C|BRuKk{*ydX3*eVe0Gp|mIMAAtYM2oIo`}aLu zW_fR7AX&NJ-b0A+9qWwUu~N~odN94@e4|lNp+L^O3kLf0$6CMLQ%#qh{qgZV4fzsT zcg-%@*~5!>cs3IS8DypS5mabi7S@ol%&Z+R-5S+@xREaNPEz)a`P2)eq0={C=@dcP@1>SXRc6nX3^;O0EsyVpyeSArVSiKZ%#$O8f z0T5M#GzEpeqQ}DUZY5=0;ky{^Rr;6NL5tV`D&YTat8J$7-(OnYKXUz+Rzt3=e@f&G z1$7CdG5+u3Uv1Q9ZOYX^u8)%+HYUF$xU}tmIKOv;_J)eQ09m3pg|PuA#8{6%i7z~) zD+iS+yyV(?9H#8=q}H!C&d*|n|8iZ`oMlGD%zC>y3?3mUlDu?q6#msJF0W%2p)3&x zQ!3lp=VWzOJ}LI8bLuv*W-qfkD>G^aCB{Ay>is6(8c{FPo~N_aR7KK{s5$pu7qdjb zfJko~!^@*(*~y?C5)~h-7i-sJngDUVvM%mYUMzT{>CxkYk1bNS2fD(KiZwi99_^Lw z-xurslvx>7K4kq8|EvD7b1&K_I6yqSR_i4su#JQeeRpVVHvPj@ZUbt{1L*}6qhAxSG3-w~k; zE|T%D(FMUE`IfUr-L%ecVWW=)L}ZCPS?&@Os$fRV=Zp*<6|O21pU-uEd&iKs-I5x} z-(&DWZmidURNIfq6A)*>bkw%zqZ7$5%UEIIc0e14J2bOwzLjJ2`*K-ASZKNB-$9CT z!2N%lFea#}Kb0nbx@aG454B5%9^`_yC#Nng*R+mMA2oDFH=6`2?_auXFZ^NV;0(M| zkc$u}-_AGRPGSS!L>?~u9ZECQ%Y&&b3+<0DPdvQ5I3{lZ5p2WN`I#;SybG+df{WU* z;;e_lyRXYP&!#qsZmfqV_8Im21a>M|p@q?*6I zXL7fBA9=86Or4wXp^`{o&CtD4{|^^JSSlCbn}`lX#GG~(ORsB)+o>+U|HS=K@wN~-^P4nc-qUgTo7yN{f`lX3=PWBe@63ErfJ}4qdk|krZ@<+ zqbE5;l&ilNUGRtexce1lXA&tbd_z9?IIQzkCDznWOkFn8JIni^@W&`J3gM_-ik)!s zFg2@6c@o`Fa)vUk{hIdE6XazVXsaV@tvpHaL6llqKW`2n46^X!2(zz!cd95@rSOlA zoDez(Srz~}B|jhg|K{@gK5F2-F$Lc3URZ+vbFCX{@ZJ14oiV(=XhS?w{2@KDin})} zY0K9)4%pskSu+K;{HhRw+#fS6mThUE8u6Yh{SH0an8*eU&}J#1FM-f)CFt|SnbOZK zdbm8V+-b05vyR0mO-tqATA6SYZU&jW^eWS=z3N+KLBj_BqZ>9xao@6AMa1_?-thc7+ zUsyHLj~4yeNrYE}5`BeJK{tM4h3ZXDt}(vP=k8)g9c$08pBEsptAbD74uV~u=|eMB zM8-fz0hG>rcEQe`5_#w1;yr8UMDI|-zN0PcnRl^u zAW^=Li=YvvWC0JjCh7*)vK0-;JTjf>eSqcd@F3**r3LEza9+~`X&5H|xUwK0+Uq!a z-IlvzN6dxg0Y*Xx(_ZmlcU+qgsm@y))er;0PS3BFier zI>D^+JM%deaABf>Du2^7`(GNCK1{XiB_7YUv}leK*tAhzY~I!uFMOV~&Q~2)%igu4 z1Qp-Qn|*Q=`R7O*f&D3PfQ6pb^oKY4mn{(sMrt}aEpr)W0y>&@xvtz5qnWVBw)>Qx2+X3-9OV%2?@g0kFo$m5{dwjX0 z5N3aA**BZ~xnuK_{n~C4bMZsKuH7EO-_#tu8`8Z@e}XR&d;crqewk0Zy1vamu?_kR zQ~-_I>oTCCaGe z{E8nG9>||zT8_kW0d&`vw|a9nGow9=`|L%#q`I7k+faR&N?g77qxW7$aZ*U*zJn4My| zb&X(59zO1pNS4=LZKWz%YIen{gdRS&?xwEh z?ylbMPsdH3fqxqS9P#Ymi+->xhj2ZbaQ&t*3Ikfjx6JXUmAD{EaMiWX{W}GpE?@8) zI4$sh@~7uS+R0hT&+jO5DRB2HorC~kL`U{ds+8H0Hn1y;e!!7oz~g6Z*-zQ9qzZo< zfLj$fV}Wm{ErH#h4-KJRzJP<7bg1>{EhpL)zL+cEac5V5@BwcdqZ#q#T>hTA5H#w* z*N$mdv}Aq!eyv1YHA6wHxme^7L)zbC>bBRmea0`zdh}82b4Ia~-UuGKhg9e}uM^xB z$7kV)n0?7ikSF=IugOvoPo~1Xr$vhch2Kks67=z?=FQ0#`qnCdnCY6znS5;072ZPg z48+Pp5fVfExIhC@l^$+wpBT2R{A_SxBIsLHr)iBk1lCr&LkHlF@x}fyYtb+2Rl{+V z8ENHL&cU>OlpP7ik1$U$%_O|03YL^*Xlfs>9C-c#YQz)QQ?2-CX-fe>VBUEPHc<0i zk;{rM03vwJ(lqyR8^LR6aT%Oz-8D);Z)QeOYf_gjLx_A?Kcb1jc^4HPnDGcepv^XR zJHa3_9;dP*kI*;T{At2P$9L@pgeZci(H&Lf+&{!yBa_jRhYL>E0hp4gWFPW`^Zu3a z(@BpR{gOsr$h=fGy^N`i9m?I4!h47%HxEGI@HkXszr6iZE+jqngb7KUqyTXW`|Ubk zENyd0P2)P)w|=E~dZ1J34x`=FO1dg}x^4X&YwP{rn%z(%{Ebxa_UPqVQo0~2E0DtB zX8G(ZAcm2hFyw`fr*=P0ZbExU=1IWv#w&rn{R_9xzHm(`*dYA^A0Jf z7wM#LHR(9#D7qcDhjFOo(|mUEvg13T3umwNK-P!E7gA2$_W_%zl%y3_3G>`5d)SDZ z%mKbtr}?55M(2|HFs-w$Tv0#hgdYQi)MXK?W9M5S8t3fE+*C8&!W|2}c*9TIAA~~W zfO+Edc`pzPnA>$@msr?---U3^h4V3Ll8>93m)x?J4GDu*;W(?KoWXtXSTFnLcK3rM z0&kY-=FNV0yW#EIV)c71i#Y{_IPBtu*-1gkJ1pA^`tsY8WRGUY_4e0;*H@rsNtY`= zz$w1O7}0N0I?8KtRFKZZkNo8ozJoxY&v1jsfgS??de>q4yA5x!T-GMsMbC3kVnoxP z9tpfeFGDXO=O#@Uvv>Mumd}NT0KXnu-)b~Pkt$C{&@;Y^Z*YCg6Kvctjo>ZJq1%k; zfcU89VH<84UPvdEM%Zv=Mo9|mxL>x*=Irw+`86xBi(lEGn@*NZAN#NbUUHD&YM4_& zEAF(wT84kJoRDhaSI#>QW`_ahjy>w?j3fqDxoUY4t|VG#&IUK7jw)de*any1S9tBx ziwl$t6>KSt3`)ywRFi6Cqe{{{Wy*LxkzuC%n#Hm>Gkn+YEctRjk1|v&RtMg0JVQQ@ zUYrCO=1z7GC|ws??l&2(UAHQo4siVaU|H83IS@GNSp3+A7Eqmi7WZaY#4CG19_Rhp07A^s_Z$wgF!vn zL(03@A6I$+#${^`!)~JAsJe}D>(T&*LlYfmDP*PvKZ90Ic)PO@!U$GX15RX%AR#u!}oig0E#cBdqbuBfV$WODD6sej49knU>Tk^cfK!*X39+n6)(4V$@< zGKS!bTJiYYE@k7NvJ_`_5~>Ku)pl}Az-#7WH#GEs#h`s__1d?drZbl#G8g(LEpXoQ zrnPN&L-RTE&d+C8&XFm%-mB4jlUxfKdN%3d{+|^O_VeG{=K0mR^J9_}ND~*{+7x}8 zM|^m2-F&-O+VCW~Hc^W5;$Gd`A5!3+19rT`c;Iz|R`tzIn=(t0J$nhlBBra4Zk2{^PlU)?! z6MhiM(ubEwZqW-d%YO`ra`Q6xXpv?TEbCRuQ;)5}5yIe0EAI_nsju$&X z(9~4uck>3gejw*l*~jwve((X>-QZtRBtZIE8DoH+0o6cdJtBCU*vMOA!G7LJz8<7z zW2?DIAai(C1DX?pKRkFD^?s4t3({aYQ5Vj+Kc@6X83Q*M3{b+*?f>$QtT#@rMYFSu zkLN;9Q<$znPS>;J!T}j5{MhkhXE5VUAtpY}x>m-ErUP@2Q{~qY#>pXpxZm>4L0n?5 zyUt`v`@hdpS()y!eS`!rUl4)3p6=yH9-vNq|;pM}4Dx)9%;`NbTFTX;@@FnN%4?$}%I zWxxa@VA@Y{*1GxEFf4F9H;QrL<|v+}tI2QV&-A{(uO8V;i^%FcB5oi6 z8MxG}vT0bjuWdiOU%68pcA7)RkJO%WK+3Z$L;BevQ@v&8=)VPJ49$q9JXE#7$P83o zP1Vbres8Hxk4WV+XdrC!g2*+y#b`tjctnH38QYJO?P6<8$VMT+gC{sdpn*QMgSIivRq|{1Q`DD6;B-1f* z%TQ#-o`1Z3)FFaV#F`v#94hCHH+4-Z{44!WpS5seGVO@ADPOr2L)ZlQ`cIMgq3qHur-$C$6gxPWWpYv;|)Z^IYv+gbKF(Hxv!NS2}B z+W?P&{~0jaLm#W-ssP!C@?e5+T@fp+VvtWr8oGei+V4hcZt( zAvpecV|6Y$&G0=1n~}~m4Cy{OhArM6b;!{G6z6#1%xCZnvtviaF~Yd3ySPBkn?5yB z$PG26H`6NoUOh{uNwjHpdclm>6!!yW$$rXO!qL`}3KL5)ksbz4KjYSB>;=>x$R{^r zl^FD>>T0VK(cLWL*I=|~-&k4iYT;XVuTa>sq{rFDVT^Q1dHAT32m~(Ks}EI2?_v1P zIyAgjA<$;(2pRB{dt!jPsEozZd%QV zY=iX4r^%DaWt$m3eL6v|HVIV8SfeE!E?3M^hae}RP^=LRPN5WVrwluzPXI9fnJ`q0 zI&V$kw0Ut=`|(~x^QP~T*=QX2$;e!3mpmj?zRWStRiBpsI5XKWtr(32Cn0m3e zdH4!f$+k1Dm9y=Rk?pfb$F#FsNu>aDW!BTBW zR*O2#^8DAoZXISR?keCS?Iz98C;iNNW0@qn3bPdLHt@Y&drOP2r>TG7)Q82O!yw_!c<*P)FKAC1rxA?e*ofT-!%OHdz?6h5e<4S+ z+(Biz!Ygf-`K>HWqEy_+_PYwiK19!N4yInT!mjue#$6~>yrr#ZAukp%XRTAuY`sJ| z(&(qXM2l66*s~%z%a}o~cash^6kGZj$+0{VCg@l$wOq-oEhNVFWaK+BKgP3qS$USj z*0P^`%QPezte0K)BdH<+SHQv3w4Q_9;a)dXr_6y~=Tjf-OnNz8o~IpCqsOa{mo;6V zYQYC~L@OY0cA$YS7ipN_lP z5}Dh0voa~r(7Gq6pt!Jq*l8G^C4jCf?3z4bvtha}H<)ay;1&`;=`jYJdSDZD^Zhvx zs^2>MaOwCF`s;e=8QT*`&@y0#&W%rIW_0$M7meq`JpV}+YW@-h}6}f5pq77_OG*+YU-J+mtc6A7IFb5u?{2~0q zY-#yakrjJMAuzj*?(}cyFGXYX4lSF-Sz0h-e(cHG=rny}h8dN0KQs~}cH1y523-C#^u-UAew zSp!64each|*$}27{L_+I+Vp-%P9#@u!CqQ~iYx7~cFS^~N#-3vA8lw!WA3-WkuP576fWoC>l$Kj%Dl>%SCbF9vL+4=^2A zyVP?_AH2%$u0fcgF@VCj?z~S+YQteLKFU zNY~>@v(V?W+{rB8qk&P#+oT~Nl$Yhl`HU@RvD=A~fJpA47ec*d)3A2hg!I^Gn{5F` zL;=%I%g!=!t)W>hR%vT=Si!9QJR-XFrm{7y$e*`e)T&vR3HzKh95Exj8WRIioUd*= zS--L}^?aCcYqZ8js)tc+v*Nf$1UD1gk4fGe(j%YFW&N#f2{^eoynlBNKgp%S_9X)A zJG*k|FGcivt<}Yf$~k)vAe+2a}r90w%*1;l;zvwwj$$Q{pi@M65nix|hXO z8N9R+^(vg&AM&+3LPH~sGXDHLd$ zHT+v`YlKk_5~cqufurs#HO?R`QVXp?>*13MA^ByEJ#QLHoZ@tMd~524?2TZ$w|vne zS$#sot|@VDLANrF5!M(5@OiykkB$xfHiq)AYm>@aAybP{Be_!Z@lX^ zteddgeY=At@L&=8bTfYJ&@f_xk#}9o={aI^RMsTsk%8=&n@!BmE2vu2JDLof8N@7X72ep5cefuF^zBzTe_}; z-iT#2Z$7>tpNX$!!+YleKtOkFiWIvB7hV?1QKzNUGN6BR_0-N8gJn^D^P8en8G5|s zxL~VPbAFf@Njcqmv7WU0XIZA#B>2&z!<6`ZQ*Rs+BV-9AOj9>6)(`~`PGfLLDp!FM zd|mm8BbjHvD}OQ~K$qvs`aCWE{W{9~Z6@RZA!fV?vySL(b&3X8DWn6GQ~m4UrJ`ZY zP@_VXjlnEOv8a@iRjxE_JyW6O{y}(Sxh)dl9~vq(@u)DfySNfwwb*_G^wjDobwWM~ zgB~>tHuU!&+ig3+BYZ|AwL$T%O;)GYo_cLlg3F605&u@dJsmfyBst}7b_sgb?i%?V z%X>q{v-K9}CE!*-rV~KX_X{C`RX*(4^nN;P z*@y_EWLLTi>U3#@p^SS!|9p^FDT5xy3-K z(Iw!<`H}UpWs~~Zeeg`xsNSKX0Pdgu5?YyZT0(CXV{b66&cdyzYN`uj`H##4*ycll zb0s#Eq4-wbLAfWml?v7Pv8f0tvB8W&w1hN;r#;L_+s|mu;M^<$gRSBzqiFBb@Ba6Zt%f)z3$9txD0P+V?VgTB*!E@ zxF_8U$U;}|N>vrzfu8`w_2Ug>MOS^Nlp8(jgOe|ywl%=Ad7&Wy>gwuFXbDBv+h1@b zVXqzyM2k>ZOX;_CWbQ7FEuYfrfX#aY# z&;Q;6%v9-a=lw2D_&3bm;UP6I8ogF0*vsdAmO#WTSP9slrI&FZgJFAF)Z1I8$?mCx zild`nKgd1H$Jz3ZqYaF4SBwXEcDA^BIzl%}d0?&UcgKne57GP*`NWJ;#`P%sN;q(m zN8=R+VB*d%0$pylX2pE?m$sM!H71;gn&iBhAd&X@W<>{$r}ZYEVSt58!qsw5r)~{fwMu7Ht2GZ>rW&)V!VGnpp^wl5g2>A=&gam3Ct!}iZ%W^&?hq0W z!lD1e+hA4i2jWINmX&1DRS#z;sxV+P%wt>F@DK<+Z(Su7{ZOEIY0W>m7L>lttHkxa zv!H7%$iQugQhuj4&fqjWD*Nh@Cs(HA^Oaj##I{ea+ZVLbTUANAEZQr?3kh(flRK@o z29O9!``g%#Wv}^H6j5A)`Cj^ByXeH~03{2omMfkDV}hkup}?^MO(^DRNgRXO4xM~2 z8dI`dhAAGGtYUJJpJ6*n5`n3$?Q}BNr_90ACokf5b5nrFq=zT9@HpnpcL)w(g*CBE z7ikXC#~JD+$+TACGUmhmJbQ_J(fNFn`*M1X&XRNOq5q<%4WTt*ijy-faS= zKhZ7`HdJ592w>#SJJe-<7Ou2P7TT$fR0deK0v2Wskk?$_2k5jTChWTCqDr8@W9S6JPc&`YMSd73KbSV|bX#*x3&Jg_?v9*oqG&d*xK0B~v+pY@vdn{cta7kz z=27q7&TwC1f-mvV*Rq2G@eO3cOv9DGZlN`fy)}XgI~R%%xC<3SPss&n)sx4Vi0DS^0C5;$T4&Hz=W>W%+H=_ z;@WBtv`&@B7NqqD?Qw{7d8#XETAO`2o(@q{W#|U3;rS$9|gyh35yjvYPsriX#vUxG_>u|W$1eqM%aaXy4~eDc95TY zaBRY^BlxS+@paNmuPUYjYLfjrR^NKjsi*ypC+9&^X!-Qb{bqIsLfW#}c`rT5BJ4_> z4gcSNzFA$?!6)wdKjS=okWOqg>8;N;} zi56m65eVkDMHOoKdfM4~+ruK{bqBif`gj41Qmh)wtD=u4s&oUpy)Ws0i;>8Gt!s}~ ztk^(WHIe$oQwY~g2{jA%nwqwQq07MZJ;~u~h5dMsF%{upol*$8)k5afBpOgcs&r$~ zxz7kK*FfwKb6}KC)#}ZBy|?1uaAQzN1W)?(K&Vn$mTNUCY&7*oJl9=N8&4Pqlh7;> z-kTbw`;!`;aDZ%%iwUTfVEBQXjS)1zwB%}nJ{HV^p_H- zrr>^nCV;ioFX;&I#4Rdiny_xfZ^9&Y9CIEC`%IWu&djLs!;5>ShcUXvSt31#E2rKe zM%ROSPminwI~(ypI(s-DdU%;Rkq}lB?)XSUua!T)k1$f<{p{S?|0mEn3Kl=&{r!lz z`2gbp8GNpgZHFp$zhDWPWR#TR#S>ia@W8^ai?_G4e|s=ta+4yiZ@FtZN|PUNa=LCF zt*%gRy6;4GoSXQo-y+@bIYvXe5B3j20$QDWAd&x{r6=|0oA71GhO)oiaV!$rd}7Ku z$)wx7+{)2Od}>m?(yuPg z1OlH42%u;68!G7M3!Wm#uA*05PvT z(y|Z9nt~mAGI4gsEbWIRyNF}xF?XFH2P_W*lf^w*OKFN4<_S9<(}##kgN}H;NUM;L zt2)vY7y6pZgaO7(Mj>_7%ZgEAN!-=>cKsUVvC7ayZBsLM`=h>!{{)D2ea{c-36iF_ zPGT^km80TlXRgRo-+!-=o@Zvjh*qx}hn6JFkZj?Wjx|^|!GeBd9x#_TiVP~GsxO86 z=c;8WGUvdRJ7sKemYi{ih2suQJg4uQ-q*?Sl>%&w@*CX-Tm0*cg(r0axnkNKr>v6B zsVzhLGj*dBD?eII9-PRk@8Ucuz~!&UK3>vb*Mp}S{M!K2P&hNuWlFi1y2HF>e@;R2 zVJ6#~ZB!ZlC+4I7Su%y5&-tGQ!kpJXubwtYps}yg6gxLEW(IO1rW3QXlbvsi^N`RLx%hl*8P*&JBH+&L;vmEBV4!c9Wq=WlAIl`E-RVMex|t|hFCVW*AyZM zI5o37iuj-3a2x!8f>ddfnut_=*wVu=7U z;B@#hEYi&FxRO)>I&1o_n~A(-62xupm@-s5B(8>PBv(1*RI_ZkoVkjLq?gpa#Hdx) z8Nce_hP>_!5%|58BMXF!&a=`{8QjmAdKZa}XjFty31q;lM%IJ@1Fas7EfQX=5khu7 z;dB+mfkKNh@!>2k^sg8Wh|xI89MAQsYp7XXXQA(4A^9Y7wu`BhqZLOo;v-ko=v8+G z;jq7O@L@(w&90Fq@pn5#$tRxRQYXv{!qs^_(h$)FQYKJAlk%1Es5z3j3}Zub!99#P z>2elB{qnV0xa_30goUsck}-ooaAv`gmH5bwc_^5!qUjinG)m0mOn3Z~yNx%PXs+N}*EtszJ!e~(?&$F9PfEb=tdf#k@7Eght4GVGfV+ z1itEZ?pn)(*_bd|GB2wrXR0Ooi1&AqR=iDN;lP4|zD+%$b=KWCTdGFIq5e^m6A{`B z10mY1z>-&-2+4}34)VANS z!zzQ0927~_Z7VZ(E-B}F5G#ul$w=+rUq~>Jp#bbHQ1)j^5J7GQ9MO%qaE_uRrP+%@ zQJFe+H_n&SoL?$f_Sg0kS9;XCGPsUDDqTT`q^24@WpUu+_M}doxcs(*c8ok`0yAu( zwy=(MpE3*lXcMud+6YEIRt}G1N;UHa)n3kw+coBX$4Yiw$J^IwPmHq-& zy71m)CLf>Vja+?Bx4k+In8?+h$ex&dYCYjke{7?88MT%YUXC(M_Umf=?-uBXJbIh@ zSWZL)<}S^^q3*8Hy~_NZu?2)! z*EUG*9)E#mP3^RY!1tmMQdj|f!rJA&;8c=wGi(-I`W1~!MsI3eb5YI;xe8X6KM9J8 zo%KL&wv8?O+R}1YN8shKTf16QxfLpVHWm+3l3oQ;wONYhx-zG5c1ZzX=)2Q$Vn4O! zRm(aLyuL5^vozz^htC^8!niAW-=Pmmn@R@d*w#{Q2uF(4>^1MoFHOW2d!us6Y zx|r3nLAA-YvM~IB_zr&JO3%#K2#sD7$#RW;bP#z` zbhjUUA>P-@iJ9T}Ou1s0t1q|6JyKelJGQpzC{u9GB+BBCe-`*8^l!7aOr3l z_$_#%{=ov-dh;KQ&BZ%Z->O?O=ZmX!KT7L@zo;AVeL3%k7m1*D}rL_k<{r-afd&7!-z zI~E}z-QC?S-5}lF-O?Z(>$`oQcYi1Qw~svF(7EP)&1?L}82i7Ha0!clin-65s_1>i z9n4B0$swF0)9`bzQ%nXW~2++e@{l#BS}gP zk@jIa8(h52Zh2@2*n75@CM*)`Vn4CV{D)@9rIC2=jCuxVV%&2_+Xe|-pVTo6LLQ2Qo`-IP zypzKU;{7EbGDd3^X1m#rB!PN09Gz?|G4W;ta4JI$3(4mVqQw#)_Xqg)X2@y@9T zB!i&=H|b0G%14ScaXj%{&^J-sc(<5R=%9tV5XUAK)a4U!x!c6aF&k>Gz~^y3-QyLX z<+!%b`qFI5U&Ry-ix_V{8~x%vsY+6p(#1Qp(O38WgVhA$qkpnMo1I(Ua^|fYP{GCRLg|bWJy` z*|&T^tF1!iGT6ybP{&=EBq?o*o5HG*`68@uZn6Y=vxss;g8QLIDv_B;$!t_7JnRrx zuP66VHL%-?Z}}?LA;3jR*)o|;z!Y1`-~lyB&UkvtjS@$yJkXFn=VE$z87s^{M?*I7 z_dSmOqU#H_+8k4_y+R%T<7aKVPe+tJi0nll zFpg&4$(L{p&a%ayXl+`sze!){hZ1=Y*C71;5&ewpF93Uy^R&Fa(E zf+y_kDn-Z|B)3J`ec-%PLLJy-BNJy&O-=5F1y`%F-5Jz7WVW)AynrCJ zQS)B<>J@7jOP4XdgJxyfQCyCa!(u#j2g}p1O_lX5dA+MeWiEZ$!-8;myll;})|mN2 z_yTTkCu<~kBc}9%&h95bGUHmn-H(?qa5nLHiuuc!+P8$yZi&G?CD&3GH#Gq9=@j;t z3JM$USx)(2{Ls==h4@m2FW!JAX`|_}%ZG#saqLaq7()He0p(vJm*4}jYu+E`g@L@O z;Ab&la8i=k`Ys9`k(rNT(K}2O`b7)btkGLgx)!|z)M4OFuk=*F8b3kgTLd%S=$&eU z)%eniK2~BAqQz{?GE&;&X$&KZff(-zt}T=+)EM)JV9?n5Sm(u5tND9$^i5Oe3PF;- z8-rICPR5LK>KP)FM{YbMIvN`7E~oto^fIcI9_npaWjR(1B0`qM2waYA%d6`=T@BUJ zawEx+1%vy(yJ~^S)Ji<`yYVfr-4a4RFE=vy%!1dW>=*HOy_eWv?swqYv_9ei>D0vZ2jtGm0`bpBn4 z@!;lv55U9lo+dui^V7)2%ihH6_3#tb*H!D|ho*2r`U^=~+j#L(}Qc)u>M_Aqa=S z_CKcXzs6 zG$!eLn2fP+B9^Z*1CfJ594AROv%2SX`ZpRwvfruSSze7(vaq+_;R=N+UeU|vBX&xQ zD7!7mb4WLToBu<}^xh7)6;UHtI+!|0-NTwAh$zw|Ov_J3Nfx9rA`c*Hu)B_#> zFMunxlia4j--i?X4~Z=Tyt-$}+pgCqe4gX*nLa}US0;q`8GO*mKi_@?#NC;(2|^)5 zvc|n3lS{gT*Az(9++~xax4wARTGYy`S63&-?$PZ3N;{vJvpO-`0+@~beD1w#?nm3W zM`oV6P^qFJiPzA}E7y&umzAkK6+1A9}q6u@?m0Q`*t#DH}|Cs#5}8uO^Ozlbec`{HPQz5Qm0 zD=?$9VH9_eOyj*}`735Jy3um^FM)tsO>4Mbb?T4re<|!zN7LCQQ-;lm?lmLc*s=Q5 zouIcGZf|sl7q_hzuP7fB%XW8Wh?s_B{Hjpr{5sDm^#(eh&Ucs$;yB_$`Bu3_Ku{?K zV^v|L@>ub~L!n|z!;xFX@S7SKIP!``=_8pTYu^bNY7fft--dfuF_*~B? z)cd}{hBIGCj;|}`X9@ebmw4Fk*$Jvd1f)YY{K*j>N)v;Tdot>R5)DV;!Rz_rSJlgy zht7M;^$BGQJC^!hD8v0`P2x@dYx~&?Lrk6_n(Kbr z$Bo^3#Q!wiYOh!E3v@VOi=Rd}q0@9>3n(|PosZUhiId1!S>uIy_7f8glF3p!1IBq& zd+r}5R$A7|<%^jCq?7~X;Wd_GTy42w2IS(U=aq*YO3tQEy208V76-#OXG#R&E=;L*u&|gOnk44R*=W~ zzJ=-d@EBL4<+cc8{)XFe?y-vSvm1XmgpsH##Sx) z^}g8A_I!Q(_VlzO?LPcTDOi!77`IM~wG7w;D`HB%6KsFFgseUNC0|M7Zna4o-rrZ} zUCUiBb>_3_%nul_I6n4#dLp+S1(aN=qN$@salMHlJFw#)f|>aGTuI(MUvmoG@AJYg zo2{364eib-7FO0LUs*4zDwZ1bmHdI^?1aZtSeSIbBGk=3*3EbpZ$d+w zWGV|{HXQPlC0yUzm(6F6xioU$(Y>nHiI%#=BM{fF4jTF1UTNuLi1jEoo2UlAELqjg zoLB$SHp->u-gM&7V35@FDxiqj;b0yrx2sm=PrfoUc1KP#cCYhm&lCZVUQZG}%NQp( zc==UiOdIV16lhnPPNsFhXm_?JVJq+qg;Dv2wzpQRNk3;TUHiSkPMgeLJZfA1MV;}05IiVab!Skyqr z5UK`vONpm%4466^&975)jdUy5cUhiiD-!~LS-fU}1bex`z7xm4i_nxE!HI*2Bi)0z zF(0j$18>j2yF>SPe;rb_J?gu*btN7aG!_1v_oFnQJN3zzxB(!ylZhznEd`Irp=R6K#HI6Pk!&zn_ z8QkaMmoBWAYt`7;?))@gF#%IYP&#uM`FPB2>+MnvA=lMc8-D&qmq!Q7rZ+!DDz8&D zx3S*l{B)~(w)${9es-##bdMk5w|JvS`W(h?-H1ZKf%}HV2H$TKjRA23?mA@I?ZURk zNU_uuv`(euU|#B5u1+yP(_~v)FSzD1^8LHA`e?0b4K7)}v59fWTlF~QuT#Er$8o0> zV`+;d5_Q5!HFNU!{fcZP`YxL4`N_JOD#A>$xXH#5G%Ge8o47(AJUPFD`)ltQof+Kr z5=ARv*0OW7-scNo=ryW(tp?`35Gvm;$1+crg$TkD#-gg^<9(V0u_#|$^N3meWD7ZEH zWI%nxk2p>W1*;<-Qbk@$2n56Q>L^^lVFhm#(FQ6sP)7MlZTuCFjT=R!3Wgi>EprVd zE#^v9MnMXh*}k6#0+xVHUc2`JbKE7DUc>RNML`P)+p|Yt?jW`;Tx%4AGW#ullKS38)UXtmQKD`$B zORF?)Z_n5f;Y3)*v%ZUmJ!m*4Wq|!iz<`T;KgCL$ha+4Sz2i`0B$xuLTKhxcteE?V z>nV9TY;>THC+RSGC@*?6T362`Z= zy7m^;HZmf)>~f|uzXZkMc$}Ei)**wxL}~&lNn^UuKfr4r`Vf|s=}xILNF=gy`)?kjpkuAQ>^#kX^iGlP z{^yC8ww(R;yeNKE3O_IEt5Noew)^KjZpaNiQ%Z%#Ua5B75QEtv7PSi3Ah%kqdkyWN z@?GLwaXkliGFU(G$4@Uy242Ud3SQtnRJ>+=TYRrj0AD#$earPt7fW4%sd3;==q0Q5 z?zL=zjE|uY+js5l-cV}ZvTv(+Nw?MSET88iA)7Vemp@-IrMC}GYcSCio00L`OGbBx z!)|Vb31DDp9&bv1#SVjq{t3nnls1{lFCExYqanKUq3)8_OaL#H8aToPgd;kN^>->C z2a_b!rP3M}o7Aft5;hjboeo9w#K@Q!l;s@$0T9GI9RU@a?K=0EONSw+HipT?M#^rJ z^^rg^^y%_)mc1T0hPrE=TIRsfauBXa;%uw}!eZ_0QkPrlalQ;_=}djvs--*}0))Ur zN5WFv*l(y#+8BHa+jBBLq8(Ckel+L8=5JTOGBHz!bZ)ISl`~5x5 zeqCQGm3?b8KAR|k;0!)NW%Lk|pyN?BD@hIp2#nQd{?g#-`b%k*FXaLiPg<}NqYxADlkBSH269r?I&PrlWZ zN}?SId3g!nlz<5BOlU3~Fb`mxo$2D8*O6bck56$GO&u7qKbk{QGu%o3&j#S{NbkgL z-gykOz=OTlFXXL{nu1r~DEvrN$1j*3bvGX8?>g_uJ74yyDqoKRl&K08-I#G-?1goH zyY5P&elhBj+3E_<93*VAP=qIkQ68&=^8pmN#wFW1{xOR(b#tyE%oYXK62p*(?O2h9 zWfF`+3UxgOJ?wXMyF8T2Es9(76LSiZx^25ws$ThhP$ zA17Je949lZY}er6?mRyVCu&3wF_ol(r+%q7Yj$b3$`Xbw3=q#;-ny|6y9~T=&B^+| zZVtze(`HIGkJg%_{nC9k2z>{?@F;uj+hU!7`I9?@O&e*RP zMunjiT)I#W#PX=wgK(rI48?T55bwt`k@9`!LJp}u<3Mz-r#=`@l)Z&YW}u146F~7Nm^$yL{h!>| zl@>7U8D2YkC*EBf0scJa+iPeEg!FmTxfb*J@Z9v-{rKws&M5UMsqg7T;yK*$*O>WV z-lcG#nrhwt&pg9UPj#LYonWuT>RY2J2~n%1yBB1sh%WeWByH%xZ1qmdL0PK_Yv zBH03mGDf?zVxbIF?!vq=AIo>BMzXUAl7yyQh5Tz^@{=J`2f9R?)C3stq&L^n`U=#| z_MEAD!RSYrNJE1Sx+k_T*?oLp<#439&4fzpm&ADuAiC{t+1vNi$oIALCT-!yyd+c; z^BX}J;lBp3Bi0UX^P`j~QtPXWD{32WB$Nz{qB)~CN?`<2itHnO-m=JSjv?+j(TU;W zu$0Kg!9KpBu=F>OCt_+vc(sjKnPh?& zJs7veKE#PB@$D}~QT8zAejJMJIm;1l!6v{Prh>ek{aKCNw!wl_%S=%0Sq3RfU98B7 z3a_OGPNjQOExzQB8k=>i+6jlp%Xqa_qH>Md(!a5B3^W2Zk z#tdc*RV@f@Bva6s3;Ozy4HM3$Dqld^LF7cU^NK1NHc`zFKe0`<{NA=jdyUx02%0fSAH$1(A7t0pnx zp;$;*#-DvFThAx-Bwbgq&8a5m>pZ{T_p3S8i%2yK~M&bOXzwle@1F>ALA4oD) z>o<>ao<9bjO|8douBZ5tX(sArgPk~4_BthEWOmp9T3{(SUltN?!GIegrV3_dz;Tp` zNL50l`Seu*2u{l_Tby01B`}1`rTfY`!n)^9hvE*B5B%OWjykmaJ+QdVK;^*=`T1DA zAk6<{uR&UD8*tn*YBv+W!px!$q~K>)y~J+vf{lg2Y=5y?!0*Os07roVtCLP%F=Y z#=KO`c7o*!7uqnrDqmIuxOdc#s@1rm4z)S}A;4V=B|JEtQ~yKsKbr(e3XI=S&70>K zvyD7$e{NL@xw_2;uZMz>f4-uc`sxBA3W;cCrW7f$+%H_Z^_Dgj@Y5V&9z%AtnMu>! zbIJ-dzQZUm>42r`q;JC|pct=usC4&GN6~nMzNpNM;CDsKcN1;+6fB0j!X3f6FQ7DP zUS_x#VLO=ODLpQ-(KZ8d3c7lVEf}hGT5JR^&{;J*nbUyq5zu|t>gj5GPG*8=XKWxP zn9?n(92BB&l0vPC(2z9BCOKvxJFcgeI7WwdVbrgLggB~{lsHk`Ec?@fM|sY*h5bbC z(wZwKmS?ya)r!h=$4M4HjNuos2lAr9Vm6{P!6SxKvE=dwAvoeMSf7YvIwB#1Lv3Zs zZE6+r%jL6uSO-jZekV7(`O6rqwONB|+lVxD#;FxIb^rEI7$nLB8|oS1Ay>%LFqyk*ykAjeqr1B*-EjNISh;QlVZ6r*2JrW8fJ^$M)BkHv^1a? zU`KqFGodBtF_9X@ubq0^#7~B9XfbK;W)3L+DtbKPy=UrwcMzIm(niUNIT-hm*#@lk zN&zo8e%#jJ)A{q|{|Lj=1*Tc<^An%l4K9Tuq0NzHD{YAq1H4Pg18X(de?Q+9Z#YCX z2%Wt-fpV` z+<#AJ=kwae>s1l}$>ftDiq<+y#D!^rP)xRz)Iq$nhb$%>_Nc{FUqK^_s4zGVZ564E zJ?kGf7j`zl6$N3tvVgK9I;_kYvOtaYUV6`0CL;EXhmWEJ8-}x$_{9z)xEU0Kdr1ZuGpwz&wXQnrL~+} z+4->LIQIdr9*wO|QAM}LOn#UKF`YaN*&)n*qMs^%#@m96G()!vp zwDSbTW|F(!74oH~==bT7zpq1ZlD?UyFcPS~TI8twz&&87It6pVZ-zlE`{pT5#wgiaeGWH+p|6Ai{F|CB8U6YAA?1ym zvjSbp?q%f5<+PSkfc(2r;+C3U9yiOw^~aNFU-jwLzF0lRz_ucu752!Pm!eozm#QIu z`VC-#9WPG{x}G8TZ(K3ydOL1R--#-i%5@|Po`m~0@g3#b~YbG zgwQV?T_1!XwNtV*rmeYka~D>s|6K!vGc-Qy{MYO95}xq35s=Rh3r&S;-JOuT*7Nok zSxOwneDst)zHkI;rH^V@cFVSC#XRNe*7N+y2@!{EE&|xh>(yH;MMMGXv7@08{-R#>Q#5KBcLx*IyeM@lM160Zk%F%0J$5 zoS(uNk4=aAf5Tfeqr{EGN*IW}M_CVNsG{n{v@)zvKIihdkF44t06()W3$t%FL{np&rm9pV8wV!b!IydD3;@6wc73dR z1KNP1(|1MVRHiU(=|IC0$+sgI%vB7!?G0Xg7H%QikRji33*@8_2>oGfRFUGA3@PdweVC`q2>+mQ~hbc#AR{T+Z$5mFjssJeF^BvzA(S*F$_!YeOxVJjT zWE)qJ`dZSuUes#u%%Hug(3x2g;e%1jSS#|UnGgRh7plVU-7QBwuMy58ZT+87v}S-& z4X!K>?>C4vtD#m(_e_q#?#8}Z3Zju zwY490vr#`oDj-;&uf7}u;{&kD3H1~I-bbrwVTS94=tD*H-MD+_R9qq<-ixxY$bkXY zx$)SAbiYO`XSn&W7=OC?a9G3287;eXgfBIvHc|v8-$?AciDHf!Q)a(Aiw`0@SWC0F z6!db|bbRY91*`3!J*8;K>8Req2oEAn(fM{?Z%dw`rDZr-+1c`RN^jo$ zmP3T8+M%Vv0(=5WTs3#nj9@DK*!h<&QN6EVOL6j3e<@u-jp6Z(wUt=jwqgxc8j^dLm!Pt^3(GE^v2OoB`a-Zc5I~odBqbyT8U=1!I zpGkL}BSO3|?(;@K)FezAzB5N=mVgQe7k~{beJbv1dT=(sU*WL?Kh1R<-08yb;e*R#2MuOQ4k4muCU1oeN*ZoX7oxQ zQy;V-bK~*O;nNDRNmFwWPxB|AY3heYbef7QThEsu zK9%J$$-k|B;0Dm*sf{I&d`ZVZ#G_?D0!CVZUk&Z}v9ctr!i#5J>WAABDQ? zhb0H04OiLsZ2Bx|(>y6HlwyT?dV+!Iu*C>vs_mn6<3ei~2N2drNsPemqf0v;+(^H$ zoaWK6OhaD!{`|=(;t-DIPxC#h>z>em`-Y=!F`>i_NQV%9cOrf>#eJ}K^l;y0IKYcN-?sIRM1APt)bLWhPuhvR<#FPncjv4B&q=;}%p~~g z_rA>=&b?)KyD{r&tE>uejX!1QgeowlQ4eIZbξ@~)(PcS-K8K1u{UKKtF>MZk}= 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

    TVqMr~Y;$qfgXP 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 (0PXv_c)KAdvW{LGM2 zmCoj$jeH4%N1ZUsNNswvF^@XP%6u3iWLmWe_=DV8)CDcToqWVwo3pX|JU0iQh;i=_ zJ94y~=chRR5S&D^vP+R{>OpaFRH4yAu+9|WiWVD=IB`H~T;Su}oWvT((a9H*wcFQo zML4NB;w*@|KP5KC{mj=ccB$sZ0$~R*S4~e5AbouTE7#W$9M2Fdq zD%pQ(t)_4f9stPxg@~VsvPF^b)H?oRlzs}AW2H1ltbEx6Tw=s4`(&F|k(K21O2zK* z|JD8SB*Uz#CcUZK5jpn>Nx0`|c<@8`&x1n1mSf@T!2Sf1lq24rU`92RmwRfbVAlC=Ne-gxUj$iIM@TQ|-M1^Se zbp5Kmjq7Oj%#UCR=k;q%OURmA0Om~0M4dfu>0S^9Za4zPf%15jm#KY_TO5^!>EXDX zHO|eB%`f6~19*Z%dZziJ$f5AS*3x7uzB*NJf;>*7kK%3VtJt;-spEVhySl3mRh^UV zhOaBElq6Cde?HS1(#RQq<9MI`_U${O4@>kdFl|`zvR&8I(z5;OvAZ5y{r!!u_T_Dl zc{S}YYF+sH%n{rMS+$FgC-Pb_c4To6axfnJw1MI@5mnx9Y(*bI7}}(%H`w`6w(3iP zm!?Pzj{p1$Oxw5dCX{fI{;VQ%t9p!)#!J_)geE%_2I(6)R4+!;cD& zZ?T?n2+OKWzJJRSIGBidmLih6GDPsQ2RmQ7S8=-;C zyds28rCK$z)}SkUx4ek9L#H3wyWO;CZ+hhbBXONp($vPfTdUkXfTO|DFsR%Xtymqp zequ)BACc!yG6`=2<}uk;sd54YMUYND-{7!Aj~3-S7f)CJcmIt4e<3{+y%|rz6o(o~ zT4(mf0ucf5)6*zFT~U+g@PGeL{pk_TZPMo39TpAYm9GALSyPtI=#pv8bY^0 zV%w)24c}9aVdAL7ufGYO$IqXQ>NtE*U7J6AlYO_6IdVB1RuQss+&lNx>`q|RHCg^K z6I3(wldqrFzOg1m)y0zoS+SLowxqt|rUvrvNK);~eP-6BrjmJDx&vs6+5)_WBmh16 z1salHHwtH<{E;E0JV@?dR|M#RHP~%*QaJh>U#=!O+yM`c%>h0M!z*=tv86aXv+h(M z{V)H#4TOy1-(ZcY3EswK#ZF=P+_}ekoEL1Id;KaJ|Jwq|q7lx=C382Zgotp74ma6aBv3e5Y-u=!xNx? zNQ=hC+2&UY#C_S`BH9E+9^E{G;J$7yt*gN?$8Bv{$M%ihM)Wi>dH*?~g-NUOh`CFS zeF7j2lDn^z?Fw82pA{i2ZyjVt*nbhoOdD$m;+r9MucXPml`(edXt>)%ZY zY1s48EiW%Ct28b8VGbRvTC_d_%YbeIX-nNF?3b=Kq?D`QDEL;D^(A7n z7=k;ud^j6hg@r_Q%V$@%?mbmMy{tXWpQ$T7!SXJ@_!!ErnjynN7&Op(ty@k z_e6Nc&(T_x#*z*qK~G&%4!k98GDcy5r4_4Z+&Pq#=t$K01p-}s7Da@uPCfO5%ST6j z>U0-@ivM|(16b~b4&Wk|7mICDa7OE-y429Q#CDs_ZA}hjn8o(8ZMIN|2NPwKxQi@V z;aQ~`4MEfI>)8wN%mZr%{Nz(cO;3#X)Q_ThP4C){C@FKCGfJ z6-85c*JT%uB+zsSAx7oNr#p2K%LUD{Adr5aXCGwoop0ZALTW>?75>Hb!`Kcz=K!={ zrK1u@$9}c8^7MH5Y4lzA)7UIU8|{rSWY5i16H4^?&qip~%;{E`=ZiP=He+Rjm9d0d zFa*jbOF~5a=Yrh%2*hNv6MW6^6-||f6%NfSSx+|e-eFS!#l^?T9TUpNujnyxZTP2d z8^rPOu#7G|`l;*9oQK_|8YCS38k&=(z;Hh~xiZ&cvn|Sc&fzOQJw=POd{y&f5Hn?_ zvZdkGdF-1dDypmIXG6ZezA!!5;UNghtaQ{1 zoc*7gD%`_9z0i04Ils!8ICrA)8Hn{0NaQ~vGEUz5G3>74nPU_r%Mv@cEpoi$r)z)( zMzEwH_ZiFeJ4J0nP{_=5tJen;!j`Q1O6U5=2B<9PU4o`uJOsa2XHY-B z{DzTF3>J8=WnF*qmL*0tuP~bN>L3yI`W#pFd$*?y*_&Bq;e@+=8EMf2J^!mwZ6*GC zAL)iDT+%F=tGZUp4hJ%2Xz~&D3_;ypb?Pt1pmq*p_eL%JP(PRbg-_7D$eZ-3HaqGY z-QUpmYW_ryIl>HE*PiB`OvMGH_p;>qzX1j1!y}!n-PO#=G@C~S!<7|n$0IwcS`n)8 zF~_iOa7Sy!0LOMg0tT?@1!uWp3n$SR+7}-9qF+HTqm~WU3z(XeR%7~b5?`}coZtPE zAU8C~$szB)GI3@r=}+>vShP)`Do~{i*j8ra85qPeydfVSg+$)7Q^_-;e+v zVe}s)cExx8tqlYH*zzJu?^C&JXQs2CoL6XlEagwwDUf3(VA%glhLz)_CKGhj3Rm2X zw4<8(VH_m3HA@`jiJ_45Be!mrJdqfo;lb$c@}V12T{VX;ih?u)&F#(2>2M=TwlnaO zFJ~WNC4&QTy$~ZS#d8mE0Yhs-v7e?;@M-l9fWtRoIptofuuXSZYfi&(c8JkVEXSN+ zjU2h?r*rSMKG6_8#UpHp3#_4NYK@nWo8MZdjjD{sywQ{?oja&3KKNpoq9%#vV&0?F%qquBG2gNU)`R!NyYbM7Ip!D!TQ-O4Q9nC`J2PkwzW_AcA)yNK5U3^ zx`*LJVv(NGZ`l^3hdtEUb@z96sjsTX7Km(i_$dAJz#1{zqS0Uc-S;|>ekzRDgYjclR^_FotrV+lQn71=8yTPuy z^e_illW@ZT;nA9aGGa+Vk=mG`z@q_u_4v4};d6E6GkgILPh$66F2XOuf_v_jbo3CL zdj0A$X}eVs;lVIe^0?CmN(Yee#8qbl;Aa-Bz@j(dlX>IiVC~!5ISBZFV$2iPODH)EEMl?DM7RFMK&}*3`X!#9Ep*VwU`1=OlpRB=AH|BxppO>833B<+BJK&KmC z*}#SW-ow71dX$k72%!0D&Y^rY&Brs*7%aJhV>tLsO0$BoC-?Hb!yYW>a2ggMdB$Od zUGSutshsGJqmy4xd(`DufOY@O24p+vQ|*!}MALf^xiW{yeO>t_OL@al z6%@#=1EK|c-)kLI<>qu}AOEEK@l>6=+I&ZPRbt8ttN+u z$6C_g*sT!zj6>?S`Wfsy|Gv~C*v^Q-F{mM3;Jq)C*QkbY1=*_gzU1inKwX*MQIm!4 z2ei4vLtEQtOo7B&IpT5bkDG_$)MumD?=`K0;_zX<0!{Jez=d&=Lo}Q)&wQ>jGl%hy zhA3lmOcSFO*4@j|?&B-i(GZUgYwr7`P6Vn@>kiyVE9?34nT&!QK= zasj4ujdyPoUJ~tkk!HI4_hgmPSBC-Q1)DiBG!6#4yH!ymnb*IyHWA&mvbFiXN}agr zd#NuP*w9fL*pOMA#s*0{Z&$i z`;(bD{RU!Sw4qr96}R%l7S_ftfxReu$?V`s`mS2!)WN>9jxrVgzu1;Ygn1!S9|@^G z9l!qg`dk)~x$k=FhM|uiTa>YzXy_xeQbe#V1Q^3}X zQ0P}H$oZuDB$qxM9DE}|nuLB@1AKlNn94yVjt#Ep*9uLi#AQ!FY4H7;} z-D&^nY8y}c?&#s$i8m#dkYdB45eA@M&8M6_bJy^(Y)W_S1N1|Pw-i%WPsBM{)m%YQ zy>U0VUMfEFd(>^KVq(J0f~KQ_4r7UhaXkJC=s=elYwi=iM}E?N zCOD(`au5>lb^Q13dBpl^&)vIHMvH~8_u_QU+|pVWbzxYwI#!y4OZBgVn#N6XEFWQ` zm$qSx#de@KWdY0BJv@Gw<10b|WjlVmNqlF#1Iwi9%;^TZ{f9skP zb}AD-+uWztm$81-w!teO_W^PH59;fQW}2MYxTo+5+b1@tE3R#`afdYRtT0bBTtm}j zwS8nvvAJ${j4fR+oq)*Ah2HB_mNh`&Dq>erzg-`@q9Sb0Ut8{}(~L7S`F51ha!YoR zLb3*QI0?NTz5bmN|0sBHD?iX1jGvPgg;aq%yvyQv%dRJbY zQxU6`#SVkq!ktR}0$0ngWBSIhx1C-h#DoN85cbcJ{N~SBQ`P|b!X;R|wJ)^)r9-r_ z8e^Q>!ym=E%&OsNxTq#uU!U`WBf3kcasZa*@oDd*<8MqKO5@<718?{r9IGKU0k}&Z zO7M13DjzNmXW1=bd{#++4gAI&ANP4X#mfPqd=ZO^hXEcNMx|}jzPWUiG_kA;4HcRs z%N;pBp8V>rYF=kjr+#xLhp7^#EM+D{H_UO)L1L)m3i^d<+r-5cyBE;`W5lVSJ^0l9 zkYo^XN0j23>^TC_>`cj;ew!NdLuSkg)TmnpiEm43h2%HnMgCY z8w2-#L&YM=9bNerp;s0X$T74aI{3y_N~x13Q}^XtFW0of$w|tvm6iEtocB&1;!bB# z#E;vggn@uNks)}FyjC#T#;RLqSGzV$pynp_eI|JAbj#-RmPl*6$C2Nter8&5_z{tq zdyA{T@%+!QO@z_NJ(zo~I+bO$GS`s}Sqjrx367L5^g8_|I1V`w%kV25fGt@Rq{_#) zCIF$+9|tYZ)ud%Y;fG?NQZdKyd~Jgg`{qB+vG<{%Uv@1?!#E`+YxUYg7S)cKa*c0W@ z&-&jrg~%`*e$DbUzPeKfKRmXl8Ha$6C1b`i6=ADp_hp}u?OrmDI|Dxngbg3d?Mq0% zv~LO^hq{%m9n?%Cu*A{|4O3s-rOIZv$>N5Clp5aX8E#QK*39oB82H8~&VAbMr1~rB z$D<+G)s4lr2kx1zF(EVX9>x!tfIL^YZp=x0F(d-VFS1iHjcRrteouBdr+F4>G7A^lZ zi*MJk4?%_#T1)Pz}e}|?5x`V9c_V>1Rx-DN@_m+C@Z&N6h&IX zx>x8gFscmbVvd=iE9lCHr|hl+3J2(DxAD<2U*S$)dG)_XhRM~wYdyxgn`_A$S21s| zuKxhn7*7BWt~MrU{7JCX3o3^PweHY}kK6b-uN)0`iHxlFgGw6pLM*~~f1yk=*MN`xf?qLRZ zxvM#uYGI(;q9W9q*b41L(A6odqY~|@pfJSKGk4d}lgjIUYwh=a>IN_Z$YOq;|G%iE zc0ep}*AcMflI;i(Nulf9a0ZwS{;X(y^wEK~m>Y|K-QkYw?^r zs75Lz0FPDhOh;qHtC_7}zH`$0(y;O=0y0jO3%MyqeZo(;FE#JWt0VfKi*VbQZC%P# zjhmU>@#5C~{(vVyL4t*AU7q@o>@^mESz?FFCi}tr(R#VeKaTd>lP!O*3_!bR> zd0tbPZB9$89Kf6Q-Etw<-#q%qJq?+)NQN|D_==r*pS$Xy)&;n1JwwOQ^65QtqaB*o z&qvir)WBptPpBKvLd5V4lGC45Yx8GnZ`8?)N69*s(8J)H#MEl1)6%I5`P7HYe<>Sq zVT{W>ky<^@WZuGvK3q$zSS(CY@^A8+`$nRzCpnZFzbSE zQZz*l%+3zU6Q+M?eeR@4MV2Nu$>p1CmYIG9>^4NdTnY}p%umEA+NBzEdj4KqO!VjR zmU4_x9*$bv9{bQviXwvTe>RL++dwKL``rgVqG%BY zB;nOZ$OGA(C)cTG`C4jSy7yfwDwJr_vIa9g^vAcPNGp}U=_*%Pa9h4w#&HO@p-Ly1 z8_39BuemAM0a;ShH6nof)S;&7+WL@<_!1VWAK!+{tbQbj;FOCtL(Qqj(X-e!$QEBB zb){>j45V#ZpD^snP7WmcAP}7x%{>U20U@gPRLzD@-ARZ4};iu=@=IoAl%Z3GBOqs4rANnUbaDps@ZX@ab8U? zEeAV0?=80lf9t0U6~_=>ITdU;Af*3!(s*xI2G$zdkpG`$A*8T1#T)1V_FfDZY(OQy zuPR(qUpSjv;n$h3)BQ@}B{k6#QGvS9j6gg%np(1wXZk-~#Rudi5zexIdLc_IlltVF z9A?o5WP3dGqwS_I)vbvSBj&^N#L+Vmw0Ftv3p54~3_Xv-W59R# zN5gtXh&{MIitIbV6 zWj{HS1riT;uY+%9rUOUNJ`(H+i5V)ZKqBH`7eGTw@##^tR=TXX%?9le}dz3#v zYM?fKc8Xb&!dm$w)su>}RO9GgXVBjRd)fI^1{jAh$_NfI>6>x6@8SUc>b!cBAwN--s1Uk34Ru7Pk=w z!~jbQq5ay>hznHAQ^TPd_)~d=ZxqHl;Uzc{7kl42K7#05KpHT)k2r#u>oBj3SH(Ne ztifYZO$ttCP7V$ds8vZES79RR%rqGJA$OCr%V$DsMSbdR&|7e5T2?(yji^ivXcJOU}0P9I~ z`5TFQj>Adz>4~v-bIYR#5)-Rpb>%s(DeYbcQ#5yLvjw71PfeVrZA9Ctye~{Zg9oa& zM_EO|j2812=~F)FA$}8NEj#Obk^O>?<$8tRrmfN%P5rG);O-XU4}vH^Du_h6Us z_XFeGzjON@ztp&hG4hFD#g=}Go zogSkhrEoZlhwn4#(;Y;{Es04nDI664)M)7bml+bSz%@Q5-ICkZ8gfT#9k%C=unzJ0 z3rw}w;uy0*~UMQ4JKF(9@B{RWSmDdR9Z;gD4b{>7$}Ju0`}hfe~G`> zD?l%w+IZuG=^XP@e_N4!x12{cJE>5ZD9viSM@AYpY3_J-jw1XNYMBJf_A+1$9hl=dA8uEBE)zIq<{`BzvZv7OW8j>Ei6s4n05TJ08JMH{gYPYD-e@}pI<-tj=osM>)lM6BBZWk zEJS%x@lDu4&t=sSSxdCX%^@Ra1b#2vFy3TihYJTmyXB%bXC z06VtHDkS`XUJsk+_v5=@iEK!hFttb97rB_WywEBTvHnDX)`WA7tddc{c()B*3eY*5kxU5HJGWw zWet5!Z@IGaFR}wWk}L3bAeU>wbx>8vHQWL180}J6We1Oy{H-XgXKe78q}?4gI0KX_ zwwFr1t&dOEH?&1y)h#u37!Bx30pG6k{})jKhQL4G-Dj%d_PZxYo!Vx9+}C z7iYleXKcVjn#9mpR%j@cXgDX!DM+y76k4V16ut>eY*j8gu3Kk@3S8{hex(f3X;9); zkLt1c)~kQES(;eMDB2KJc=z9O{{c3oB*wxFX1`{$QP*tGrTJy$N^AmNO261DjYUh* zh%|H9O#*6_LPgDY-%fNb4kzT@D#AfSG#IYNX%;pjt{{ORf^P86>UM3t>LRfKbk+uX z%@??8Z}i3}W>_W1;yw-haMbp;*jIqmna}X=V#M%)X!D6m_+~gv??Ns6Ur@7vQp=c{ zXj)p_Y0rkZMMo4?87CZZ_(+9BJiIEyL!!YyV0AC;pt89dPRz|7n76c!+We2iin$Br z`xePUl?SUq0`ydW{iVY0=0uJe&!YX=kQc$fL~ZuW4csxnwaew@|6F~uo4D|h9>ReY zmhyih-&na>y5ilX+BLHKUgFxFy0=UmRo28=mt~3xT&JUOl)W|yp->D?lAD9t^a&Tu zvtlSc!oKC^xNPY|5dU_UO^ch}mQPz-)$`k4h5wtXkO{3RV#kKPqIydgyE~f{@dRkPZY--+O3XBufhd00m3sy_DuI$2_MtcUk9ZD z57R;gh~|g?X}@aw39Rag8&XR4U}3Ev-lA{Q*BgD5818`0G-ek4P|5n&`jko=|C~+s zg2l{6`^QQtR0^S?xy*VYptbymNt+v7n)>NpYc{;g-xic%dyS%77!d}pq9D^7h<-w+ zXU{?g1@hlu8pWVm=*JP5pEqAK=`-ZY>QaYRgFmaU+o6lLapl?7$^HrZ=IZ(MG5+55 z;S)M*Ng_{L;OW2%rQuBh-WL*2C<^FpgCj8D5%F{$G15NqR{QR;`(w0=huhnJg6-E@ z;>Jf5G>(ZAH3HaPM?D)QA2Rk5CS=FrsQFS9%-_?xU6=h9D?Y9|m9%M)-zgb>>S^b( z*3+z>h^BLcX;)~iZ|JTbwc0r)jH3NA>zK!{m=gd1jN`wNOlNOXxafq1w$`jB~8 zycHdOQ{*${nnMuIhn<~=#YMG2$p5r}$kZ+1bENK_!5!JXr{ugxRKHr|x`tM(a2Q(E z9UUThRY6KC@2c&~pM+#8_aN}!%-{#+n{&rZ8jpnAMpOIm)umgVg6QKIxD)+`o$-u| zhhl2p+}>_FX9L;C6IJumvOLcb&lF+yY3()V*GK^w;sul zCEFP6&E0-1|J=3wfUgU ztXp}|Go7xURAu1b+t$nnSrzAdA5WEfBdh5B%07Y0`1@P(dx1J+7<*058laBu%_Vp) z){cxp91(+I-Y<^W?w4hhNcIntdD(ERls7`}5GU-`Jo78_oU-DYPm96U(iO`n@%^7E zrRUcC1{8)wyD+p?v3&}PT;wHtdW5HEiO*yv{1GKe;W(9`y!DY8bxIBphTM4tNbXlo zU3_J4;wAMnz;~J^kTOBg?ONJZ*3?v0sg`R33d#P9r31ekDmGp^?ZK05GRCQ$t1 zZvqwyt>P#DbDO}LBZ$rdb7DiX?_BaQJm&!&eHS7Oi`69&8@wlRlNjM?tvwnMHMA9s3C>fVmU%$g%ul0l{EU{yu<@Q5Oo zUr6t^p9j1p$wz#c*tpb-#jbsL(L|9ki_6hn=h0w}HIsc@4qT$It&_*Lj~uy<4g?;~ zChO8YrXRPIa?aZB%4&u9b*{cm6I+?&dp^g60>t|*g_#?Pm-Q-rpt4m|oM{O>e z-^k==taEO!j;CS=4XTO$Wg`~%Th3`701W+-6{^OJq|*1X+-3FWaZjseyuTc!HemE8 zJUYBEQO?bI{qGN@ShOQ#St6hfNR6}P9W*gog0@LzosF$jmq!g{ynZle{Fu5)cJXy#3fYr#2lG0|aYLCt6n< zCjCwsAXLM4h(Vbg>io0oG3ZHIBO#CXAG#q+@53K~lp{ z^ItxfOfX}CtKkav>RIy>-kQ6jJ`vL8#US<}ttjl652Tj0rACH_&sb}|31RIp z2iuI9wN~5dOsUmWbJyha-ImbWTgn-ajc3N_C68o-L$|g8X=93EAI4v9$3bnxKMB36 zsaeuQDHWjv^eNcme2Jus81OOLf4PavG3AE+bgj*;%_M(8m&Zne1QDet@_!1`y1l5D zFF2hm#=0lB-r#yYgZm0?0@n6ycP0JNiA6~BAFtejUZFC6BBVmA`>zRkT+EZ5z7tRC zgd6lY10Hmz_bR!YNdHE7iw0!pNs`D3EuMC&w!VhEtI;ZH)^7^(V=mp5KJvvO*`-n_ zt+M&P)cqzA-kZy z(dCy{vrEglxK-63ZdR$IIL|pG1)8PN3mi?T14xknyG6xG08}|5>Ndx^>wDXt-XMKQ zP|m__qL$;X7mm(aSbcJR%_$=WnZ$Q7Jb>?@!n2dA&zlP3reA+4ZCA;7M<$)IkX3%c z3lq-kb>gOLG4MVw#LiP39=ba`mZuC&zln__AU(D&qc6CJ7^!)^~bG-yl2X_z&KE?Tyx6#pmEr(kF&o(4b8HvPgLz%|sz)$$hQ-m_ONQFzhfAQ`^( zy3nd!KF93MrhC9JU>WUjZ(g)13%eh02z&W-y1f$nOr*z5M>-Y5)T!32>+8XN3 z`iOE~JIY)OKYmeN_5t*0T>wX*{ACgX}3ryGEt|5zYJlvJ&lAEaU6$ zDK&d@40iWGWh28Y4~II&1$>m@B4b(6$%Iw6va9ysa<;|S!Rg9bt{ncIo+X-~|T2EjJq zW~1`A;W-sHMHF1MAj8B;6HXb3uKGIY>nBph3{^Y!Ki;!Y$@9M7o^7|H_&JG!N1Tv9 zw=8Ej zs!VSd+ z^`{_|Tbm(TJm;7`ADblL{{*zyd7 zYB)?&BFw~a(>ioYZD@>=(zT0Yggq2T)f|72mv1T4uh5jaFea*k95p`iiTq~JsVL(0 zfYMaDg`}`=h}t{)?@o|Z!j4bL7KiIO+Vzj`Bi;nZZhJJ}oZ+{{u$(gceVeFkudddG zQVxtb{K~Yo)$7QpD4k^GZ4?e(^0C<3{xmhTl|CLM>PluIV7f8wW1*1Z0prEHev`~q zihl1vf=XV6eKI4=9^^~4ZT@#OqjTh>@IXEyf^ONjyBIx7=hm$z@45F3E&uRth&la? zAE!AB$8xuOn56^i4CF+EAK@?_6QtXQW9B9z-VI)JCwm^W^{p z$8>E$uVa1i*`{Ca_FPN&DbBb=b~a>H;yW$t|D)+F!0<-|xka?K*zf_j~@%^K(|NA07>oj86+! zVnszA?L7o0Zg}D^<|%$+97`we&*2a|0_&gUv+hJgt{0Q%GHyOU_3dvHO(wh2%S2YS6(-Gk|v9Gt)wFdzDA`@|-F?z^`2k zJZ%r==HGAJG_F09$5HMH;(p*58~EqYzP0+_Yb0R0EMONH2h{bst+>6}yRKV#W=GRR_S@9^T`VzEj%Bjp%eq`h=#gkcGw10_j+juR@ zHd>@)Th7EwCcRiQs(sP^-1AflZN?tEj`Oj5@mPpBtUw66d5?WDn={zg+YnXZ+bOiT z2G1o0OO1bLO>R!KO8Wi!i;zCIUIH6R&CyD&IUsPb`GcWtV^X1A<=l58>s`ur5x1VP z5|I!)SmZ*Q!$2SoQxnA&yHDmY{i&lPmNj}5y%Gn$X+^i5!bPQ3c0gimPy4q1C{8x@ zyesU?3pcDK!$!nZRfVObE=3Ry*obgY1B+KrasovH9^rRObR^?Co!0T8FI$5lv8!~S z63Eq#dDwori%Uy9IeN^7exYCUfCkmjPw|5Z6gNi(V)2gI5jZYnkQdO-;|8U}3nFF* z?Nf5b%8O|(_ATS9BQ*z&u!CpiQO(zmWvRX!a>)n7FuUtXjZp}$M+774BA*a7>2pKO zo=v+u6(u&5#olu?Hp_$v0VQVU(Xca6Py>VXZ*In8|HFzIHFU7;$MZbwR#iPdN#uB2WUVkfQNz}(kV+3LqOQ7X{>(|^X|?O3s^!i1 zj3Ob!c(wLl0RF`~G7Dmu2)e&JeOR4JZY-1J#WmY%i~oG6EF*SxAgT^oEzoJXPFcvKgAe#grC`; zq$_1&G}wc_>a4|tP!;aDeVlW(DZ)R3z~LN+Th+BE`0vj9*@8NwDtSnM7%xU<{4O7> zi0>ad~l}fQR zgZi57H=Udxk!%!x9HTuDSZn{op1Qe| z4_7ocO7SaZd_&&i;OMwf#|{oLg78L+E)M~aUl2ceDu6hlH86Hw_@=yL)JpIdzgIp8 zjBpI=B4zNObX*Fu{Em=1-45Wv!G1Aq^zp6w;;u4Y^5zMqkSxP!w>H|>(_a`uJU)Pz z$^@FWuenMqqgLhNRQ+TTbbZ0$D-YJIIBtisP*nI;Jo)dDqBgwB0VEek%F_(}oV@_3 zp684~BBk-Kx7%5YzJ+Y#mRc|DX@iP~*dn{nb#z}H8_k~TDa+|;=h8 zIA4J41cN6?(0p$+CN1|hwc$@pOZmV|uvzyiq_k||3;)OvNF45uV-G$h)rr-XC-Dun z&;6y5U*9$v6&Y5k_^JCeg(HPdybBBPs8AmAt1q_l-iu+&pg?bTiBN#>OxV3VVE6fL z8r<5V56HPs;Ul(MSUEO!d^dKdDjw+8Z)T0{7P|f;G!-aG>99xLIOp*GjrD=0>`w4W8)8D7}Yr4IAs+pqSn}towchrl1{0p=8)O-{uAPIbI)S z#F*ilaRixkl}(BgwP+jsXM$dKat?GY*H^ZkKePk52;;3uw zX!>>SMuSl_NPMfyd2BM0@oRprASL)&0|};6*B$}Yoh$pdK7%PU069ykI=Q-J4H9ib zk`7)hz+$>#tO#A=*x8Sd6@BT_aqzcou;}$ciGCksf+UAD<5L7l81q_I?oIs%WP@~a zM0hbgd+0r#8|5};GVrtRK?+`C-R+|0zAI+6+v!HX0xFeLHDi^T95t~fYpf|miz zO5uy^-KxfIz{4a6?HotvXmnoj*9D9H@*9O*Bn9gwCtEG_hsW4NvI}aAqd8;I!CuM zDDG%grhaKuc272~s_YBsJL2Wn7ff#R{yn)G;4o$v>vp|5=cYeHi|oZe-!WFV&?ps+ z@lrRDm-w7*`?`w$82ebqqlCTG^rX6JM&G87aX$MC=jY2UOQF|2{-028t?K%vSg4H# zvi5T^p*9kHkLJ)f7F_RscyT1Ds2JTfnQN7vd_UX~kwQ)>~)WD83HZ{gETGenH8<$DkrSkj*Ic|UQoLx|L z^O~ZlbJ1%dTi8!&n3{-9g(QYp=pmK5C7J-s6}0s8+VGc|V!}2)jcPBag`XwIo&lT5 zT={}Tj;+9-B(KvzW%Bw2pvD2JE5!8OO`j80V4Bz(2lJ`s zU3Aj$`qgQ}(O<)K3|(Y!+>jS70Wt{#1Pd(5$?!1QG5$R+CsrKY{%WRXDSxNu&hJ)x z=jvkY8!{$0KO75@F|JscETk)v2DH#L-Z8L4DMe}uUT7jlYC1()2!$#wWKU{cH9z(x zvmIr)napngwBm`7h)AyWjp)P*Tu23>K}YesyQ^e{J~s`#8^-mBSr-G7aL=I~|F1)5 zckX|#@@N@U_UDL#%z*hYD-qz8ut?_yWPW{{oW2^6$wM1kDm1lX{q=W|lR@^ux(8iM z-jZ#Plk(cgTvGeN5xKQf*w@s6gdZu&@j!lyJM9(X%;n*yqjPH!Yht(XmV+pDOgEzl8n!ZZ_*uNX!P59YEVr7*B z17hGvBacn`cYab7d7*It)-q$Gt-X-cZzE};OVK++pHBtG?-6crN7V0t zUHg4en3Vc~_63JvLwuM+Q0+TSCL7~wU+Mq@LK$%B7`cVFTbsA=E*rjoyuX1?CYVpY z^(S=tySIHjB|3F_CLM#7rUw;5g~Pc2KB-OCwPnZ(^O27LGMN91s~^!VYf`i7^Ui?# zHvwyZ0+i;F?C*4W5TG%MJ&=H6YyFAGXKii0@9y@eRXzN1V7!+jkne^SbM*__@k|!w zUk+Jj&tGT;NR0t#?nbUxc^G&&?HlK3begF#$Y`px3$y63NR*hNcZaJpU=U4;xvpp8Jk;uTwxw*&j6tsWB_&@!@Ju+xC1z{G+ z^nsL3sqxW(CdHGP?E_gGo3&@@sWm&3nmH_Vm`XiZhdRfDRQXO^Uy5Y;} z`e!td2w=OH%=_$DjhL%#wLxvA2sFBmJsS#08-I+vt&>Ys`v)d<|9>j~rA zH}b6(59A$4iCVdnakg;2G2WO*bvp1gEjslS=DDV2F14Q^ZBF+#?;ge}>DZOW2al<2 zz)4Tw@e3&o{zJDTB1?{i2*0CRQBw5!b`^LtYB5dEUSu=DUcpMqgNy5yWQr(TaCehV zIET$%t5N+gi?F2dJb>WN1(|*P;aa~rat3XW6WiT`k1NI7l!Q^hrV|O0gp)&~SGvlCXmLk`? zFtSHGm{%{V@=wT?q_gJ>y%e_iMrY)nwxz2)>syGo5MoW57p(9}1F_(nQa?DxG%smpeC+w7k|n~!Q(sRFX_+NBIeF*x8d z620(_8&`@2GL2M)8t-;0^2S>~)yW}zqQmO_iC)HTl=67Z*FQkib@sc?8pBc~vu+b7 zW05pB`l~rSJ&wF6(`OorY&#-lP=#r~9}*sae^=XvwgNWFz>uS0O!Xe0pL!(nW|oL$?vo@OzkBHS2pFxXxg{jsO-xaSWYH376h%GQ=E9j`F|Wl z-^W(YsHVfx?ox#8`O{?{@H!#PcwrL%blx`oZvJb^@z-YW`Te?Y*Vljb-;7vK@GMXM zHerTGV~%7!wjZx-|K9{6{uRlxm=%T-DVz(WLtEXztu9amSIXu541hvI3XT4WWWul9(yTzbys-3FafnJ<*bbL9 zCu+*CT95Br<=6`$RqeUV&wNS;4dvVc7DG*Y`fo2;9#pGZvr1UhT@a^7o3;*a=J`;2 zj9CAUTMP_8@oW+0Pt#;+#?Lf94$RCw;K|G4z9kgMO#2b0vGg>}UBI)e8N9DOhEGT) zavR)S-9L6r6-h@VV^H^h)m->-`(zgbDbCRJazgW7%qeB9WG_P3+dGQHEvJ3pd?gm%33t(-zE zv+^I`FhTNa(WYqpIjN}QxBcDH^~Yc6*agYcyw;u4sqLJqWN>4zC!uL~b9Wj!*jVZ> z3f-v}{I~823k|yucmggzlQbs&?{HCxGu|?ej7Iw&VafH|N~UaUKKJK=Aj^lc{4;t7 z>qOkot;xXE@I+%Zx9Z_1k!9MTOQKm@ogCA`@UUwZ`?%k-7VUldpt%FrsR567CdKAR zrJw03$q7em)?>ApGFQH_hMpOznc8a4q6krox*^I0rys`U>}`>HA;}disy~1h3c3_^ z^apgR-XE>NF@&ssyx*_NdJmSaho8~5I?&OiS*_lA-AN&%>lAnfAVK#K&(h&n`g&Dk z&vks!#(8Jy@@{V-!25!DV;2Eu+ZRP`)2YxhJ;Uon<{eqnmN$RZ-+XWyuRs?hJ{Q(@ zur0p`sGt@?f9Pto$eyUzu1Q6{*TYNX(C%ubA}inVbn_uHw+;j&lHnR6?_`}|Pk!zC zEIAHnsK+8dqL?XMI1FLWrsVtL_hf4b1A|ZLkCaXMi41=%KfexmP?LimY=yBqvmuff zrH^g!8ihY{VIrGWQpYp%9i`-^H0_zizdMCjz9LZya#7#aCv6!@xX4SEOpRWZ5OAHv&jQk4V-s zNg>waSQKBxI}rH=!DHi@Ycz=1aip2JUAtX-id1`IquUuS>7~wH6AKj2%F0^gYN!~UljG^B~65q;FHnaqjZHGh$U6Ss|ef`YKOv`-wLxE7aKk|vAu8QVe z;ChDggm>i|h<2!dDyHuH^AH%xnamxH6lTr6>Gu+KADVt2#h7SR9X}%_IPS-2_IM{p z;#At5wsOy+aZ?afwp|?D{&M3JJoK7HAk3|?h8oS1SjAm!CE!iY0j5|X0L@9$n$X&M z?WyY4+FC9SgVI079&S_Iq`Epq?r{4%wDN8A}gSlvLhlV z*eI5?f+6Y{Cf5{Y2g}K^vaijr%^IS81N_YMm#i__(B2N>s*;&g-c6PTx1jG-+J?j1 z88dzh+r?j6D-@DF_^G=*%k;Mnu3{;cJY*5I%LT=SV=j#yq{zPGwcN6XEZGB>>V+n*t zu1uIOC8bpJ?bExhs9v~|7;{3WaJx?Ljvq=+O-01VK=u0ml9sV;IM`>}Sx;M>(mSD| z-u|g)Z_942!sj}}9piFXq)Ue(#(e$>W;vKfsf?EJySz=#5GswEFCjNgORv?hv$~o= znyB^b^c3n2af>5X#J%NJ4+OPT0i&;swsvQ?xuO(rv)A_s zbnb~O>w>F5L_>0PK2u0x_m+}c(XeF)ZvayL_|UVNqw-&EU0mda76Vpn4XSvbmX)M3 z>czlQ^M-s@;n@Ol42i%NC4x6fVF?*s&Rnlx0{2Co->sh@mgXH;IoR4GfV;nqNDQH# zkpVeOH-%1&DE2g0r?!+iKjuJ2lq>gDb)oXsPwh8ku^shoUl+1pm}u%$a<9C!iKm(i zfVwPA3mBA1f4wXE12jxC!O$_ASFV$qQKX#$<7E+d@j{!K3Z!}*DQXlRig4rgj(Y;i zOWl3FXB_KG*!lDeZw#Z~r+*@z9F@l|w%oY>41z8%7*;{oO@Q+J|66h)3>;iG)>XJ& zQ3Roy1h-&s;;Jj3Y`4a~@?kW@fw=uP9#!{xas*Pd)*JGLNi(HF+^qcHR2@-Cd|Om zc?xguSuZc+5Z1$fA?YO1g}!_NpE6v+zpl2pcB-(;Qe9IU6QQ>Wz383VI+V0n4s3#! z><$JaTgE+L`({mcw-&fUppi z&1y1iirU*;-0CazRD}ux3nPS0?Vh_^f4y)j^w>E5Gp@#v5c_2j7r8j{mXhKRhP0Q2 zS4X`qa{s5pI)8pj7*w;Siue50&J%}lps8^=!x41>`-C;FV?DKBU5o4l+bGb>%gT@D zBr!hlzae_0?!`0$R6TjY@d&WVZ8E_EilahzjF&S+>%V~sd=86e7)uxdgdApHtRw5i zS)xPG2WRc3v>4K&`eKY3|LpY3n?R_9oaN!AC1bRI&^Q?(4MB!Y;_m8)&5b`{Mwv1u zetcVZ=s51oWjO^4@S|>AFHN%k1U5~BDeb=wpY=R#v?t~vc4wm9xS>Ykh|%<+CII~& zaWn^31!r$Jn<1}ykEwx{wH{h29$oowQ9J*76I&uKYWV%lnBbrekuGo;KsoKm!i8PI`0g@0ps_mL z{zqH_>`quqqSj!W*DGN~gaW~Kc*p0HejeS<5wvXH;{9D>&5ws_6()Gwj^`Qb@#>^! z!KW1s9v-~Tx+Ko( zmpgQ&~`*4d@0 zMj~W8_jz)dI;%j_IQ(nF!^0x!lK=nkfW#trP%O8a%VlpTV>WQdgVW|Mt3>-JRL6hz z!|iXbS$7rt|Mhz3`wR`*KD@+v|EfQjYSZ~g_3_u=+a1Bf6|gm9u_;{16jd0Nz))R9 zy*oPo(vb}NPF0Z5ww-dtKK0C|>d%{3LiB>99R2bk$-Da=Qd++GBK}oo&$2KiO%n@2 zEDC?@R;b$%G!I{qp8k$W2X@Rh;Q8Y|BK$>=Aq95Yz>x}Ri&^_I8!At-YTcOlBB@%g zrqX^siL4EM+yZ1n6g2;?%=oje6u^fX1jaRajn`8$3m4{D0y46o4NNwPw_eEyf|2V| zs4W)DY1|9Oe5lqA%AT_FM1wmUy8pTil!;mpQkW~#F?+_eyu8vZAV_0mq%@HyR8*k3 zSK}|-PGk0RCvF6M6faLy#7;YF_@sI(O@uaqN(_u3UrLzH(XP`=S<(Bb1|9^G^w#+Yo=<>Cet#8s0h?{v~Sr%k#%0 z9W=P|Nzvov03;W%U?;9Qj=3%J8uwP)b3~=$eNLym(V1L!r0&t)#k0f}OqS-cs(r1Q6vOaxLl$8(Pha7ATGlLhuG5 z73GSbI9cHw=+Leorm*nMzGYRNN|OH&PE?~_8OO5YX7~zr1S;f7b*Ih>#ho613;ij@ zk;lY-0eMg>-WG~*)f2-zqcnE`(+{-YRu1Olw*vqQAOC;EB!^MF3-Z#NK!WRQYh%KM zQD1xe^{eCLjX>l}Untv!JBs`xVr*mRTqOx&~Z`Z>rV#6f3P54M9MmK&rrsg*l7a zvYNP*eBS_t=sWGjqG?+hyTi`6Rx-t#hsf!F$8d*;KdUEn9pZo0IrYqC5=zaNgtbe; z&0Hs?78u*irWD~?f;Z+8h6Ou^m>9gBN7!p@LTqlftlg%&pO0(#-2!d!FWTu$b4@$9 zmVzRgJavu{g)a(C%O1xy?n=g8x;mSA(sWyF_^I$owUFb856Q6>9S1wRtAjeql8BLU zIeEel@b~k~p>0Ro6R!~)0az1Yd?$vV^)P>2myThH4;sz!8fAcnifAH;&F6pdgid*sDJaRGpM-Y*G3+3>r9yXcEv9%+VW<|K|7rQIZFU@!aeI4xMlcR4xjl9NU$~)4L{^_oi%-N9oZ03>)Od{?83-_tKi@7 zXjt!R=S4DqRwRzK_IQ4Kxw(HAM$q?&JqJPFT@s0jshnb(V5(xe28E-MErL9O&La%v zsPkJz{SKID6QoW<`z(dtzwVkuL*UlO*GpWP<}FzHMcz<*+R@nbi>>O<8qGpkp?1~MtjD1ye0g%^n682Uv-j6jkDbMJ6UPwU5+z4FO7r1PNoOW7A>i( zy11|zhxw3yd5qx5%E3Kt#l!=?Ji*jtt=+%VXbQ}K;A%89t@`@xL7H_+av4hw7p7v1 zryffcQx^a1gDwFIS#4 z8{ZwgZVciY`f0&CYUY7JFDY(X2mo*WEywmMe`PZJIS09Yyn5~7#l+qjAP=iZ%A*fb zwpc5~t@T;y*VU{RAk^bqp4Ma_-c$7uk4VsgIU=6#4Nd>0-u&?>!I;ix6t2}@lf(@d z-P?$bkql-IFe`oz{^*Ndn|d}BzV&vdhD29G5)1hk`bf47H(ojcR{tcoBK@u;UTszI zj{H+q`j2wMQ}l$WX7TRY%s$l1QP*sM1#arD z(D;ub)ct)@E&sGp<`91AY@wIuzii;z^Ht}&>*LsBD@En)YD#KzZ55o!*wxb7vt!!l zUj5aTMlY%3I5{rK^5ZAzqmnHYaYT#k^=z8g_i0BdKuo#KK8R1*QB^g_7ZMZ0Q?9Si zex<=Xp02R|E@hy_Y!}hn(I>%*QLq|tlb6PFB_MlsPOy+*R@P{K8sz|ON zgDpu|Zzo*YhEkRfZlz4>{0xa340AGV+zl9wfqoz1SPZYb-a{>0+dDbV9(vrS8I>0N z@8r=RM6~HD#=)J>$N%j%v@ZlKn6~}}-=Uc;b+gA=R;({y`}~&l;m~hbJwTu@Cfv*$ zbr z{ynOf#HvCGij;#H*ikKm=;W2+X{iMpwVx0d4@H1@YY~gfT5=sN2{-(;kS}{Bk}nUK zXC(Lh#~@DD*?rt`^ryt}{JKaht~K8S3e~S?5nPz&uq|7yr>S>ddjGLtvLu5e-zT z{4&P)zI9l&ihMkdMcr(UqfQ5Ms=qLqzg-0e;L;dNsVY5QS(boSqgqBD!ex=nZ#VIZIL!Q)3 zKyEf$GH~;#H2amxJB1F{&;#S>-d)MO7BqI;;rVai$dnKy$?MD-`*uagIR9mffndp| znu4m0;nzW}d-5}<9(0_>V+?&^8uH}p_CY&Q?OS1F2yGD1bm6rA<8PigC%tc_(1Los z#2Wl&Kd0COVmFowVjefdlKWkG(|b;?){JLUj;(z|In%1k<<4e2X<1q5kdb?!vi!~N z|2MT2AdJ^meSH1M(II(TOod*{*9!hf%ksicbW+_v02z}MprN)Q`rtz6@d%(r(0gHr zSyMC2MlJmWZjybcmwG;}B8nprt>W6T_BbEIzoFl(EGH@TsWZTsux!A(2ox8g|5s5y zE7?9S9SA6`iC@n4F*C}VRXd9mYW7-@FUgrO@@!oJd9V8HP#q+EHM)ME3|xp#^ZB$J zrYKm-mB8*yZ^H3NQ4LA~qDf65?Nh*4cV3#{f}jun^Vkp{x}7u>_nfSroGLiGh2M(T zUkPe51OcS6>8Gd-zb>Ex*=gu{dw8HTYl$clE6PpK;ZoNG`Ib_TlVA<>aqo$`f*?&L zK^Y^=-??(qdh7Az8xO<8!|qJ#!)*^aywH9$Mv-nP_dd3GR~!=XkaH?-f=R*TWjz2f zHhsv60b*vp2+M(Vd+stt6B5W0&~{$~15n7Ss#Tx}T7s_GJa^}~#cy6(htoL{1BJX! zS|_)976d;LXO4rJLK1I$uN|NHjLBxQ?yUCC5NWIYc;2!|qXc`gtda=i7(l6grOybU z@6{`5rh{2L8v-{P8L#N+yFJUH;nHhN$o&v<9uKO6dn!x*R3RodHTAM)`ln@H)xIP< z$C*Z64mQ9qH(y&VcUFV{ozBG#vumuA*wo5srU~@~=(JcnRV~RzH%HrRu^r(thh~pg zUcBge2&AArdfU=9fYt7RK55D{1=!$rO#gc?d2R3RsnM@jp*wh1<=u`|!c)EzNat9U zKd1GROS`)VfXEg+OsqZKWK&pQR%H* zjMhIgLTRjIa+G}gh-dfFke?iQ>+ARVA~>ngZtlL1<~QM`-g#hB5p~)RF?Rcc+Z4RK zV43p#;YkKlah6-DqqvU7=$qloMvfEU8(r2>tj9&<9c64LZw}xiVC{-y#D>#&&3JL- zqN+H1()CS_ln+Ci_rgwga0OsQQ!`-RvZFRFvy|(FAWK3Vnl2*DEXl`4cx62^wxgTU zoYlOc)(>Gfqy8BQo|_Yn-q~M2-;In-l{#o4Arq0G=H28PE+aGbwYucYHZcQS@?B~$*=!mGAn zThp)q+>;DMoo@mIJA*^b=`HZq=8>zblSPChD1XUvBpgt4#((?tFVQib)2SE)HQ~U! zo;XaVhIX1ZDnd+S>PyF)aXQ%blGJ32nzjek&+=BT^dGrBc6Cn=(bGTsuLNP#kfxi z7i9abR4Vv+;NTD)TGx0y9rd)TeLEeD0kbw`dvCS1vI1LNSpLN~!Ih&m;-i%y=|P>k z9PBu4ZgZpxc8=_-qyN8%ehveK4HX)Gp{XX407(W?`iIk6?57S!M`zlsrXohw6yhYw z>M#KB8|g~1hR){a2OyDmTkSQa((k$d`kH=SWG#3@{vh&4x7n8sHB6=VRVfPKkqLDA zdw=uh>G-!deVK^X5B_z~(!sONAxJv=S;DevnSpQIf4_uAAB>$#mx;p zL;v+wOy)`BKFvj$C5!|h>Q=6s+NX45x7tT)BkE3|uPcLydAWyBud;-afo-CnQysVY0nCqm+@) zn?3WGSi61gd2OBW|`>O@J3tcBmKwiNs$O#vTx@?bq5a}`iAc(=wQ z%wzA9x?Cie;q)AomB8(5CJw{kQZZ#XJB4IJkmGdXKb(VtC%X^rThU|X=EXD|(h-1y zXZ$qddf>tZO8RkLoc4u1dJ-tBsL8QnjXSw2VZD4dP8G<@OxFxQdWCzk9NfxuEo$Db z%3NP*^ecY8*!bZ3XwA#c{HJ{f+b)YDvVTtlUC<&4&?)gkc|*b?-OP)8r3ZAm0FBh7 zOmrS3pLFXLY(iL%tSOg-QC8Mb%f8NNO*aa0D7$cP2=<)9F*vsTS*t?l<%d^+Wk!aqaJL+Q8-~w}lq&KD?eD zfilEFK_R7Q&oMZ@u`PyhR6P$0a>kQw0{5)n`hIF@dt>G__YoJHSeW4A4BxNyIF zOt{r8UFk6HrH`q?9%}j_Qn?OS+?bv<7Z%)n?HdU{t(tk%&rErX1G%`;&Xh59`X##; z6CV9ICpLZLCM^UVB)+Tv`*V5;f7y76Cc~P=1KA%QJ(iy;5?vz@7g?|L;uYw;2oWhZ zE?TbXKGXGUlnk|$Y`My}6V61#8EjRj)T$neo(WIDQ;X8KobV#cVvDGyLWH)G{g7s; z3Q26tHAxWgBY=`Iu|q)g!9Vc)+0)y-SJzTjHtt)}9Zbv0c6@@Q+=TU;nK`TNZ0G+| zY}g78MNke$%R5 zm(Lbo@>CUBHMBkl_xqehVZ-|3fuzRdB!cV@Z_qqjPtoC94aY5pB!pc%o;uP{?k+{* zl}RKT0t3iFrQF@@_P#OvfJDDbZtIOm1v8~wjBJj{F`Iesp;H=DBk4dkvV^2&+el)N zSYK1!gbB`;0k2UHq|zio(!?{OGOZJq-g)e+*{Z2tW5RMVQW%JdwqfxHQO1z?VPO5_ znB$-OnSp$6LpJivaFT2Pru6KjAoi8tw2B+6`0}#y0O`Ceg((`;MUPUh3VU!L45h5;(drHg#lAnWy^u%8p3IF(^HE zfoGXpuH8Csz{d^c~u~e?xTS@^27lF+{l1)N0#vHKXe4y5iUPeESPJ4 zE1nx6V9~iqhE*C_*qmc*Z$27Fc!H-Gzk>+-C`b0^^kkNz`87W+R)P$V`A70s^3jk7 zQ5`&DDFFww^p88nRDr@jb$K|g|8M;~zXHaxyBskOV%rhM&;AJh~rYf7lDh!(Ja#^q|pQ<_2d6 zQgNrE;{0{;s`mDzA`vOTg)Lf|4ok*r`dWYt(>t9+{g!nlr5fvnVCZi;t-Rm4V7g5_jJSx$f_>=&E7d<(&AjoXK2&f-|DV~N}mlRfgP@i3SN^tt}xW#*&)BZCVZLvpW z3BUEv#+{Kv7rOI>g{;ZmD2phJz^Z%fn-{;AlFqY;r^M7x4=0IC%0W*vcXskNy1$q8 zvvfYbn0?A*l)bD*yRI+4#ryhm#tn1vu_g9clD{@nj=5^5GBs|*^N+u=$2AXDD?wpD z?pcP#OC-IXFF7;xR3kcn!&S5cx5_r7d;P@yYuPxQDy!5R0bI9bvikUVOp>3Tv#YXE zJL`|tG`sz20e~03mQ$@arh2Lu;Ff!uD3oRlH47D*q!d#5%6=9Gc;g&D>nU}1=HIk- zxAg2cyUpbcg7!*_%3z;0u8srtr8*L{H$7YAVbHRyUpbSG$cU>%=wxjFHhiPQV1%8qEu zR^oF9xnuTcXH{f&`{8g6{h=~_-#gCqSm02BJ|`oqpex(UUJYk!+7b^Tj%6@>A|>ISj#YXFb0b>s@zn>rrImZOKfvTRUm zTr)VUio!}pPIWk07_s(G&FrF2uqSwc>RBc zTHe&G=ZfX;PAH8Zk=Lu31JslXMN$t;|zu@F(JJkB0k#&VG%YilJwH zw(Y@gYU#0Z5qAdq7MRd|hm`c21l@(SA9289DpV1jp|5SNyt*U1{3!1U$x!TK+{1(} z2+vEG{;(82`v#MYMCK=lHU=`f-B3XHqKh7Vq0|X+5hMI+SaWb!el3qf3A(X=SED?c zyZf{7=!1gdyHyFa-NSq}ffPBVKD1&m;(W~e!;Kd4Qb8@(h<;YO<;azcZIb;tK!UN{ zOAjBUHCh&KC>Q>MqOI)w7JIQ$2>e+8h4XSCcYpzkH`2PX) zyJA^PnvMtnLDLnwbBu2FwpJA4na%Oi{hZS`woiDYTcHK4xkk<=50yF@d|=Z3L4G5d z5BOL1W3Aliy;6=^Mm#TvEGD{Rbpx)`m`?67)-@Q}ubI)nf!?5d6bUPb7g!#nNtCb{ zvLsFfIX#o-twiJKdG%*SlGN!N5+N}&Z+=gg)`%Q@{o5|WtVX&6-;b6cd>lT&S9P#| z_%@zf^QC=(4=#KD`U}HwokPfDPCG)s^EdaH;TYBTA>)=xXB{C~0!r&DJP)x8FH3|b z!mgs&(MUdoMo+UNNmUZT39#qY+vKz5bte32rrv|BRvX#kFIpz5AnvR)2HZ_gv zxbAD@9!#Y9on4i}ioeYD^zQznHXg({?mI1+N^PI1YfDpq{bmAS@KFA(XmdnoY$g87 z{sT+J=xAE5;=l5Wq8_lBEmYL3mBc1yS}e0h>~BO3?Tcc||KNWyeuh^K%t_XwVBIHU zuF*R?hk>XIeCjB?9yB}nZEaSCk^q>cRm{-O2x!u=MNit)wb5SopIbIqV_(Nyl-xTM zg?`$$BtVJg#E_8Q^>?y7zU;)i6uPiJr*a-aH zDeF3BO8ZHp8+>>Tn|1s@j0qXqOAo#UG+4Yr8jdPhi^1t0RNx$-*YY>v{s;v>U2>^| zFU!&%drJ0Kq%)nXiLfeq_^ZjR=%Bv3gvxxL+M8sXnlMN5PQhg;3 z_v@`+=%0oLH+60^Dt)LdV<&?1ye)1bGbjK}r~QBnalJ$b(I^SHErxE5wf`{>Kr#>H zP0N)}M}0C3#kPEF+R>0*+^cvaG@!_Ugi9Q1t5q^bT9Fwm+*o95dX>!xp~rc0v7%$R zvN(^CguFcaezrZOYs0KQfPPAbyO_>7G#Thq83zN>i+l=yIGA!MZi*C*j+275@w>l& z3`{Rl7>2~^B&5ibnda?0gdHv69XL1U>rccG5{h+)L=E1YI8pB&I;SpYpJr`SO9%kw zd77xAPD2y+z5RDL5=}$-AJ^9oT2OZc6X$G;=vXFtU`mFuNzqsNUA{z3L5ydL)_xzi zySIB8gaeb@JQ7j-ABM%j+nMI;THn!zREX<$RfIx*C*F_Me;%WMlG9`+ZxtFfZV&zA zmtyp3*&3&QX@6}>6pXmNDe(Gg5nEd(Igp420CCRzt!!bh(BkIpRy$wqLBHP;xzeYM zTn0ZyEx9%gkBx8X5^>{vaca)%)MYHHFZzTCQ63|XRdtAHUB zyrHXN9jWuwl()rH_30s#8L#7mq9Ll8{&y#XL@W< z90sJGBHIkrkpAmaOjHT|aYA=8cl)qiQ`2qJldAY~H;lPye*G zw4@K~e0*9VCDJU0>SmU;9ltUebu<5GpU1>jwzj`)U0f+}RH7%iFl>r)3J*>z*S#7k z6RnEdA&-!9GTnl+oAg1$RLmn@7j;WwOMFSpp^iBjB=A?k?2nvGd@ODvCADEw&Krb2 z?}_?&lYIEv#j^t6k5BgD&l6>uI}75RMwn@!1ELRI*}z|9UI#}8;gnlTX6@o_`dSuq zH^&O5r`IJZ^{wMxd7?VgAO&0j!Zdm56m4RMbf=C^JKf#7M8+ z{ak9UVwa5okTyLkXd-LxG;i(0`sdZQAdb@GfB&@HP(R3%95~-fE05t?_8(FIkTTo8 z{~WgB7?#;Ajg`(qXL^-~Jby^2t4o;v>4;~Y-ql=T%iK^(#_^NI`Lb_le_ODYg;GT5 z8v=kdhMoOUCfSkurCc+CQ~h#$bjjuP`Q6Rs>xUz{u6MK}%?_k$ZxB6uR{L@bKtd?d+`u@=FEQsARz+Jl=5;It)aY_!)FAZ^VKdUyn8nRzSIwm%~+=fGsf5LC7 z)OdR#_nSt;@g2%*Nr!6&@YS|0>nv18$)G3D0HlZJIaUET$5a=u+8Bq(q^OR8V)qnsf3o|%nENJ8W?7OcX3*_Qam5S z_uL+vAYGfnhfaVmqf!d{abss2scHUY8Fu2C;Lmzy6HA-3+(tqJs~r2W6OE-+KjJf6 z#-8~{_4%BBQ@|%rT4zgiL{F^5Pr}CwGiPk@vSaVV#huP6GV1P+il< z{PWAl{e9TjSgTh*3gpDL%jw?1ZZ@tr*8XqR99g#ptlRcC)SdwnT+aPn<$4x?C&Zd* zPJX|LdAnlZ6~5O~XcCX0Bo$_I zPnka9nhd&)yE^N29yayb&Bf(wq()()UY^)LofW1V9(f%G0XnpOSI?#}>6)XKo>0Fn z=TzX6K-h-E#qS0Ilr6y%6TH}stDbnxE)NQkDS>x4dEU=>QTNZ;!Zd2#83<^OSEF8p ztvYN>x^GCK`jf4cnHL?>z1OE}q*Ayg2RO^zqOY3m_%82KlpZ2!Lo4)tvlV25PcMgr zPVAK~#ZX8`kFu+ciS^Yrd@Z54y~Ezk)n06eT~^o10(jb!8v*le_q|nSSN?nO=dL%% z&k3Mm{vSOM1FRvUXO2A8zfR<-14mC(a}|y$$0F1}idwz0Vl33YF-(eRZ82l{tiZX~ zQYL&)U_nOlb@Urs5&wH!+F_MZbc9(gXsvj+ zifR89aWm@r>^6tPID7XdWtUQd=d9*EIi>fbpHa5U9iLlv_-T`e#aCE9#1*h05{C#= zjqt~j%M+$msos-P%V)ww<@xN64f~UI3BwLwdirwp%C{Iq^rdVkBnodm0PI4yGDD_Nc z>gapri0LCrSdU((2$=ZZe>^5;oir@^!z=T$)tsy@JAuz%A3RAs%3A*)PjCIubiDQt zD@qF}jkJ_>cNv7VbTb;s(G3%n?ru;KkuK>NNOwuc$c^sUU~J!=bD!t=2lmrv@9Vl= zsTV>`QFr$AyST3dBO^l(o#m!M-ToR!-7D+f%2@`5Rt68^gJzv&@?3(&c&ogeJdS zBZ#Ko$I#F?NOeMwu|#m5MseA_u)fggEy_nz8Ndg7hh4K1M>We>qI1EYlgL38W@nC- zE&lyqg3|k~*anq)pONH#IP4$4%R{MLnsw2ZhcfVAUi zB8mdrgu87J{Um=0vJ}aNxgqE7M|(=0XJTH~hYBU1o*mfRBB)UGDZ1IgeKvgMgf4_1 z<4eMTz{it+hRo~izBP%vD0M50t`Y_{y*hj&z$yaU>oaR|Ia%JIlw z&=-`Nx$4u(>M3JKFGKU!Rb*L;)3MWK**W+3j}Qzdau@A@lZagH5JEBkbE5BX+Kbbr ze$%C@r_S@2wsm?v~rDk*6|tF@v(eA2}IV@?&L7U>RP-*}z0v**sqHOPjH z`ZC%!UphTA?(s0La$gfY6mZk&gc|>c*u7IOD6~@FfIQg&EI#6r*4P1fLVc$<33pb6 zjwR!1;8ZOXgw!dK!U6UgbF5JyHiK3NgrRNa^X{@oWMjwM7}U2E#t{{L22X@G0hB?hU9Kc;^KpPROKZL@ZhPYm!<}%)-@l+k&pq3=LhndiKg9o#d;6hYm z0zLI1FWeaBM?pJXw@6RX@G1nFRHB>?cSz_C#kZs{8k+ztl7J2_-W)D@c1wZg%l??^ zp4iY=o0$$jWo_8bxCA}u{7r49oe-KBc!wMJs;d7>wR4%x%lmL`U$N##Y;ySkGeGE5 zc)tsTHr}Z4`6L$XZ{#Dj^Rd~Lo<$hs@znVnv(DZM)A+0|(SmqEdg_W>)jI)77+Xg9 z((7?fF`&ou>ucV(;z@2l$~c-?65F8%irHV(h0KhO{o?0Bt>kKXm2?+3BGTXdojN?v zewdKqBXm$%ZT!gq3JQ+Ip&BfeUNKEYSLD=@&NylQo2B0dz{+ACBKL#U;E%aHdvVD` z${D-|3(aC`e4#~){9a4^PWY$mUCxzNuC6XeE-oIJV8IY*xsp4fl?v00k(l5>d=9U! zOI8}_v83d0>Mv1M3)Cp=ZW&pHot?IKwagN_^|knQC)e2l-(`V|6s@Uj7sfx*CDpRT zzig&ctu`U!tp81MOp6R!_FlC-svFjglw_p)oBn7xEL!V+@WU-V`Gu6isTX5Ik{17Z zQDMQ=eK(jJxW2>tNtL?_^Mu^n9hIH|-L*oC_!Cn>dc^1h9DZL5y3j0(Nid3(jk6n! zDr8lg%4oSrQlBf*nu`;eU!P&63bp&_@BsBPBSzo72qE6r%eYlY+A^c*Q7<^H%qmbb zQ0yp2Ht8@K$?>Ck=umSU7UR$zsZwaA@O4-q7%<*9y+Kf|ZL=V3-!pmAzmB{?JnSUx zft(PovGEptSFf6yK2eZc)!Sqc|(rPY`w|SIIXtNN5 z1HIr2v2IpD2amZKtHkFq)v{rPa$R7$CzsX}{J>`oM{|m23Sa5sjXyZO!^{8mWR~Gs z6gyG@_xzgZ;#BlV!Qnhx^^gFzo&uu^qTSfkS@BC;@fR#qk6L`fPS1jPdClwjio~Dk z;$;%--E8rG{($J|E2iy3!N8J)Lz;mf&vs+V=+)serAIcp9scKM5h9J>&i8w!C!hl> zen4(!6p@^U${zPLxVdqdDlr@HN~Js^wBR>?CN=U7k1p8q+SzSCm`d`ka=rrCq6V1O zBc?J!ZI?Z&FX# z9AC2-0pmsw$9J!i%(^wZ7MDrOLd{qxtIRshjI(oO6S~+@Y(y1&?owXj0sb1U);Fqv zd`mqso1Kb86oe=mO?M{NHc^SSxmr znIi>$S?>$`RPi+FrA%YbfG(>)snIwqhV@A9vBS@Wa`S@nAC~~9``CrxmW$h`hVgG1 zqvTYJ3W%{59Lmp|RKseHF33;`2G;?szQQ-fDdHYkRr8k_Ci;Ojuqm`A@LAeR@k z4I3FGH%0QQW7f*MrbnUNp1y&gvw##A^5kxaEjE;*Q?;VeJIF;cQJ`YRcv7}2qnA?92>Ql7zI~q^*__>Pf~BHp^4Zqgd5iTy=W@~@eKSMxU$-Q zX+sezN%m`_1P3u>6K-`jb;XJVAfa zeC}8{Pd0KB1!qLJyU4Xne}kqv&0pY@4>7upFf-hb5EiP6jQY=+HHQf^PF?`@pR zrW{XksB1Xc_;6zp=2g*boq|X=pv$AY4tZHx3lfRPdW51F-+6iud*F-PF+Fl zyaXhetBGcm`EgO|7yqF`NUO&EZUR;Y(V1tZP`h>A8&a_^)1|sBIigz=H0A;1zKjr> zZ^UOcX|3^YpZ+@hMZ75GV#zjD;rn`$f=oI!r~VekO5%kY4VNA zQ#~I;{!rn)%n6ZD0(9;``a2y=Uxn$)+WN`S>8%Mb-`_ZLby2TIc!NiW^=|Pz^X%(8 zop!np`RwSw6MSy6GY!_NqO|t+I^zJnsHXm46@%QXAJX{}@m)5lB?l?Rln|$8Y|jLF zDz#?~#WXOcgYjebi&Kx=WSLRf!Vb>rr!d9y8EVmSim;Wj)+jS+{6i_L@h!e2LTTxs z@q+Q=WmVoL&)5GM4&28Jb-|iQ>A(pG9rR*$Lk8~<*z;e~S&e*=rM%h*f?F*b`P2x+ z`*Yz;vgRQ)zd2Ycx+<7!ss3e;w&%Q03{k=p8|IHpgptx~Aosaa*#4*%c1<2ACcnZQ z-_hFnz{>dh!Rbk#^{`*pzieSfkOr;Ut`w}$zt9a`X`?$*x1m_khnR+3ZgFJHvV#ml zfpiaFgd>B(5ESjy}GKp-rc9Qifv3mig1-6JXsLx%c0cnZNzWOiUWo+V=^HjT`dL>R*&Iw(LP4>76B@ zxvIZbYl)JfPdBBvc?x;rDd+$Fc2vO=d4D1*l`@^A{zq+k*=E9kGRd9b;>H^@i!sU| z1Bf2kwdEanVwgVfLqVg^^$z zdMZG|;7hbg`oTH^;DKT=lGyFDm~oJklI!a*sXS9d#+i(>wg!jS5C6`J;B4+|kk#*O zb`~jGX__RKb_n?RYmH?d>{L23`7_bB7dRS(GiY;p>M z>XWNySu*RGU(kC=TEi$n{7gF_P4YH7F`*Y6V^TJv4zG5XD`xH5%Rs=-?&-&9?}Kgb zz2qXkQ2^8AxxwNOQofT^H0F77^WsGy8uP}RbUyo?H=oqam&%Bbj$+P%XWid)G7}1_ z51-mPI2%2M5@^h1-{e(=S^pCqRvy4}s=RUDpfWhc5Tb^Rd_cL-EfLc<^05wL^)Wb-ls zryCfBl}ba~KCd<66A?In?40U8Y!&O+prnY%E-8`l$r88Rye!_nw5hb{doi6K%T2dd zveohHh~H21OD@vPTZ%ECp1v0c@7cy`-N(w1L7GMfTbS(r_r@gh`1`zj9pmgMw6uH7M)B^(?D{dNg(<*~fr9ciKDtq=KiVFh+D#`x8E2^3Ffxy63!_irA7yFyq<0 z=Wo*FVr8x?1$9Xua!bJlW{Q9{o?Lb{0h-FS&0U$~EI*5Gr{l zSonR>J5mRAm@50aXY;rHo4a1#b<=5*`G1%HK}=mFo%UobJ28jpyY4`%=A{zdB|GEe(*y>)r|I>JIiP^| ziCw0(@0Z}|M3)oZ-$V_CX1rb23z)H3h?6*;LEDJHim0thV3s8fhmxCh;rgnQt}uE% zVc_#Hrn*=BAc6JXhkOSB8^~nb%7-+1>J{%Q`E+q}@jFTk-hko%q#>{guR-AXWb0|| z#Odh#i?e0nr^1FCu2gGB3*6u1F~0-}U zO=^PDCtCR{TmWE)eS^ND3X6=*zG}k)=WN?DaJgQ+ms|mB`#aQl1=p5Qzt_XlZQMT( z1jtdX9_OG@;Qp<#t-;;zY;1(zI9V{?5cpMc2G*%+HYmi7D+=U%>eNN~XDwTAO;W^( z{jX#~IA1q7N4NHDWeEb7ki~ZEAF}<|`Z7h{TZEoivMlq`DnUlb66#`KP%He?@|j_w z4!MU3-eR;cNmTH^e;@erVmrGtI2SdcJYxNz+zp5Dd1-}zG4NnaM7j`CS`A^?oh4SDOw_wJowLQTmmJfl+(%<)c^CZJthgKvz3ESj6CaVbey!fwv2Fx#fAv{B z#u{L#OBH@xpVC$z&{9?-#=SB2{tc`ftXJ1OiR4b1*}K%YbpG+HjIm60Ou9889UrPo zhKi84l90m2K!2(GM{sH}{~i>kV%ycfY29EQT0{50d(meM*0nHGq4g^ijVKuEz*Cj^Cy<3olSH$HvYLEiv4pG;k3?D2w7*=owXX5g+8M45us_&4d!}X>=W zob?vwWj%V%VupsSRWqNQO2RW3(LAo7q4S5Y**aV6h~sW9x5+-w^2goRBx$`#q#Nt_ zwrDxlobhK>5{eA9SOv9$kikixW5`voy&emPS;2OAcOTjC5y*7WoDFPE{-jUvju}!} z<1^xq`;jP#o!#K3O*krH6_)Oh19v#TDR-SfnH?Hr)*h(aUT>|hoj5}0lXzOk_7Pj{ z4M|j|;tS#%C&o>a1!xVU;ZPDVJfHmqN&V{YjH9IAJ*U3%dF(ew(#o9@WFh2(m)+w{ zjdjz@YsXk>q{#$o1Rp$+!r)PCP^&-R!kB0w#H|@}5+g*>ZYN#EzU@$>5pJk~%v$j- z3lYS7OSMB5O$M*k5pc(uUT2RS~bMFof=3)<}du_G!%|OR7L0iLTJ0R~?&P z8?_B*fN0vRP*W}q(?-U|VHLN_6p9!S8$)}b(;x1T702Ri1plEwYz_Ds7|iNmH7kwl z>0+`9M~im5SVOlgaPIuY^b16m^fbddD^+EA;aORcV5ya`_MaiirkOlO8tQ!0qe?PD z>9MLnl^lPQ`A{G+a=^O5i!U4s2>EqawLu^T>)`qxJ+eV};XvIHh=4Xvf(=2d7Sg?} zh9I6HuunnS;du=}<~LLjxOT~Oj{vv5{q^@W)(|!%72d;I-dA4J5ATk_HE4TOZLy5c!EVg|1xy^AQu!s#Z{2fX=44F) zVfCftTk6rfKR*QKV{+%=W!H^#qO_7Moyzy$xQ!Y8j)HAYM?{d$_gi(ScK&sH{-!HP zhJ1tyASh~3iN})?#W2pPcl&sG4 zwK&bM^Xkk<{h)|6iQwfN@cZ3Bl%qB)X|P-EhF1k*^C;Le=w1SVd~12Xi^AU{2}mOi zJ>|iALjD968WbEZ29g7X{l_4+c)5!T^OZv*;sfi{%HF^gKhI+*>e??#e!`aoZkY& zT06<`)1aZ0mFadY`BatkyvD;gH@eSp;1Sh*=tEY6J>?ds#(UCh+3ic;383B3E#_+uljncH5bic(~!l&@;78WWVFWG%ivd{T8_YX&CdDMIuwj0|W zT@=(#XEHY3U#Y^@$Cb|YX2hKo6~Yk6Rj+*XYifiK_$e#@N&G22bQ)Ikc+8 zpBa#w$Ar)!z~_T?F88bNu~e;}Z+)AbD=L7Hbol?#T);*^8pvl7G7hf4)Q1hZS~hlr z?wl#)sf}J9zQ0&Fczddkky{PpqrPB19?A3~be?}#QlDuI8~=HY{P8zzt&i&$0RqG2 zQ+pXZKm(%1Bqv|bDEi5oNC;DhG|1^0iGkv<{L*53sF4q;F$vZF5_-xeOA4IO5CuTS zBJX__{}mD)%sUaQah2@^nsecD!tHplr7Tg{I#Y8&hd1WCXi+4FFMqi`|BX6p`>hhn zJRl6TpoiE9RP7PXX6*5Gkr%?hC>vnbu>%P;9cObuEWCecNHf?1jk=IWgJXjGNB6T#>fi zlS0l4x(590h>5b@uV*xlfdYjjN~0j$O-|(+{mCJKLgGZu}t1TfzG>4BQHjR_Rw$Wt!Ihm8=V1 zP(w7Yk%rZT-adk^e5&m63G$HC{twq_uw3IPC^lBwAI!w-=`ul=>B?TFAO{=cEp0Bz za>B)h{W8z#5FX<1h@$PAKc3OaMW`{YeVIknk6=ei_DwaC&U_rnNt*384$+sLo%Mx2 zH_JdgK`=ZYueviwH)A_cl-`pURVwHX*26XcWlQO{VItbx`h%B;pG$QK%C`bs%Z-Wn z){KgR&ba#d3jUCwUTN1(ZphMf&|co&QzB^wfx17Jv;=b`IfQ?mPcF}?S^mBZUgPRE zo~#kEM@3MXnKx$=#rhtydB}?zzFgh}IB0zaWuU2Gx)r;2Ywq^0tEs+;9>}|fpcr8OjzQxqKJE3VA_5$BWG&@-$~)iGhPrGh8| zoc?x9Kc-Ibn7Pd9@+8=W0HZ%oXhFRwGu3kad$E}LW@aUR5%jw6K*kFM1j4Cg9a6=2cIf^iMyIJe&dJdA-_O)< zb_#kwOe}SLpZd8Xn17jMezH+N`5oR7Ut*30doX{uaLgMMZvPC1zk$gFpwXkwk1^6R z>OFlN^G=OJ4(%!bo1V8ML2^I4oVIsBI)JC!DyHk?Pp*6GddB~l@R~+O7-X>>F$leC zs?>||gl5WnZ2~&ihuWVTr@&NYWQ@SOB6v;eGDCB`1lLQ$a*>sz$Eosbt4z^)wihCZq44YwhaY96LPu8};ngg9jrLh;qq zzl<FpJ# z?}6Jpea*XY9I^1GubHvNO)j+U!CRD_)mAJ&NlDL!sy8Enm_nJq!7U@f6z8Mecl-E= zLdfG4RLt}=;876z@|YwXG6`XL9K=|)O^sNvg+aig9ALbI%m5tzj){k>0KEY8(9ooR1OQ2#1 zdguuQa()Csup1-_AFmnrzy-tOValg_9LxTp73?s-&cs4M6^)$`CM_n<;A>7}F6Y_e zYXd?56Ebt_C9}UunQaF~2jr*-RI6=j)#S<_1XzRJ*>|me#c(4F+MsL)N=P)2KKw$7 znse+}2GDH-lq@#^9f82(URnmv=e3a{I9=R zn>xxc8s+TD-Bi4@Sjjk9k8lYuyu#v!ErPo&(N<~QSYA9E?wJiCt#zN^dX=H1Z8P-{ zQ7(&vKj;^%%v#Opx`E|;#u5-V((l2!5c2Co5C}AOCA?*NbQ3rJ({h_?FeCbw2~B`J zh_+j{;lh>Fv?2nJfv@%B`Jfl?>0Tt@_79~;OZ0-dpgC&z+tBtHLvx)QNpmn%duTg8 z)PX6n*W&g9Y3&{&OiO$kY4h1&1JG^Z`-Ql=8e>5HLZ#59FsL`XE|%6PlT-9OfS>r3=eZ}JHKiczl&i8jbl;EURP z6D^?zDb|OEGf@AQWS|ueFa1>{9UGB(pmxSr%IuY3vkhQ~cN9K>s*Rz|Cl|n}r@s|s zw-Ly^uMB^FK0+J3dpp_zI24dLWj_Z}?58K|yWM@D_^B3Z3w?CGGKX|=^lL8;05(;$uRbAwF+m{~FL*R_$IOTOa&{mvK zRgX{ECC$D($OAQwev@X6g1j=PpsU_!K_FL#4B(BXYZt(fH43BZL!ovf?cX>Bw!W{> z^H{rImRRDCotL`pmFbrkhGM&c69bN5XHl6KpCMm-VZHl^jqPiHftKEIg|sF2qqEbE zmtTqo#h+-#)0^w^)nad+j~^fT+KxVDA?{_D(=C7bEZ)(HIbo!3!9f0+q2Ds4(+matd0NVRpSVCtE?vM zl$3>~vs~YnM5)`c?a{2QE->;Lqb0$plrEbPG(Y$dJU5Zoxpzjof)CudPl z5Jpbl5LtY9l#Z$IdhLbAAF9U3RWT~w{|f3l`uFPb>IO_gA%$C~P&zhrRnmD4bYwS~ zQE~vRk|{+mXxr&+OiB(<{)64a=!;`8hdme z6iu&xCP#8Z=}bvG%DBL2ewsqjHGv-gN*Cl4J~TWk>Z>pLGk19S8cvl6bg2T?mh-;R zEnfdz(4-ZU&i=Yu(9DL@qEt$Nsa8*J=Iun;BcDtVtwjO*cgIMGzUSjpSK#B?V2Ste z{vn6B5pm^dHPq>_|HTnTS%16R|v*!eN9v+ zd>2tBGLt=e@0r4~@#)(>b5m>B_tVH?=|_|2E`o2lqGZXYJ6^4dku_OZ^65W|zHBBqD$XB#k(3!E%k zC%EP2O{~<(w+8CYF(l==#3^j}4VqpqbGzcb$25Cpo=X1ThE_hEOs|#Hj8*axH>=;m zho5@ldc`Q|BMYWzWgr>#aNvJ;O@1JH6z<2_*QCZg=;k6f>QQB~q^rFQ&gU*~5A>)i z1WvRB#*kKMrGJHI!3J7qLeXl4RP8_Bh11txK2QZBI3yb=CR6dyBkj2$`fr)cTpn3& zT?j)ZcHO!^+zx~9cP?w5OZj1q8+_K*b7V!oUtlyldnIunS7b7kce$m1QKOO~JFz)Y zz5;GfH6twa*Bo6mLbXUvx}=(-#iFpI ze-kklzN+OtrB&FVL+yTazy`neZ@eQe0I!(lMI94&pW>a(A8%-NK18T7m4Z21oGe8x(c%BYDPPeK3;ig%g!(GYZa^8+R^f-O`xAZM;lJJt)Fm^ z|6^b&s~$GdK>pXb?07xR=LylW4Rs@XOzbsviN6m;r2nFjpm8G@afsJ2F=nf{M7EFewWq}9xP%Xc7 z{1P{+-|^!|TfV_YiGU@sWab#4YH=)O=1ue-lR?VZ4>q5#9@DsE;5`ld$wA1;8m=3$Vl4ijE(K8^G> z(Uf%~bQS>}qYv@ttGpHIvpk!Q#r#J$oOi_t@uvJs4KHWXSkSx|vFhN{ zOKAAQc$k}m_T83fjeUjhNTDS?8LEY>G5hNw<^ta>DJcVCT7!1a%HP z3C7Xyq7O)=rO_t+%V1x(9%FrYF52w?{Stq7E>KC&NtFA0Wk`v~kP63)oy8Q{wDA+7#9I8yuhrk}v2vMEH-%R(F*)H!|O_f}J zEeSmRwoJik?Loo%bkmoxq)y89S&>`brvsZb-PQd^_d*^k61KWI(H+%vsk|qaJbbH; zrPD*PAeEbuWS7!bh(TlIQt4`A>6EK!jaz$F`Gc>A{C7Wa)SuDKCF+GWc`0crIZT35 z7-#cxdtP4S+}!^^dzw0jzC(Jzl5z&%o?D;$t#5A&F^sob|BtN3B%h^kyv_Ik+BXtaMGU=b%!`JFPrls~?!cAtv`niw4 zI^iOy8bT1}Ojjl$4mMBbkyIR|-PyCIWNl+tQU(+t45(-*o_~{f7f@9?2RCi~!$;4D zj6*bZaDF9MXUFA}0u58dsZN+heX-jQ!tM(6t##0y&x zBk(x6**dw>La%1H_d0zBNWDJ41`y3j-fooe`MX}z=+`3xNulQY*zx5lQiXppjP|)y zp*6ZXIz*?c{5SeZG_!5(Q!5^+L#V;uTX2AXP?2&^y&@b&0E7gM2X&SB1Kx*UYZfkFZv_ z27EM4*VmV2_WoF9gnGsF$Lr8@ZFR-`>r`}6=zfZdNKnz;Fl0Hll?WfO*_LDY_MGzj zE?wtu-Ktj+(!A_XKK2%6+mEVFur|pU3XaKC=w;?Kmbu`zcpeaH`uBlrCA2 z{X@ZwLn_h0e31K)G(?5ZufJrE<9+uTp>q?QQC}6yy4L5YUCy+jjeb?bo^s}Nx zsg`{1SS-aNsSWq2dzY%yz;q)^JGU$ccaC-9>%?_N?c^^`k<|v7iR5)#!3q~a7P%Td z>|CJ;Y*?9nT@2{NGt;9XM)#PW?p9#A6>?m6NrjT#zZOIVfIygJn=YDAZ%*C+!>%BX z5Lg)R%m5I9N%bjtK7B7!I0^1Zo?=i(lOwNHrh+KUN_JK}-Gs7)0~{1U>5B&+_}lzb zeiiF4J>=R7FNX`KxY461;tC4XRj`IaYQBQo)V6X)CA0o%tI!Ov9V3K`mAZ@FV+XAtmC zp6Br6i-R9Y8PBuDDVy5VGJZXGgrzr2x7GEBmk|j;pNo4|sb-(2D^@(K=0bJ$dT%qg z8=NM*5}79-*xSqDbYaC#Erb#h=M)m91ec0Tc}t{!a6FDt3TzZfD2W{x`%Znt?Ch@c zWc!O|PeAw56kV%p8{29q=uQaDp8NVemWWDCue632Hz$R{BO$gUT0V}mqm8{$PHt#)i`UK2tqZ!Meb z_$Sh&)h*sX??Ma?u%B6zpt!h)NzF(J<|!nq6h^!xge$-5m0LH=L|2)QO-POJ4;I<7 zrPA|IrdQ7tOBCiRgn{%WyDE%BXdMc}krcE96a3clpClG|L3a1nB#Lbqiu~0BEYB+) zZPqb@grvugae)&U(UpYH>@GmOh+OJ@YP5aHZwa&3Uo6SIOXp!pVttA^)g!Oni@KZD!hqB?;)*=8xF>6lAW2Ym$$5a3#m%0`3nRJg6?b7)}KU$B6PI_bkiU+L3P zy|<1+rs@*Metn^?aW_f_#$v(*StP$CTzP(rh=s0;G#VqPGeL;K$2Vy9n_IyU(*f$) zu%-NaVR=Kg8`)$K8Vt|oxN)$!L3)~0`v)mfj64;ynQ+m~Z_U?q{**=6BejzaXn05N z$rr;~{7z_q^wt=UFry|AxAdVnE=_nQKn@3W9HZOP3R#BCYQiQg(xh$o?T7gXRCH8W z(vH<80OnL>jy{Dxk@aW%RC=kOk7ZLkPITNn<5m{UY>KHg7NRnWq%%PnqdHu-Th7zZ z0SIyq3E4efVKnYd{|^L}aWlD`bOsC^1?Pbf@>k0%_pi_ddIR4k_q|lg)TPHawD#qj zR5`6tQV#o32=Nc@CSVg{_4>!Xs3o?Mu)NphbIz?BQW_@g%rj#!z*-F8C8z%j&qWBR zz&2%7uxBUR-Y}Kui?_k3VB6R*;=0E4Xw4|^l|ctOcvks=3CV6;;s!>)@;cK1xntDw zhFJe$0<8Q*RPP_>D*29(wqQ3$X&bX%b@2Jw{7tlym z460@pqz%2(gl*nwFV$syhbUn(MfG1yuY%dVVI9auH_@N;1@hJ@Vv6<_JL+*A_sa5n3Ob`O4AiiH*tBVE-JsDq z?Bp@3}hs0#ariEvy-q;!sa(kdxyX*waj56>wZY)*GmC${!I zwU(dVr#E=4B*kC>c~(=cywFVdcU(B9UO4whV`=mI9fYbXN=)gO$=xD6}`bD`Uw+>nxAQMr0zSPP-;cWVh&;H z^c90-V_^Q|Xo0|Dy_+!IU)yoc-VSu_ima?mIML0MY8?shI3;=OTS3NAy|~SJr59~W zj#%tz@(WEaE5chiLmNMl!K<<|``43qgBVB6S@c_twNymlzIa<FI5P}~Y0w|LHMRmcL#L{k zQk%}B(6r}h1DVGMtXUu%;Ykh_Ncg1(-0;%H{o;c1k6(R^muAPt>V@gRa>qd>p$W=J zFz)&z0<*Nsm2nZEJ~g{cU5*}=rGdWW^@54E%(^kMAkk6q&w!HOH|7T+zQ~TFnSRn< zBlJ-5X~yr#>Hlubv88;b+OB{yk5O_SWM_VxQIiPIo zSoZSt$u6FkdOa~KWiFKKUEubZ^~hoYr}iguQ~N4Rn&HbjijIMVn#97B6JeB>0ulxQ@9n1-8b$ z;3+kZ>~T@IgJC|%=C&jIvM4(rcEWLiVQ>9_kiX^wKB30zOMUp<^89Uq8I*q#$>t}l zZw7J$dybNizr&hW4g}gfB}51~byN9ud5bH4Ud0~h4Lo*D$(Lr1msO}&vT)0N?REtCxJyb9$Hbdf5jY(Cm*8~WGlAQdTky#K_S%%hbN@Q4I9FL zn8#spnE1jmu&gHmbs?!??(k z)WhAdAn^tji@f8IF#V7BJgEkv2(yG*OY3f4w1!uLB(Fj537B|0n?c7|2HtMih<0@P695FhJic=TY8gVF}rDl;$%MSRPCKW`6Ydt{_n+QLJnEG>L9GB6jts6Be>DaI$2!f8PB z@r794SMJ=gpD#Kg)>HO7wg|glr|OlBRV_P~*Z6bTCyi3(C0=Z%xHR){&?fdo@(6>9 zg2<6z4mkY`$ivvFy&qnDSM0`J57~S>e`)+D$L-S%ilF7 zg#k*_jNUX(0obxYKJr3geV4y+@MZU&$5h?Xfjk6S+eu*%uKnImKA%Fi?p_+m@E-Qv zmwm_B$;ZJfpbp&5!ClC*$v_mX$G#J^aV{cVPTwFub~6jntX(61;NyXs*FS661uQ~7 zQ<+5$Z$k7j`i7nv;|&TDA#S%hLuYEls!Jh#!D=v4W9L8>mhQjSoY0`bRKOsRR`qhnT(Wxs8`OL6bDyU;V1m0uN_6-7pX5fUWrCoto-Q3 zNnopQi(9vNrHj6! zQaM&sgnj9Q4HICII*dP2Gm)5Bn=p3|o@};qw)1yx!WdH$@!y?NEoYmScj&MD#Dx6c zg?M4?yrC*8y{smae=bdkb{hr)e&V{Owp1YuH>gnLuWmZq z0?AN5H}LD24<+TBIP$`i)t1$KM^QQ1SSpGCGTbVC%4NaA1!^HSosZ*g(ooZLQ6$9` zrhGCYU1E9U0~FU>DRPA$&CN{_A2Qy&`p$JhuRF|Kk;a2H{W?^%z=KKfu_%>%Zk==X z5~Wq91QqiwK0cL2Llo5qnm5@(DMg!A82RN_jPl5T=t<|BB!NF2MdJ*mev>=wD0Rot zGmiLC!O5M^7H^7bjU7Z#qxk(^q|r))xBs4>o4F2McQ3rxWx)^2HCrD8Hy2eWE~3?L zzpp0u0H2}T)k5iJlfIy3*>4?sVBF{!LWab%`xDoY#-@hGxh04^6DG4kpu6?a_ajHU z54Ief+ofd*YR^WmM$U%nMtDsVs8Gj8n6fEN;`^UoK4T{Osf*4!k$L0nt$qRI)Pc?+ z=J4hMeRE10r|&k20rn`@6uFFaL80@RO7yB&wMFW%P)0Puj5X90I&fj|Y`LtuF=O+c z@2@fIy_+pKCdC#ZX)nlFXHSLymKGv{d9>OA6?37ei<1AFNZ>)b$cO*vs1}Dd6&^}| z$((2yEX${W3iLJH^=o)bqc#FC1$E;vfb8Sr@9vu83sSx^Oo6B#Q~{@C!_0lbhkc}@ zbcmGT9LB40#$92I8&;qN%DE_3gx`sqnsX29d!ppLCVpS=??4tcjHaxQZSHNfqOw=p z%#cHVC`uTljldr&8{YO8Oq<{nW?g_JG#$SHn!uvjzBy}J`i^tb@$flvN9os8RaP$u z9^d{Bat{dg2=WnaeLKmI<&p^s;0O~CI>L~gbY1E8(k*Qa!GB%-eV#DMw9+r@fXm{A z>4aX$@4NrW{^_KLm(<)ViO4c`j{A~xj@@%4{>rRJN8${jDS!wI8BEVZels6<*Ylw- zNvq7?=Ri(#w=$q|GP6LCEkMi$CVCiHr%SEOXcK!bTNbK4e@0KJ%Kuwa5Ibt}b7Itj z_+V5>%aKYn=z2j>lske0LVMA6ky@^=PN)XC6k!Rv1C)#yN~Q{z5@WV-$%&%3F6!yc3(EbF4uX#vE+cuuvYo2xTiNU& zg0_(&{%U+X9^4)7!pjA5b4DkXheYPnSV9Tk#)1G;%Wl3S+f^NO6{n|cATiLjNb>Ze zKUjN?1KkljHZREV;zWNFBBNiCyskISy-j<8e#!6Ni=#+5`3g}zZxkq1yyNmWTR5P{ ze$t5u^^6i(m4Xs>>3&hm9(9cv-z{bS)knHs^|?fVm|WG}hg zWP;3?ve0i_-Rkvp5(&TWuaJYY4vWwIVJlpKZ{LO{AZMg*iorBmr1VCWjUyL;&FoPlBH&N=7% z?!AA)exCj8wf0)?`+IXX)^EHktVo*mi+%}|2soEA61kSDED^q#)DLhnV19>+bY8gJX;szSPN}=TF){q$>niT|;ron){qshL zlR8}h0Q{BjKVKE_upeRz^P8f50!)VyKOha51)1~(w3I6vufvnct^YtX&paPn52m0r zB?+wn*P@?Y0K(DF=)_993|zO9drtk(Tf!47Fda9l ze3W{{>QY47q`~QE`lxuljIh!#bF6~yFex6aD$BaKYPfMtD z5uRQlL@y)4!ShrEtl}i-7Gad_#~)m5wrIItzFCaW2q+ljM*m0YVs7jV@qC5O6cf9t z(L$f2kWljI&-zT9ugMGk7q|*I{GEX}=2JES>F}p}FJj--&C4`2;61m1_Tt|k z@K>VMUMe%?n)8V4M0)z7kLbKu6}w*ddD{Aak}#n9So23)RIsc?`P)3x0=Xasn4{Bj zaf)Q0*8N4y=d6g%;uKb7S>||$%~KbpY-fF+{u$!h*DEoys>*Z>-@lAJlm~M#KdckD z`cW3XD@Cq zqKu?gNVVf;6qx?89v2hYmFrEX%37cwLv);;S2lEybj#$-HB};6Y`E?hGB0}BUF7i= zpJavo*m>P-9y!XW!HzWnf^-u5Vt+W4HlR3sarHml0&Hzd+(W?vuZ^*$ocJKxbLLMp zKe1yF-As7dMo>`6izL0ro}&Ee%ETjvlUCx2{_Te-Jlt)3E3bo*^OH@F-BZX3hK}^1 zIxB6ePQiC87EV5Ysh8-CRI&}?NV%LPipKC>LyX9F3%f8P#ezuo zhkq&(*enIjWvaqsC}w$^z0$c}vr@jQy_-KY4G4X8*Ot<8^VnH1PIEuC){Wncj(#dYLn;5s;z49$?rZuM61z#E{PcXbrUEX4c$6< zAuWVT=#~IO(5<>9Ck_qt6QI-l8YNj#eKDZ#qK&bkvYAIrb z-FW0OR`D#*=YQWfIgvHjOTrLdX!PZ(q75xpIa~WV`L+V=<~29(*v@sf!1UkUR~Qm? z_fC2q6bBZ1sw;_hUrAtUyht=|c@nxYtEOy^)?5O$kOA9zRc=ZOeEmM9SOy5$pI~-t-6|AKy6NG*Scxjwe(zC$(81me${>96gK}uQYwR!= zri#)Vu)sLq?Gf;TCtyj;oLnr2;V5IVisTm8mH7gSsJqQ4K+W}8UQuK0^0Uj+ydr&V zm>p+7w6LIUR_U4pYEr2rWMFz*q52viIX{yW}6pB4<>_E zzhX6;FFNYJFfYVUP7D3C)K!RNw%n?9cudj%E37wvE9?x2n_hW5VORbrSp(nJqnA-_ zE4nZjazzK_ts#@_h@NW1YGg@xudu6hvD>F{ROqhn_UyDMNmx+j_g)?~^*FGOhQQPB zNFb`@h1;=>zsV`z874lUIC-b_qZmv=vs^JZ^MC*mC{5n-If*6z z^eKnjuhTd?(|5Fe;#P8~l)FH+3e?M|Y+9Ux`OiG?da&b&k4e2jBMTfzf>Vp z>B?>MJ-BL(Oh9~RpR%#_KcyK=2|T*HX`iXOIRV-$vTO;&LFrHdq8Beh00LPR%@HPjPzKVl=$fBVG`5mM)+I+zfP zJqGDTf)QQhaD~?$YE%mL!7d&(ZhjG-(pmz#BkN+$0?){C?&xowLPk4k$gxhOKHS%? z6Xnwl19rCTU*>5wmH+tV`DuRY7FGtdL78{O559Pq{|m1YOLBFzC8Sux`gwar>fVE+ zQapQ7BotlUpFBEfQw@LR-=1sAga)-4yjfoxj&9?59R|r0pLoysw}wKnSOwZUFCH>^ z-X3J9{Ck4LY1`U_@jCj9u5*{x)?P^{WnK1hI!mn=DQ%48;6q(Tso`>)?PIE@*igNH zPg8OD)r*>cE$?bBVJkTCm(xpUVe@+q?ug*Os@}uU@mF&w)b1RV%L#C?1*<1l z%28{PNODeSE{%R5r2E_RcG1T5qq9Eo+&<9VzKp4erx|ZFEQ5xft8PIdBj``3^r@q* zC#0cnF-IG&2JIdg-9;T;SJYQ@s53i=5o;;To%1LNNw_URO$Mi91Tj@hi62agB~(_{ zm`{0zj<8u9Z+M?8J%zP3OFlV&_z944pV9LF(_Vcz_y6??_Y2z{qF7(^_H_2M6(ye%#<&lRyuc-@<>5xsw(g{E87i%8udE7 zg1rbYl9s;W`VGa(r;Bh~5>9z)lX=O1lcaeC5hx{RHfrJfd{LT|CJ>EFMHJ5GP$ z{X7zM4MhM_H4+C1mc*R0cwaR#DyH|f_4y1w@G<)FCFVVL;BN7=i+E_h=1#)P4i-5^ zz&Pi4qewFE{?Zi%EwYN=0+lxfhj=a;C60<8(PL+AY$={uZ|i1{zZg3iFl1r9$zM#q z%DW%|J?npn&K&{W+Vpcvn~7i1zdQA13yOmIwlT)(>8&zSf1ZZXq-HlQ(h=OE?{EGq zw}aR&bRzVxIkCR!zPh#2(lO>5BW|nKAS>2JBM6p8a+w3F`p|RaUPmgZYxDurRRzx$yBLP^ zA`3Eiu@0i2C*1@YsVVMUpW7Z`%0i~fXE-tEk54&J9P>@`lpG|YM^2u}V1P}Vwl0l`}`BCfXxO+OyX&soS*19IKM)dfpsF%?p)jtrjJ_Rj>pt zH=sF{euu`ZH9uDgU0^@dPWxI`iO0w&mWgS;i+z-0DtwizfSd-&`B;ZMD5J-^eJ|ra^G)*fCcVG zQ#)aeDVU&tU=s!q5Vo{ma`^ZD0Fx_r5Rbu$Qy1ab&p)mDG z?Y4$53~$V5L8ehuJOm6x67*|q#^-sESj_H6nHLW=4R(xwue4I=EiLy8@bmET!mTEp z{GK82m}1#yUCZ*sziV`)9f)~_4o13?=hjZgSQ^>3n`*3+oH)%A0HMN3YoPAtLzJpH z%=&!n=NT$@c8Ad-nf#4doCGGSqNN5emdy_rUf2BJrql%Ei2(5UBe_81iY}5IK+H*1 zM2v^-ln-+40`h3YB_oK#wbo?#O+ns8`LXcRGe;GRDKNm77O^;1JXl3(tr zYT(K7z7an^^t8aZc{gH~YN0_%`~mhx%Z;QuKCrS+@j}CYyg3Am|L1zF?ty#%_j=@U zVz$+{3z7qRt};>H;=a!?y6|Li*#;Yc8oNV0IAIiEEV%DpX1uj?T1+jkw^sP?i-;y+ zQSI&XHBVdDoJBhv>LtI%)TN~e&V){wcC{yCd(R6J{IqBX_=&AI#Nq% zZAfXKsMLttjwXq&!OZ5faQvh*hC3N;1ghE#uN<{|SvH^p&ws4t&MA-de$1Lpq7U?3 zy_EnF4#5&Q8~5P@mr2P>p=dDPrn}mT0ts8R_E~FA{RpIu$2@-!mh!Q2^YM{K!^#(| zrsCdyO^Jiu;MG3@`X%TM~O`lqw6(Sw~E7AyLZ z6|krj3tGxF{&91QWYc#dr+WBa`}+!d`9R7i%g^l;b3zrKl*NeJFexM}(;Ng_L@zGu zrnOT{CN@c#*n2#wGbqJZT{*Q(Q)}*z8iJ9;^<5CFJPNAD67F6T&PHt33JVL{aBw&V z*!}vi_{K&$F97sH&L`5@_UwPyV3+B7&8iH@W}ljqvGw0cbm?A)FAe@YLCylPGeH`W z63cg$blJ1f=0;l=kkSmsOOZaCBb5usXS_j4$}lF%0c6>y z9um)55KQl&bYIAxcTpsthpy>4#6An$iu8@Bj%rDh;b`c4jv6o+Axe>Xf(`GuY$kiM zziMv0vBtoha0XsDu+EESjuk*p>-Saahe;sJn zJWuxqep$?nkC;bLQH1hjFA?R#l}w<)f{*N6a6r$vgtfyI!UM<>4{Dl=i1pql-_kCt ze^J}F{^=fK@(y$IRX)5fRYhZE{x&kjMxn0IuiHty$8VGGxs>uCZrZo6%0C>Ud%DstR}q@CJ)N~ zVk%0I0Si^=fEm65Bt7-uUu3!lyX37~h_!1~!C(uM&(n6>-8`S~?ItEp^tsugiC z*xSe1XH0>X`3awv@D~=l-j+|Ca$RQQuR50Z>wJecSQL86I_#a&z&NYCj@J$XIy?=uAbhpr%MNQ*@^B72K4U0rRI?Rg~Y|YG!9W}K+e=vxI z(W07lm2q@WW&_7QptsW3?LL@tUN>Qf^C!pc=QOLH9uoRdn!m}N*+=T8ZM2zJQ#K3o ztueyxCM-86)!YzhV*cy60sY%jke@cj!wWf%FNXCt(n@B{HX2tF{;1{)^y94|i{>O;9*^`)&ZU#e0nszw_s6mAwaaf^YrY@x8Ihf6WF)AlnBh zmwc|K@9tD@wn1!MT|ypwR|zDR22H;B{>wq-E*tz03-W$&VqRFVh0^1N+3_E=zn3*?~&SOM@~&CMeezXBX?6o9mm; ze&&#wr@!!Z!~!R4{(SGnNm*k}rn!K`IquUvp2+(&a?3&j8oo+<-q<4jfajMGfJ**Y zx*hsxRZ3bkTMQO@gxbZ0kXX=nia9tsbaXZ~>SL1#{#PoVceHcv7?8%Wq`$e$a3|y? z{xt2g!y#}ijqTtlPq9psg#sX%+n$3O5AtUQqRR^Vj`AL&($odf5rYLXtq!P#KoBMZ z>3^#MRx^Xhn}B~#fV&CZJ=7w0s3bk+2d~`?*H8uJt3_gfEW$@F*$4o0Trfh!V=FQZ zBX$chH}B@2wdDdk*rAP*{+MUFT3}llD5>4WJJcXrg44VVF$;eg08r5|`3|)Fn)uBa z>fKcO&i)eeQa>o&_F-=R9{`3I!-t0$%*2w#x?J(cX~5> zK&{8MA|7RxOafQ2inWvFzLCWBIxJ3!;2eU{(G3O%sr!(ey?MfgP&`js8)))$!q|~s zDA~W`?jB5w7iS18k}A5&srf5bR#O9G34Pb8pXAK`EQH*}p!8G7v?Ch=Xv1EkodMbg z;p(KNELzt-}c^cUcX7Sihi9Y_HV9Xw(vhqhuxbZKr()_V}RA{$|4-TeF~8kyG0p1MY;w7&^p^7L5#Z{Cq~~t zYil%mxZy1ad=Lf~Im$cPg3I3De)x9BjZH{Fy|QN8uw{P;NsVYLMng2~i}O&CQHCYZ z-_UJPKgRwm2dmJ&-cH?z)5WF5P&vd^sPbmlQ+a$D%|QJ&K@b0`8`AeWT^Xz}_ju;& z1x1r$l*AN@V{AuM$CPX+f-dHM)oMdP2SvDa+k3Ht@k3wlTu{DW?VUGUi(eON9NYDh zv$OKw!^zp*bQZsB_Cj1EE_)|0WHU%{<#YDf9??) zTCzW2RSo^U9Ch;0q5u`yx>xCKD;;VXq&|zS8Hi-|2=E`f`l=Nzq&JENb$!val@4EM zN~qB%fc-wjVzMqE{b_uD&I0Yd`AQ}pv{qd# z-4+C#PJ9)y9hdEw(|){qi}LFsLs!#P06QMw)-GGAtn8`c4q^WNvv_8X!?d2aq`TQk@_lVQo#c<_lwHm8#I|7>0@6I+n^<}Udj$d zoih8=;D21wFD*}YqbSJmhI43mDz@OjS~XG%;!KkA&xOG?oP)U z$%H{y4>L2Qkm|CBl~=K<446IVOgiG`g>R*f1~pb{&E)9i`K7N2a(>lMe-k*Nqp-vN z;VE*>#)14SDbCnI>OK;);YZ;-bNDJ6VM6K;;z-}zT%Lw?#!BRhTSV+@9#)d=9I+MI z6j)Za8_%h;wbd6)TlQ^Pa&Zu3>`VT^=v&Hdt{ji&?f&W@S9!Yq{d0Snhd9%<(#@EJ zUqBRtk+x4!Wc$jnzcl2ijLWMK?3eLhnVKDp8KYbEqlXVM40PP_wRW9ZA&&)PL3^%a z(MccWl70xB!G|HFo241)ea4t24#*n3%a!$j@OR;~(a3J&Xx1PMeaX&Bc0sWfYh#-V zcBl0^1^l2KrkAQ^zm}O{xTmCFZg^;R8xToHo|dpe?^nt$69kSNQX1J(K!{Ldnz7oJ z!LsKVmrIvU-94iV#4OfSD8)SPC8Xu{`CY{(VW&ogP@Sg<9eVG6YuO9sR%ap@M2QcJ z`XlSD;-r%F-sz`J0Ts7!jhhCwZJ46OM*!Qc3Up!QP&SiDk(1iLrbw-7?c0Xg>&i%P zwQQaDe?jwjsI5i%EEq3lMQegP;v;Fc*+ro zlCFVhShERnu*TlGKbe0{Kv)d&2x&a)t!`e-v+{@yojY(hTe?e0FYH;_P(#$HxYiuY zm_H5OFjpR_nz*Gx#jzHGQm3}jXeMFZ!94^X5Zhc`=Fw!$*uY3S-)~myqiaNwu!tfgiGIg=&4_v3cOg94?&eNu zq^M88Ta9w_x#hTJIcb-K>ia8`K5AXf>9G60nH+IbEW-mwMiOT<+uWz)!<4I(NataC ziNwzw-W|&CNf|JT06r+fJEoy+R|}2Wk^!}L{7?D9F)ghUG}uM#go>G=gZc@3KFH7% zXXI(>$2V}E&292$N~>{UG+7bLeWyGq2?mU#)F907ofzr>wLVbi924e`zIi_aeb?LS z|Kx^u$v2vg=9=@AW)S6$q!b;$b#3?%N?Rn}t1DT7C5XRG>Wl&gQyDAv368$iS<)2p z#^I{W9B(J4pv!+W9zBQ}yw#r4E8rzmy%;;?=@I@UBc&oGzh}we!c=a|HiwJ9R4aqe zd!3IJQ;tMp7*)A&_jMI6Tj!ud0YLOsy>!>?d zVnhvUP+|=pp(8jUlPghzA39Y}5358^0=;lqNDZv-?y*?6byS*{cdH8)3ErcENK%)1 z6?kYEZGyRtcOQX_{842%E#V;Iv+h}9s&u}}OjecyaVTK1(*1RPFrm3*@D)(IB*p0) z=3OD#Hk@{PH=Pvofx|^+cam*oTLhwXWqa43Ro40_L+ZmM{4p{oQtTFx>gVrRItmNu z;`jEN#Ztd#TR2U;-&W~omok}$U%Fx8ywN?!*B+4R9vcO~tf%3Dm0$`{s9{zT2QoEm z*Lxqc75ymp7g5;>xpORjQv2jT%Yk?Kn@elo2u_uMXji)m)8yfK6y#QQ%MJ-8h{i9( zkJWGkGL$*y>tDs$<-~~Dr~CFY51+`=K)=BANGt^kM=dd9 zQ0+&BSFq{b50=)|hwAvS_=2GVmF6L3nAR)dWR=kLj-N4W17lleDc`=0ND?!pQAeTjf+hQBz2{nU(p9|<+}N{@MHJI;O;_O8sv$1!fz9j zs5g!!jusD72WpVV8-9_)r#cEuaODBC&N-;}y36u->Cp&8urjeyI-@RqX93JHV`Ueg z4kbKwWF=2(sdFbUDMbRH#RV(rY|92WK59n&z*wlMeJMn{WOo0-1S6u^*T)UDcOQxk zlK4K{fAkVfXT1FPJ2~aWR>fDEP1Ik%)~FT|MpTIL-$5_C%?yEc4PE63suU&a=)X*N zrh&9Lp$gg`@pYi`%pde5yM=Q+YI(P!c`cF&xhk8e4lc|Pe3SwVLhM>XUhHU4|GtF= zPnn+_TO0FXN?zrwX-Wd?1}gXS;OD!c3QNcISL1!ggfK-UhsUM>_Adw~-xiWoilaf{rYp=$u0xb7EAjxg2E!0=_vFBH!)IR10RGwO zqdH$&%V*#TT#sa_$)!b)*hk4Vga%G&=FJ+@4MBU2SYIeh=)FV9yu-0;nejE7!M{D` zBoDKp8=V{?Y7X=?HLyoPWo_8YZZPphtwJ~r9l|qb6aIfP=`w$MOx26CyIYh4DPoH$ za2wPk-csF%RiS-q(GK9k>s5WflwzwaSwoExUlcg8s09c^CaLcdtk57c0S_pHqf&mpvU9iFP=ID?{zuhSQp z4tPX7D@ia-S>9ehHi{k*=G?}rP96l9HX$$ft~baXPj|5UVC&0~%|?beB}r?mMDJ;rm!Y03PkIJ*J(SQ~Zh0{qJE0w6PEFa|KBN41> zJgO*U8z|PT*t^?I!JJoV(h=WdTjj|I_x_0-ku*IhmPdX&rZDDwnLQpjh)XndCznBX zplB<@bJGdx*e@1nK7`o;#^-9h<4Nq845@32-=TlN3Aq zRJLa~()JRfSVC2yv6;aaQNMgpt167`=sOG^Knw2QO=VW01`S71gjT)PBYzHWqJ9X{ z&RPF!x~})c_l;BMI(6|41Th-5qc{nl@qa+82M)v9e+e znO@Olm+}8^e+q8*!@4d_?;2daDu;g?kqe+)oFLmE_~!vgMs{O+jYuqslBIaMW2mGM zXoa}NPiKC(<5Il^N+yY^hc@6TpJB6Euwv84v$G=fGNxD_gog@?P zwm9t2&SHGK`tpUZZ+~~Vi9`lhz82l1p}4S3);!;EoUAW@_SZ&tMnUwMai0q|NsKCD z6ZECyWCf;8J_apcSz0+5niDrI}t!QUMUfFDGl$IkzdT9rN z=wNU`UCzay$!Pf?Ii^jC-dLCLdxip-o%uMMU8Nt_6 z;idpJDAw?5cTskjRS71C;rwpel=J6n_r+j5mtf=QiAxNZup&}_*C67hv-1ixX9J4n zdvj{qv}jx7{qXcyW9I<}QHELG+lWYEZUC2QwDT0j#~0#-LqkH|{|w9~u&d@7E*npM z0<~yC3gi#qXv!zZ=gk3xw^(gTP!^Nlf}*9+joe+NK!}8s1%4>j9Qej#H6?QF!dIe+TWgqjAzZ& zT=g;ag+D%zfo2!ZSSd)h*=we0y)Kr^+GX~W7v zEOs!8c|ddeKZ!_gu7qDCn;R?=iu+C8AR7+zgz&%$@Bii_PNd%EUK1BMtanQd@(5rh zHpv#HXg~DFys$WewNaVOR@7M+Q$#E3Dy5iA<2CnnXLs^g5yA3;IP4u~cJOmJvD};3 zz}8>ApDn4ZuG-kz$SR@(R>b6`|9H)+XomAm&DSR=cy{)?iPFNC%w8hM(fHs0t;QEe zNt>lUQr0U-=@S;vKQQmyCHpSbKvOkwrI_?=JEHB?PpM2*2M6^#mIK>9*oS5;xq6PU z^u~`KW1~zs(NfewS2eFki6AGK92go22m}VSU)hLxP_8DekrlqofQIg-GxdJcLe!Of zg)qMG1bY@t+U+%d)XxK^!*Z{iXRYhP!8ic*`ov@Bo70M*N6slmZ_H#ja!9=*k#z~= z`3?(DBW3h2c+?-Q-r%p+$Q{}}Y8EQ=&Hl(Q!&4$T-(wwp_ZQ$8p zNV;LTvbeY~hlSm;Rk!}PJF0p!%3V@iul&zsnSsnO&I;5$g+!H1>fgK9A3nX#0Zdit zes;mm^NiQe%*S$_&qxzN?&6E_`CNgD+6Yx67M?ioUuEdGda;f?Nb|G*HtDfXmeRm+An_X z5LKFS@DjD;Dj!Qkeel*h9Bi(@<*h<3Av{Bq29LdPIBj4J&_*|$LIj6kxG+QOZ!H?6 zJC5d9lk4CQUfq9R6*`f%VTS zM zU9-k$1|+XI>s>`5C?9|&d3B=J7^2F{&vNC>W9)xkduqeNZ9i5PCjDF3i@NQVHBm9H zW$S;H5Un)pr5ZP&VEB^2>Y+K2v~k)kY#v1I8ZfK$(d7vr7B`{pUwTo4q`7y1j(Q6fS(b@s3)FU5_=0T=%z0!A1fcs9aUIeuWynqLwb9YKMvxw={_JJ^(}h?4c2>v z%8t?*zKu|A^=D4~GJCbSYkzA8ZxLUh_dMRc3ns zDC>$i1*b$Kr6H(&+DX)kRl*FUQp9WZib1M)aiau>vVBUJf%{nF>>W4jv&{oU*CIPX zD$CPOdm(BpJawDLD)pno6Y$_0Z{8 zJwOYYGYgAoVPe*Xz8J)TGr9{(HMS^8)LhbHLW`) z`l_e)GWOi@qvyjWGaL;nzy+eN$7FFeu^DIQyw(A9n!otq;cN&Ppto4eZESgs;x~MR zEN}fZv9d7tT}Uhrzv5`qvhN2V=-^;679f(8#Y>FHSp&sH%HwU@2DMeSzg}{9+?lqx zHcSMQ2kcE>?fSd{b~Zcf{H=b?ZDv>eZg{-oS;hB85PgI3c*=xUYcmlUu=?qP`6-9nhT`AUO+MRztd9eI4+2
    2V1UA7cUe19--YsMd&aj5{`G`eYaWI8CiY;@VvOET-Blm%YR@G3c_aEc)goavdhep+6pRT_R}l z`3`eQi4-AE)N*#GI3M0m5i*(47YU ztxRu+IrBna=Rtq8m8DD5hmW_jxfu6O0obo8W%6p@1wQ^nTM%awp6L;BnF{K ztKJQix+)6T2X{2ES!t9S*v9CiEp#*Dxl<>c&RA%_RRa5>MHW>r;TGRoPy0yHcFFq& zjD?I%bIS4(qCKC%szn{Mj4v0TS$q=yZB|A~hV8O0I0D|Id;>n%DJw48*RY&&6h=yy z5>IMSQf5GP58{uY--o8`$M()W#Mn%5t1r<*pDyMs`g}Gxzm7M)H_KMmGjhgt0n64a zo!;G}17E-FH~u_!)#Xg6&9T=xwbR=-^k1Ns+=kCMe; zdczQp8$C7q3U_j6R(l2CCu4p=U5kxz%+BScrT6I>8aieDvm z(k%uhlY7$iufbvrb28df%U5E8%5_nlyh=#S2AuI9yY-# zQ-yG24n3|CWCx0*cnen~cDOpKVXw_j?0=W#0P%nao9jh-+pNmD)%&nS@XN$q)R`DOKf_)ZN&p~Ikd6{F_w+l)}!s@@br*;-vK2v`ma z*sAMB#twjmVd{HW8>oHO)Ev4C_Gez9Z;DGlMeRHz#>Ti(y9Cu#+1g56dFs;!D-l-k z!c+JlZA@O@Ge0}4YYi@|8qNz)=XsnlQZqVd!P#<1v}lBTuOurd;HaPpy5ov*%4~B? zD|sjOo}%E}8(u^b@thWvy?Y6X%3gGk=-nP1!6y&M!{vP)>Fa7W7t%0u`ZFiY!i*$> zv*4QseJYn>e3pYK>uvGDm|mn{Wd#TKa5k|F|C+S)y_Z+~xBWXSwfC0(NaS(m7~*Ef z@kdVw%)A#?|2Dlt5_fGy%ve5fHI#+=iP|`A1J_=^NO>;Lg+#B+%}+o}tDH;xr;pmg z>YCrEAKtjb)KSWc_4W1fC=Ng0g4WTE*y8)#-jg{OZcJ+mIHySJa%AaL=zE3rJiK@Z zgwRq&%ud~=%!z)gxs)IHEBUZZ>gRlF&wVxt_qpjb#)c$%NKbz{*z8+rppalz;m217 z%a6*Bk0*h=L?I3mL-|~h=zI|zp|H1iE^5`MJRE}({9Y{-=O+}tR^yixk?RWo z_teEY>iP93D@3OA9c8nbo0mc?Dovmj;raL=+Qow|{XGIYXs-HU7<~9{R8@XR2?9z3keXF;o-$m+)O>()5r61ip7&FUmvMp8jgl1!wf{@`$(Z z`A#=p)lVT-YQtx&KPi?(Xq-LaEQ{CNMz_2QZ|a&JZb&i@4j4v-GnuR@KnNq11zc~% z0306EF<3Or;g777*ZA&PV7k?pNsIDMA& z9r{%9ku<*9CV32?iUjRnURhG7&9A*}8Ti zg)=ZIbDZG%?z86d9&rvoRwbfmXqYhO69%j0eR=(cIVCy_4ugB$JojZ5^4}jhcopK0 zQ(Qc8tZl2Sq=zD5Bwk?bshc0DNd)5*h`qNud4K4U_sE7reTQs=Y)kQl zj_*#_ON-whlG=eTKKUau1)a7Azm@BGM%V-Bpq9y3hllrC@E2m(n>A-CgLf9NSS8;_ zC5E8w-snOd?9*~V%2jsuZ8F|L@S#YZxJ|76m=ASc%Rl~0g!Un%Oaf8nFDAa9o~Bbfg7hR3 z3-_LqP0m=?1UqHmN}jUwM#3`6DQG@sy?)W%;e4=pxIW0XCP2*HiO5stcx~h%=Gri9 zQ$quaYJOb4I)3`t-K*t-yw(@exc^g0#XQ_VUWiHir6oFJlZ=!H{x&B)X!j)C101PaolSm}^eu7ZVS;c%i1OrAqPR)v z_4cWw4Q8TR*q%?o*nBjv`!Z40ejcupkfmK833!JMV0!zRj6Hp!N*7(Uu^D$_$VlH? z!n{m+0CPsUN@~yN3MAzV0TLkB^k;apUTdd09FZK;aB{Eei zWF>j=^>ILYo;8M2AtpA$0KK`9&-2Y@wDcEr#KCvlO;NREv?0Pp7-Q-0WSL^63%;u- z`{mdS4`3t4EG&FtTbvk}=$O!MFdqM58hYhm(LMK}z{xp&Q^Glv8DaDUMG*96rw(od zx+|8FwI2!e9!k`rUGg1mZ-JkP!LHOE`pn;azSJF;7lXNT?p0P@5oaw?X41L&bUJv> znVym1^k-v8FsbZ~#)~0s?0Qn~{~4Q&1}1&~Fzo-<_F?D6AFXvz$6{;YgrRoW%Y*~c z&zRazcB~`SPx5tStI}0DU-}48TLX=w<+s0CnSuA-Q_5*|gqS?Kf-Al?Z#43h?6{Ks z(%NEWlW4#K>@-yM(j-bbd1hceUQyRsN#>P$%Co$vK(ES$mznvxx6UmOo4Yu@mB5%Y zqW}BI!s-INaZ_f$ciL3({)Eb>&d&>zxx$jxk?=)10o=gO%~3|qSonhh7*D2RepWXg zjE%4&!ygvTDAIHA`fz{vd{T&ia#P( zUOvUX(ChaS$!Udp@YLWw&s%Alx^X<{eOcx<{L|O%iP}+fehf)lF;NZm2NA=Rf}a8n zHpkXaSM_T&OH?FFY&8j=%1|H9AllDfUz`+lzFS(cv1nQoD55coF=g=Ez>%&%I>oJSs_hX;7W-BU9-HNyz~A2S!v|t1lgWZ%&MsAwdlCmVQ>~Wh+ERc7_b(qCx2F(r_RsV#t8muNf!24qwxb_TVu+OC`jK!~Z+@xIBTQY7 zL3P}|Hu6WR#ZQu+n|SL=i2>liAxk3V=e)f0&Eyemt!b(YFs zdqw#%G`7j#`OGX%q3B&w6sNhj z0lWY>cPSUdAz-f1Z)qyoYS^;IyH&p}iDSpXl}ylA{PUcEVR158ZtE*S`E*&flG|tB z=brdaQ{o!(VRF3ydz~&8aRMi2w z)xtAn4y!*Q3<}w6jk)IaHWHyb)b6Wj_n)4rycy5Q@7Axi~$e! zyNZ4J?my`dWqQ0o(@P~S8`I9Ci*oX=`?I%A*wPw%`t)g%a-4=47o*vYKPC;`iU~Q0 zi5l|o+UnL?L<=aZXV}EGqF+2~I*Qwk{g_|Z8>X)H zEq$Aip<)u6pw#<;(=Db>XC^|>HuhMZ0Udp_*-VRc?K??9oe20Q!O~SS|7Ut zFDiG2y#XxqFrh6_&UGwI@OSm-uPu<=>R)EZ_wBULTbfIK&Qf^}OS=6UDt^W0Q)GC$ zyZ0|jL&_Jl&Eh}nC(UW-YfMJm9}WVN6`cP%#uiZ=t9X8_3T_*%^MuJrW6n^~X#d6r zQc2qE?>t>v@iXK{=dT|R!jDBSDKC}oe@!aAf1=F#u{rG*ndC>8O0u4wXps)83d5qPA`pB&_oCeQI@Hh2#M zLZh2k|Ar`9JC|76$V(!Z`=*(h6=9N1Zzv2542TZ#fA4a1Gf!=Txd-OqZ>g`FtEz5I z?_2(+YXK7UtRMM4d>TH5&jow!f9vNZ`;}!|TZpXOy`CkosjcVd*D|#UYbGTs3eB#* z;9%C-ZHBw*3&%s%qS2E)y0%4GV?G$TS>ayjCdoN#G9YvA&Jqgt7Gq|eIBqi z`#{)_qBcZTaEI>hV`q78d<7SR5sXlNhM1XQGjbP9rKH_xw2ONz*`>xmO@WS%g{UBzj-Xq^2Othm4@+c zQ|Dp{NBER~F8HYi7%0Q~wL*#MP0!bl3yv>dfF%R&HWusPS(!{R zKI@3wYC_j-1?Xf7*UjTF9eIBKUqW<)qt}m<*;kVa-pc)QXz`|$&~;`wwNMu>K;7zh zE~SX2=2U5nhFK@!*~%~c3U-b4<+e0<poaZWW|UTDrRg0i^|`V{|tHl9LkYE-97n?ih`lKiBY==ev%Lrdv%i0zth0W zHURnn!G2%cT>om-|N;!}4eLl7qZ=}AMzH=l)4so94?D_r+buDTHJlhs-pd)st+^3P% zFfBTea;jOmpF=1&KB{z8GbaN`YJQir2V+W4b8Q(Rnz;AD*NrQA{-nJThn(4k%Y%j0 z%uQdWJ9$M-M7kGlwDPV`Pi8jbk{;tnWovWDDst{5Y~#`uxRJ}1G9Ex!@L$I=kkt6n zc0k&^AVT?Am#L%~@vM5-&e_5@D0cJ-`U|3V@b#>M^*W+cylFb9+=R` zw};;1Pq#&e6*W9HomnrSzA~P@qkc75U;^brCbnx>;evR5`X`z*wJ+@5qv^ojFr0s+ znmhenLmDm}^a(yh%z8bW38bq;B@BC~v6Wcp|&W^n&Zh>rq_qtTEX3o8Kf=eW^k`g$n07Vbtx z>}fmIG-=P>T?M2|RoP41KbYnlpB;7+v6zNm6h%ZV>#O`1aM5c-euN#|xE=S2*|p^r zRvkC!{S9&YLd?EilmQVfCXf!e_PumFhFjHh+O4XwID9m|hsUfP=S(LjX$7HES8fZE z;z*hCjnU}?{t7$z##fJB@&l3t%F{Z~vD$V%c?pC(JG%K88Ee#aq4yr4>n(<5G4VzZ z5!BKy|GGh^ik6$QuMFNV zbmi5shLRsm39*7%icRw_>smvEopb?W%EwA=jv(U{dcwq7u2G0*@Bd>pI2*Y-n#64YCFVQ9IBS;cRc^Fk+>Td-%3T5e-pWSz)$4%CwB{zqT9qlXqA+Ew*ew72 zFuNONzLRA*;)*ldA6xswk13}M>uY}oVW&nq-uVU- zEh$^6`gkR`%)tmnqK_iasM9$GjNHw4q_)6s`o!<2ui;}OeP1N@!A&a*BHWv(09HwI za)JhO?ZlQdZJVOxB>YIMR=G1p32twv{M^~PsuV&0o_D?*tZF2$+Sc6~ib!{iBd@Af z9q(3iofvg+O_fYdon!ME5yZicQ0BRVG^$n^o|UVM^#>S?jWnX@Sqh1PgO{by^4orR3GR@#zcuTrPDcj z(5l30PTYYLQux1$qvTA|qeo0l3MhbbuHUDY2r1w`Z(gmBg5;NTy)ND2YE!{k+UN$d z&2n7o$0fl$Dr~sW#oc5sUY@RuX!%d_hTdtHD@|#_>>s=SP_|CO9Rp&7^~B_avnT(x zYKM@L4pD9YE3j(g){;}ciAD0O{w+X1B?DEbV~SL&ik5qA zWg5Z^s9P*~SfECTK4+&H*G;k4#tHt8z=xA}wLX{YJd(?FdP`z68{X0^W@m zb??S+Ky*?_#y+@pHRd9E*KH5XTwavs?Tmn2b&Q=y$qL^uw|)Gbw-FO3JW`CLol(zWd0<}NDg-R%AJe!!G z@xDH1$t#*P`FeOVvYb(K%gex*#JhDls9)V5;1@jY))KY(nBlB3FJ5A2OmnhI&!->V zASCj+uPceb#HXIvBGnvPzWBbf>0^r})?n7)c7@uz(a(RCNB?PS&6Bf^6URyy$|NxM z$&cHBxU}+-aKsZZ7!C!?iapDoKZs=82Hcwke}yAHas|3ERVUGoQ>%MQvDOwLK(e0u z0;AMX_9qprrhtA%YFc}PvcLha;yj#4+ju2X=8!$=tw-ZIz2X})z^tJ{)qY3sal?-l zh2^d>qANF-4*44IPe@;x(YudN5N!G^$OF$?(5-q?V{7SU#a@7nJA(rebx#7@N4gI* z0-T*`90&6vzFJtN?1Mg0j#@bx6F&ndc_HNgS{R;>Z#SBF6otwJTRX9b>bVhCrH}QP zabK(67-pbk4d{xgl{a3ST_&sP?)INbDsni##0n^VSLy}b@}51P4omH=`c#pnzf@cFJ-svkDo4d61UHWV*+nY%x2`F2#tNNmp}}CP zA`>T6UrtkB!>VyWfgIbO63!SRUDh^qk2d|`;%x3G-laMeh*&t z1ZT3pcDBpAlgST)&k1ga1RbR~CkLGg?@w_Yq@+ErPIFly)`I@s+se!VBi!{jU^trG zo79)Q^1t-qlfoN2cyyR;{Zy~i!${C>j>z;yz;6E>;kyto7@S6K@-0Dl)d7@zyXKmA ztb3)zTe(MdH{cOEc63lP&`B0~G!@U>qVm0RHX@+vzIMX)Z_dXt@#g+l+O9`jG!c+F(kqtFNmKQrEYtmGt1ofCa>&Frd-WRjnz zfB1t8epnt>t9R~%!_YlWW^dNJW@84ESBkDsHJ(@Oqq0xrw2(7uwI1d{2-d=c2@P}$ z_wKhn?CA))+TZU>cb_G4esOCvsbWiA*AXBQ&B@}C`9LUS?~VSRPlQ8RI=1ErkstUt z4)17mj-j8(rXhS98WZh{mR+<#7Co)PSLgTk2q*GM_3jiSP|V{f2u>20S;CO#SF;>G zLP`QPLD~wn-Eo+_Y^aH*HmalD6bFrj#v)YJx6ogsbk=8BDZ&J0ornPY zt(N+(qC8W9xCGKNCN+p!YZp`0kSiK}OB?YO7U1XT_K$y9RaVWdjv5G4qn}gN4hH`n zii)s<#!Ouu%zq%U;&s_E9OV^8WC>K%j1NhJT(MCLKK;V}zKw`XzIV`;C1nL29g!=l z_@n+jR$A3j{m*837{Y((*S?#8>F19ZX72O7rqLJgkAHrWe2WZ?x7z~HnB@)KTid2) z7phE@DHt4}ziMxbXmaGm zLpVxP36s}KpCZk7*S*&?o7^1^9fcRnYPd9NCckTe828>S~G$V&;`9oOE&Xgf7+kDN4EG z1sE@!xN$}cC{yQ`aR4@+0+B$T9$M&;PfxxpV!co(366$_)qoXmD4P<&lM{rav;^=KT^=70m7*AWaq-<~{ln8#1EgGXr zbKlABIwcaEX_|q8E5VU8;=H}MG+)P$xqmM!z!i4|`QnuRjdlw6gT6^pr6?_#0BUe2 zdQI_4Pnr|xTe?;%;4${cnLsP;g`4t%YisL^Vodxp*3jr8W{-YNbmH2>KAnxR%(kDd z(>TPK6Gh>MT~(q~#H$2cRW5CKeP|%z5U>laoG9f7NK2clSFK%=>W=n@Pt}H0WZs#t zmM(d{jg8HMVfWl!KO3r3{(}UfE?Q(8nSDW-%aDgQu7nec^;5=Z>-7}9D{DJiYM4{> ztQ8osSkf+x-j6MiMlo?t;cbmy+qjP94!CYOS>(Lsn?-vy-gK9mBYet78l&-=M6;TK zBcnm8>PZ?wMf*${wq3YaPS!6HprT6amHOQF%8f#V!SVlOUDiwUUBv})_fy7uGOzL= zhO2DBcMbQ$Bx8?7EGJYtQ^}9)W9@(7S$4UcCsbz*&ygG(j1cjC05_~+!9c6{GI|fC zk|N8ulN#%t#{kib5cxicSwi7!`~~i=pxHCuz@#^?M_ii9!fqMxYdp?*nP>;euZx2&66hD1`=^~01QH2fn|e{`Lc*7Sy=@9X4Mx% zQ5MX1JYxmoznlr~2PJ^bFInabg6)8{*gyLR7fCEjQSqV>^yItlru?7G917=5Wh9SO zMGsriqJesrEGy;CuAUSP1F~bQQ5!i<^qXB=bA~l~i5+-AwuohJ+_m{n)?*;NTA|id z!WAuQ>&S3pdSN`O6&}JtEE9xR9fQbRJg^Htodtz6Ta&qIX4x-iI!f~6!%`$bIpiiG zLgUdsO#*|{S7=9!54eCoXXpJks>xRWxF9#^vgV1l$D*~RuX^M= zfTHpH_0S4c&_0-~ck2IC1TjKf3Rj>_F4x>38W_ZF3v3`d;K}%7Cr(a4hIs=ePKq0@ zvx!ipyqfX}XO07gSu{WviHI@iIOEC}J=}{}kncYvhSEMnZJ7doe0~xoRlQ=9AF$g6 zQ*NwCDAT$`oHUws#S~i8U|+bYjTr}zuL?|%$ZJdb(3Oq^Yk#g&e!_V zy}-(gcQeEcPJMZJQ3*$&_GzT$)x#7JX@2!^bbfwCm6lESt!t@!eckD@;rlz;=;?)o z$ODwT3M7t@X2L^F2o}d6mnHxVNp+H*`0?3{+fB|5Oykz%+b#w{#J(7w{(v6Fh7(=2 zmvgml?u~9in~wMM_BUc=$}KWRL!Y0>rBtWtr9Hh~cz}Ke#C*}G!jmR-X1EK@742e- zm96@Nr|;+yoQG05-AfU5>JAZn`+P(psP&!YV`OJVN_Z97qLhS`jQF;rN=Pz|63mv zVZ)7WjkfvGk_Rt{A99icNxQ!!B}VHT#z4u*H?I1`#0F$+=|4cVN+vn!EU(?Nq*Sr@yqq+%(I^;?mrtI0|QZOnd73WAM z9#W&n| zd-JqFl-oC0b}wYq4HwfMmDOfiCG&xG<=DtR*S}aI#t0Tx`PW~@K{TJZf3BDJxHTBT z{BIq4Sc0@Vn$;C>``NhIS zM<{vzVv~MwXfijr<}9}SrIU23$AC_IOnduyUPi7)#o)HvYMXN%(dtcFg%)v!P_w;?J=-&EU{;BxDE$cy<5lPr(l&5l8vyw|wv5o(mK@PMS1T1MM@?lA~ zP0QmU_6V+=Bldp0GANg;*C&a&O8Op7HFaF$* zrYhRD8i*$XGBPVhn(py>{_l1zy{A6_tTLo!o8h+^R=o}}>y(eD$1ch9n5Vr!tp>?L zPomzhY=(O$a2;2$I4j=m=H9Sw+8Q!5NiR1|P!({Y|P=Z7Nv6jRB$gpIRu+ z;ifIc4L)on;Ar{?4aX zrzfjdlJ>Jd)nmEl8{cn&8CNVm>62k&bPDdVTw1eIx}Pb#GXylj3L7lRX&n-qRBBeu zQF{5PfPI(KxaNT)|1}ar!}>Jw1_&a=m5DI;`bhBk^vujQC~*1q+6mGkRfXI(c#JP- z(ff3eaWwU|neY|=)$8E&=}sdlCr-THZDmeM4|U^Sp&^5>5{huu540Ebbf>4nCyqfT zs5v>g^AuK`fbC=5e)RYC%`|or3g7(2-9UYF8Hl$zZ1MltE9Zu?L! z)0LkRtJ`eGJH}(A|80~R)uXkCutl5xKrPM9nmtW8v*~`> zY6Ews{e9KhuT_dO63mAGCsJ8-Y&dCXc*qF~Z~Ms5L~5F{w%uG76KC$73yN-*b^*e^ z4$ZR6a#6l3s?JEQ4LusvFzH<*rYCUr-tfdi+D@=_S5qY3QCTe%>u~XK6?Y4j-8AYD z@+=>No-JK}`H1@6+;8s8Fcl-K`-6ay%#r~;N5!WuIFK_;0Tph zdc!V#8b}t|zHQYY({=^9(pR6vNe7moD5B}+=KA8RDG#m9RP_p0aRh09#eAB2S-$)` z55!$+W*xZwlrpPUXb*Te2dTe-gw_;T3~WX4v+Gyk5JzR;;+ zt`6lD0>np63f!Y2AH5*#9Blu-)-2C8>J{m;s7pk@O@?H2H7GnV_k>rgz>RC>oYe#(@l<~Z zzd$q9eWsI-nJgOk^hSY8zr^XelLK>IHsa-5kOGw@b;!Hsb zovcE(C$_kr#YYSVD|>KPH$xCtmW3iNd14HJ;PY!D$YNF$G`aVjzh7Y8>}t(bh;!BW zR+|iN{C|j>9t^zsA1DlNoaZBix0YV7_qSOr9>JC0)Xp<84ie1cx1HxgaDPCs-4ihn zMM;b#ju591IOP-mo1)7Tq<7&*vTAA6@my{o?$h<|!h7lpo!rcq@jFH*uQ)BCqI{s} zuIA)e1&4so>0hX6T#*E3%fB!UgOz=J?zswzH1-E&u7buS#+>YkA7X1xn(UNwEhgb! zGAmb^R~3%iyE{eB*v8+hNrE711IIne=HmX&=wCf5Tr{I~x#ij81M}ryU zKP~R0zCR>?R>XU@``OCI&cN(pZ^dFsIQ^Le;7*wjG#_f(EI8n^KkrFxlfxd@y5lHf zim#xm%Sx^g#ByA#69A*}nAkeZkT&Ud{StyPz2+kJr+*5RcPjdmegQlYkWjE$kTeBa zSteEH^_t}E5=F%Ua>z*Qxs=f$%Q;g$Y@4gqRq8(i<{#xYP0|4o?{I^)UYB+2K1VXX zp{!MwEQ;oF8txD-d5zM+`9=W~?q4{rl1?1#Ay(s?PGUnyF>v)2(Uk1#$gn(%VyH-D z9Zi0aZMZey;1h(4ISBI`4_7GXutzDWt#BWdBO@x+2xJ<|1U)mruj*O zS7H@*1fVObCg;MgH?gzT-Ul;%zYmJ7X0~-(@9610 zgO^>F9<|jNdnU=8tD5g zt#rUsS2VY0qESGzeU7fBbaFN$KG?a23cBVzvI&mQYqFEkRNpy}G}ZW-HU8THDX~M= zUxVILvj^DQ^Y`wf{8QJdsS?M1Mx%=49ntNKB&wo+yHi#=$hj#bnVQJ9FK!5jpFFwO zdv{+4Iwna{wnx&~t0z=#k28IN`S$ZO+$_EK*hGsnuqpn#^@HtwL)x|Svzf65vdDJ; zHLhP>Urw0v#itUN21nHoK2@A=s+<=p z89GrGJGEKI|2qG&$+mF7-|@Ca>f1?EY?!e^&EU}iuY$p?##bgPzyeI_fYu4zcw233 zVi1UQ?P{O!tJJkd(GGeWO&O)aKQsA821 zPF;|HK8$<>?1GuAs7}|u*jlO$j5Hp&`-vdbP1%N-R?&9`fybHrNG$o1T%TGWm14n& zvo=d{f&GEG3e+R)Y<`)#x(2h}$;HG!kVjJUWH!ye=2W^4PHj!N(=K$T&%f}~jct}w zGp1d2dY=7r9S-Zqd;ZeVgbT8qBN|M2V>!2muHuS6IhJCjOYg+1j zr}H9$!`(DE%oahIgp&+3yf-!Rkgv@M^9JF@1^XGBvKs6s9-&^sjpH&fPnC}miB>)2 zqmOHVxT3yO+73QbQ}B-!oUJr-N`_&+%uo@3Zi{w>ALFPXv1;8feKtTgw2I4%xEEJl zDbeyv?@Qj_F~&0exp_HtjfLc#0=4vkXzaP0r+#T!(+i6GJo1PbP*4h; ziY}s^f0aGp2`jON_@I(r@{>w-y2<@aU*8r9URdfCd9<(dX&bRlfr#I2q@A$f(Ls~7 zIZop{Qz$;@X>zDF2@|j0{jMlhr6X{AeD5C($*9E{Owg9KF}zrUTo4DKc+9-PVmBv{2WOQ5z)U z`s8kRann1!xHH9;FM|^7D7+bucG1l(qwp||Vv*=HD&UXGn8&MRHJs8_2n%q?bW%J! zr9HdgM2@;)lD?)|Sk_Q^@^>CS>!W)+rj6O^^G5c~ODbMOb7q6k|3oETM&A^Hb#~=* zr7&+y>Ia1u=4^q+_rw;J%_y^&8N;f#r@K-N>6MYhX1sYL^m8e%I&$;njps7Sr{w*KG&QD9?`4%@kKoD32q$SvN$fLOx5~!TDYUwd zrj0mAWYRB85+W(1Ce38B5vhQfDe8P_N3#0=- z2Buf0BiZ9?9&~+IiC`!;gZ-<61und!zO%lub%5&XI+`2dw70429gvQwKm&zSH>S&o zBTh>v&}p+x>f}fkdm_mB@g`;JF|ULrMPdv|7%~Olr$5`_R3@|?Y#v(}?$X1?OfWzd zk$SJX)UJLa)}Mz`zKx4+cRZ3xKC~o^WF@BgdPlkbv<>YtVx{(d_ zyDIA{$^pXny`LOTv}H>fXjE|8*ndsn4ie^nBG_v=Zq$D;C$8o8ycdbnQS7emYpPLZ z{%q#-ZO_7woBZwb5dqfRP$z0y+WeqL|HnOiNCv79L4PPK+K)1$=ka2a?iCMOwy<~m zb}*j1;Y?yw8TGW&y0HU;9*zEoSsiI3N{}s&MKb%EJ&J~1o- z#9)5!8wusxDB*4G`$yT#wC1)_Vjahjyn$z08aekl)A8tC#(<>yEki}~kK<) zRT|K9?KZBZ6gWC+&pL}t5zc4c27jdq3eo|eU8$xB&d*U!dYVFgS@V7ehwH3w*is65 zQ{AK6Uns%jeoOr^&+Y@M#sf1l#12gN%;#ja#VH~`VXvfW2 zI3v-3>7JB?c-c{H#0_C|mMX$dArE>lAy_`T#71jc0oK-d{bdG1mh7Yhtm6cK`{QSg zalx*S1s&7#6ZT)Ezx=%T)&O9;luUkUKcE#>!w@79z^R|?U=Gb73V|&&9sYj1^=01o zRQy;C-7R0yF(^>*TbXcw4c?j%{Tn|`PR6L%)f=8!`P&SV%`+xlKTncM2SEz@%@=3c zZabtVAQQc&(EBS?v=$F)usIDj~ZxuSz8lf-C)D;QZw1CV*Y7}$fc8>VL`^donz&& zdFsu=t%WE*qg{h@ocF1usHv0c@j1>H$#x ziv&%XI)v(*(`4YQBCfQkU&3MC)ZN;b1M@08wGvx^>5LPSu*zIVQ!RhZ@yg8H2q1T@ zC~H$9>-74MK-PGf4cR5|YC*?s^CtMeignm<3zy!+5t5Pp;F9-`t`%QSQJPf9N}_&j zP7|F*z0E)7FrarCeE`)#W!G8MHtbV$qlOI)riFCG9gt{fDvPgFtosOMbb$s{{m5z!I5GwB^immuOPgtuI~bpnU1?xs*?3&N zhAm<;mz7BlUv+DNrP!aLnvzeCx$t;hF~OV)u_Q>J+?F)X9o28+KFb9s8<$u~s}SX0 z)p4UJh`+y%9A%#<#22)&W&i+o)PBZg0MPHaxiujyP zLkq-RdljJ$@wMvD5LyXcZJ2$}Qo6))77WMnZnX$36b(wVuuEr2jYDtxR+D_%{B~L* zUuh8P5p)|~!G?ECx%{Umy5|Q?^~l~!c@88>1Y?p!;uXOoOHbDu`)F=AWpft|6MAd# z)O)KUOtdyZFAS9CZBQ2~5noK&J!whI9W+=~Z#^f>C(ZGz5H?+A|EXJr*m}bDueu@E z`k&(MYXB*7QXPg1a#X7@OPeXog3o&%GmHq4VyO~IYSK`P38#5NMYHZTdAbVA1|OJX zfar1!QgJQ(NXx)9%QPVug)gUCG@6p$dS$*c#hH~wrj@3XCCj=+G8G?fddVh@j$zVn zspp`-AZ3O45zVU_TJF0}@dv&;+jNxrcPB%#Vq#{vxpM0BCEZw-@j`=O-b(Xlr$fk1 zrni3BRKSAPjoW^dOI6DaMhJPyHIOuNF|e@#=%cvh>){dgD|4&GNO}b<3%hRe+GxI9 zm66W4ewWj@Dh_(n$7p61!_h0W@yO_k2aorElIxIs2@gM4md>xfpmS?0e?`xNc8HPF zwlI}RCuIhfSznVe19*8}O-P?9yc5V(e0G2A<332-pzr~v4RS6Vmk@Xbpx@BbPc&)! z<2nWXB0cJNlo+GajUk~B_~$V(D)-s?naYqWwqeUgVzgj}T>X!ZbB8OYopTmV)0x~h zR9yYL%Iz9f^)R5;dKA7?T+K2Gb+w7m{PWYwIw&kEZaRD3y`=nRO>Aa$JrH;x?$o*% zHWV~}gf`wmo`F4)`{H6_;xFia^#yqKcK#l*-jQH-piZi+E8o=VAf4h{ZnE*iKB)o= z6kw-lO=_1^=M+O$_B_?!E<{<^qZ&_jVWOdWAz3S$b7OaT;Y?9e>RB`Az2o#AF~YF1WcL>SPVG-Z?0 zFPXnZmu`Jioa?1Wzbbf8$~-#HT@vwQN+$m+9MaR;a7GqcHXLSsHqyQUiA$1|U$DQw zGD&61lC@o+3I3xA=TERxg^#gBFBBict1}G_b;J5AWDb1QA>_Dysxhi~Ag8ghw|B6k z#54ffMz_AWp`bL#J~wX~(ZCCs?EVKbVg6D3`S|jlLD=zRa@Q;SYy3r|0-BH$0O5w4jpIa}n z0VFAWw0)V1kK9^b+`g`8M3sgx6-7?URh(?+zuH*y+6$9>UsplpU07QE*@P^U|mb*CgpTdyy5`^n;j9AVKMo(Zs8OI3XvZiRK4KRTpI zH!(+s8n>QaR1}vKTvOc#SIO5UBqw#_9>RJQh}TA}3w$KXoDXdi)9Y$;&J&QeIle!R z;zKjnv%@)fn=OtnqYEi|@oU9zq{+FihvVEhE_$|!TKK?Ky~KS8Kzvg<+gw^vSmR3! z^Vk^ax;C?b+&w#*=Lod|p*vP9tbGew&?wNLhGgXCw={2njE%WM^Z(CssBixtBLl(J z6z_~ptzvl#jZHq^t@fBLFl>%c$~ckM^`Gd)*OJD zUa z2|$d`A*luZ2wh~j+@87KCa&7@ zEzh}8%~^HweGLxBrnC*|!2q%4cjpBoR%9gUe~ga2YC8=%g=c)v!8&>LHKM_-)ct0P zcACf(kaU8F&5dUE)owa(INSI&(gv@4k>lh0;NzcV>6n&(c2*^o%&%(E{>Yma*@3_@ zoEZeLf%`epZJi+G*?GwKq8oWJpPvFAd!#o^<$I1JrgqidBODwUmX|dXT=&TyFATdx zlWW)ZB>KorQw7s=EKBQtMoEd#EuQLdiw~xIy*fKpZ_YI!Ft}&$$3Z(dNdpj9)9>!T zTt|hDVdO`O{$=gn?odhWMp7Zv1D9R|l`(uq^ur#;oo3*7$_R=o&-lPoB0nmd?;?8V<`axB2dbfhD>&|owh*lg z5vsS<15l9g{jky=_yzTaJ{dWX^MA)>(Yegi?zq7tpQfkL3H{7u@^6c}X~(fxh@^)A z?TNw9_$EZ#-KB}quGh#**9FMcU$0q~@cr4?7}DoL0iq*4^UT{a9bm^A8)+T}&()gp&oqd9AhV+ie+V=-}2=8^r0Ij;!=UokrI zleAG;4j>#()|px(Ap)8ZKm|9X3a&Dr@$3ONrZ4YNKoN7ZDPXp}tD2O}<-0WN zJF0~aPSuJrDq3|~u^&HGpMu3D&P_jlt_>}JMo#Pk9Q~V9d&^FyptuG z-ZJ8^+1f3#>VG7YzO%S<_6kE9P<1wGrikF`0hJWj*meZjtt1WLL*cI)W+R~9B1~E| z1Yx?`!a}Q5?v0aXoU99h-!W}7JX?6R&4GpIq$QN=5eKq3`TOd zoC~=<#M5bNKFjgSXOT4`?kk}t=c?`&z<8DXk(ai9n>f-?pm_4`Z1k$PcMpnLk=4(z zs_B=_sxZ&Ums#}#oVb_DkSM+V(IDm0^K<1M zDd1EqaqtKfmu0`W=?1pjMi}iL!RTKk&=6M7US6I=oEj^r-g|<#I>ugy;C0WX)m^h9A>6?chfXK&yCxSX=FszRMvg3Isew;h@iUxg(Hi9 z^q9}wa7m$d>M!s8wmREa!FbSYXB^pca&gE{_*XZ?#|Pzx8tQTwSrWH|wpvnIqeo;h zi~6mql={bIHmAD(f!(0O6LOPJn9_S22=lq5_UtgA znHL$wOZ}?Xc#TT0*-fGRI$>tZ-Xeb(TXD#&?$)F?f2C69j0c%S<%HC4=qWe1J8FIw zfm3%%L_vk$ZWi;#G{j<(zl_hBAI*{f z$x*Vn3YrwRI?jWWCFBds2T#GDpiCHcYV}rCc9aY!%Wbic14CPxv8E+o^GmUV6sLe0 zn45>k^!)vuaG>sgFn%E{CYbvn=}V8Zo%_XpP17rFR&6VWdFt1&zs3u1f4e#I-4u=| zrnV|(8QGNtF7H)wB2|K`i`N*v^b}@P4R{`mXiL~thpu!ryM9IT05T2SzAD;1*RLny zv_CzVoreQ1=EpP3_M$?%e&qTXHlpjL7=GvmA)i8CL5BOolb$CNYj9;pNq499sqwHH z=J~fj4~X7|LvEk8u96Dsp|8K$#8q}@&{&&aw7{^BmD!5UBn2{%~Kw{|%kh3Lh7^ksRNp`xYpT3oZ7#<6Xs&bbG4t>Xj6X>h?NRS9Hssh$B4A z)CGJlr6MKp#G3pgqQQaTM{l(UcA@X0*|{0WGW=S_vGLb?C$2KJN<@z=fRIAZr`((G zmumJ?Yf}uP0``Z2AfeBRS}`%&uXT0FQGq}lDrKPv4Rm-#$UogOvt1mc zM)R&noDrqGnktH-uhoX*BIzC5AKtHT(B4-)is5?a#b5b|{$rB;ytA(4m9dp!R))uu zj|DJA$t%1kO0ppTHP0JOBSt2OXTg0SALW<&CEP`AAB!yAh>*6ZvWXjL%j=P*5x_op zvs630-$&Q&4m^-8JEeIrb!@6WK7|=#;tD0t>O?&v*Wzdpxe4V22WwN>R7loYkwqNL z&jAO1ZaHZbNKR_-$MlX zIVyqYHd!=SWb^1|u{;kq&6)|^@@s1Etanyr ziTmYLVTw~}vQ7ytf!W_sz+fxo6t_`U%Nd)Ae{j2V^HoN{S;10urr6zHVMbNM&FmE0 zt=ombE}*GBl$-Qq(j~()hC{V}b`CxHosEBw+@R8s_wA?vPt4#Oodr!@^R!MYB!noM z!`&eEr`sa`Geoi+}k%i-6c_@5Lar^*iY-aXY zi|EE%w4q<62^X!XYgl>j;I|y5nR=;zh{>I8?YoDINIFh@D>u2Vid{KQ&Wu2>EV{;ul=|hO6LUi74UN7Ib*Eo3KP1H z@sJf=Tm*CTGC3bb*y#P&4o`YU53a}YCBxH@n(Is}HqncA{CUX1n5L{c%i-c@#2fr7 z_+Vx`Ky_Kl=>WN{Rb-;x{Q77N8u&Y@=e{L$(>0Z8%;xk3#CLKvby<1EYZ-TVk-BuG zSA{nZM9Xl9DnmcZ-I20izu}!7o&7%J(UesA$aGI-^*y@AGM(&Uii&$9-+O4zDhyxK z)?A5}AxpjMsjcI8SjhtOsGDIv`>M8Vd6{5N&~DC@=cRJX(Sgyf=sw^CZQ?E=J^eoz zslFa%u&?h_cizD&_(gbgB5Ul~LL{N_&bIM> z6KAU^m@xNeEXPNT!VL1Nn3UN`MW>~#Ib!)Bi?`WAE4nQ&jwn4AbGS|`uJDk}%=CsB zhZ+D+?>2+WcW70S+wXm-*YO+AZxa(oMeul0-wJ zz3}aT4hHna_57>5+4Xf4vcCpRIB-KE?spPO+-{#y-_*b4myQ8b<|t<<-zmNpT2)Ym zLrE7^=w{$r29&&bCwB!W@5=AL8<|{3ou5VeULe!L;gY07{a`Qw=$3Wa08oRYrg4BxZlyHF(c7mFw!EI8fAqCEe>v|dc^a?aPAi)E$t zXLE%XJ-f#qBmo>hOkj7aVcKORNAqp|<@O{ZeU zk)~)&uaWJ_O+McJ_T>;XFE(^?c#1$q@`oYYX-kh99f*hHxlV;A^9M{Tijt4 z0j@_}@bQFTo7~oJQaw(+8(OAG&+1gJ0^JxgMJpg}e+djd= zlXVF9O5S%VTG;L##6tN`6t?C9vQ^yW#*VYRPq_*PVGWa+{-?4jz?2LbTBu7pdP8v4 zXg+jGeI!`NBH@~sgHqiQQ5}96Bk_UYuj)9cVk}m?kpS@sC4uRAxAXa(_aRk!K8aFD zv!e-Ob{KW}CTzbYy{thOW%mwmm*Vq5u*!jC3?9y*-@heE=d`6)lQCcOkGJSs9p60B zeG;d`Z;$`Prtj(SN`D+{?2PCbN%X^u*N@uFXINSvH{&0L$0ETbpT+sz=2qZf!CiP0 zHiZtnsgUC8pCKoHC*XH6A3^UYOWfmHC6#_j{KxC2nt@xjj6iI5XdX!%D2ROG0e74C z@1l+%o_y4bWcL<5<@a}QKdaP<}q+X1@-V;_{*P=&ru(;{hA)0;jw+@vG*#v9CnzhCF1SVgv2= zJg@@ABQ{*9h3K5l34tjt$@NNKB%jtD2lmU4;-^#XuP+w#9CCGd;5GjhSDYc08u;v^ zh)43M=E|L51Ly@4Tk4p{UxTuZ1Vyu0XSG)>zw$({aNFF}oMp9d#QRCPKcM0&Wd%%W z;o2L~ao^12q%NF{Xk+wWNdUXll0j7>{$8^|Z&QW!o3K4L|Y7?q@owzo4j zpNY*ngn(a-=N!G<1`NoOglwo;Pn;+_*4n)%Dm}kvS&;q7U~KZh z+Xl|M1s;w7Df2Vq7#h<%*!!|W49qNpWC=A6k|-@fSDdr0+g*_i2}>-t0Xl*RGiVtq z)4|e@`B(<*X(=!&SZ5;HeqT3n9^H!P?j|-}2K`P@h*kGlg3OIyEUMQ=wVdz4qhi>^ z_5Wk)tiqy`-*C0!DNG$P&IFobk>Ga%hc4V}`RLw9#K4Bg!^z@GQp?|1Ee z#+-4mp7p<1{qDxlmorAbH8#nC8wDvSf#$^w$=fCIn3Ln?fzvp31;8nxIDr8bsQnV@_~!nY}yOgp^)mNA)R!&!Zp-x{s<}A z1@(cThB=4)$IZ~?{){3Z<{tB&C^|$li=CF6kAZZgsZN)9TjL+}54E*oq(+kZPe$Et z1|>hbjt_(O2%-GmbyI<F!Ccu2l$%`m&(h6_}$p+eaKlks&G z=>a0$MDqPlwIl3mZV7 z9zIXkhy0D_%Dz!;ZXZ<4uIVQ_!bHpjXVp+^y817?5KLsIFGX-7QeN%;eZZooL?6Iq zR14ScuF?;n!@4O7sIcl>I!f7&6ZBNtF#l1~lFOVb&ku$MUdyFjT9O*hu$dDt*d_zcF|Gg`3}L zrgod`?cdi;fY(H_8l>j!-5!ALFw)NG@A_Bf*Z1o+xE$}z2w&ANH8b++_F^uU-Toky z#q<)61MIl>f`D?(r>a*!YoaGdP)xK*@KyG7-!zh-{yDK|Et!r zrk&K54e2z}0>ZQ-23=TL_IT@&eNUcR1)@9iE$Y*So#JF$q=|kZFXR%Wab`JvS|cjE zknLY%GJqae;Ugkyvaj5{{>q=EotaGi_Pb3&{QOJJH`!f4^g&21maWx!I$zd9t9GR* zGyl;G0>TwFa)fSNQCFm=Mbv=@R zc)TVhPK8|)Bj_Wjewj|*_^o~DGr zn#rh1V}(}I*erW;EMDmL;US77c1v!XqPu(Sf_qtKb8{QwV9WjX@qUYUF-?$zaYe?L z&wkG@nPUY?W~kMxQAcY+wirE2=QFp61$am-D zD(aZ@-scT_fDv#vzB1mVV?|QyOmO{;U*|q&4xz~O)gPc1B`VGE-7Ig}$$l8va*jAY zpukU7H4f~$_J$IAF_D&96-N^`0Owl^tM@J#$JCLZCUH-su_Dap=$dMfZ@RiD03h&CVvEikUk4@NdS zHa5oMX$mtv*NXV^sSwFjC?o@Ii{>b=<^|rUW=R4Lf;v4Kj+nG8g*Z-yEjSW2nO1Ia zI((n+fJS5gyIe5=CU}JH9%e49EL7)9DMT;yUp@dcfPfL^t|pl!ulNi_%cljn7PslV zlb323+aTA2L%TEC!=pl;nY{30z+8A`MMiTz5Ad`S?E3&d%v2Hf! zb>ixrnZ;V8b~RpmuX189oyRVp@PWsVAU}ri`g}MJU)V|94?@V2Yzi29)CX)g7d^{g zwi;9KR)D-xe#=w1tXzXC7txV$&v%Uq7g}6~x-;-Wh;~`&oXp<8j-Bx~>?Y_wAw~=s zFOT}ayEfmnK!v>(7$H{pf@c{0-1A)f;$qmtdZNEF#U54FxJ2 zVjQPdaYeNLZiLdI`LPdn^)jZ;CMIjB1p!_y;^x0Tm(joBh%uGH<0WRh3c*Q_A-kor z$z@s9hgf8fc}1H!Q7kjb_v3(7MPD8o-Z`%AK<7sV=Ke6oD9*c>9n+RWj~{0jgs-$G z20QDaBWt-=D%~At-Socv}LEW3F`@tZ9>4@>##-bXn8_chjvz8I(Zll z?%Ril;8Q%tw`mE?c@5}xBHoj;sp--#^z0O@s1R;c87|?CxM*;zgQLzQO81j#M^>q% zQQ;#^7d|hHffdgNPtT4hnOTlM9qP?0;m-JbSvqO$)qhdjjbr}DQi7hzKZpuB zvS3*9_=VNi#=vKMpX4^)#1KVia`M=*ln%j)jGNQDn8*89>=+f)qSx1lhv(~S@>oU4 z8951ySBZE4-7a93z)T9Hjs4GgZsRyjvRf{9ds7NACr2o@S>G7g%&Lmgw6EW%qco8M z+>KaeNt9nL(H?D+pygO`yS1QaJ^GU8c)_XaFi?DvQ6VdWFZdGvl79}nUvNr&VDYIt z0DQ8~T{wWz$ZFVTDV z&Zwe663-8tfmimOQRzgjZM(eycq^h-KK)OhkxDMmUy(^y2Cbq!-+7BF*lJj#_E)HX zsdQ^js&K8pvQTvIoGN{XXT8IzrOQ*^9LXoc$86l~iY4kDR*Uybn)tPkC71Im%V4wq zajH?@MG+&-+hyYL$C{++LIZf?$#p~AKuP%Q3yLsxoL(iegb}pX|Ku;>l|2Eua7AUs z|F_uB`}$Gi-}08J6~oV!X#Rf@8;?dWVj=|xG`allHuXrd<8&g zo7B_?QF8+dn9cjuB?D<5d7^=unhTKfsfJsl_zkeDmqhxl!HIv5B z=BFanVSkFA3R>k&0l5k3*KUon&yB8~bxIabBDJvGl{?jv!UdpwUBeM(Meyvu-n>X6 z?Fqrk&~6BMIx*=Uz(M|4Pg-Cw_%_FE^DR;$!}#JnHdOMrR{~CmPz>;}!p?U!{T})( zVS5T;oqXP*1`U^UqlTdlf8k8PHM6cC9*~b_e-|?c{@!qBXb$50`W7LsKK5D5v7hO$ z%^2lp?4*yMF$6M7GE?270l1A?(W!(i$UWa)++>jeQWZL6gTzMiAy%^`zf;OkHGPR{ zL`y&FxP5cx^-O8Y*5+Q$tQz;%Of zEdN7C1C$~g4@U~h5=Kf}pX({~bp9gJ47@Io*zX=V6qiuYCoZfAs7}Y2)>Iwvy!_{8 zYB%vYYmE$NK-fI`ahaQ-FK8eEcj|Lwq6jP+vP`vX2u>7ZZbSOjgDJu zCnP|wD`R=RN4(muCa#4Oa2gyj({h30yi?mkTODq!$d+h|w69>jcScpE2M`jISGd@vG{Qutjhx%nf% z??=Bg&+??*HOnbnIO3CE*tK&ZzeXRJr3b_&8L4Ih?OIN|t9&;cA>NA7VF|onwM1+9 z!+OoK-8iu+6YpHubY}Nub_|ie-m?Xfc>De^)Z77G0v+;qBMjLElU5DFx>+w9W`0Q2 zf_=$^*Q8vyK=@nCX81-l@6wD~XWWs)(}^2`xJFK0pK8QhT8NLW=+?5g;=YZ&tKy`H ztmd}c_`{IA0gB|xDX2>JpW2N1tuNAO$QGAZUFbY-{3^~h0wu1;*VEO0xp;lK8;Je* zAmpgTy6}Nd==&n2$8xGg*&vJfJY#iv>GiRG36anN!K-H2Z+yqv2!A7sym4Bc@qEHw zqOUf#*|XwJv|3yVaX2L=4n(S-uH$OCCI!{9eu~rRYp#Jsrjdc z6D`8I5FyIiy;Ry(<2=&*6YVBF0m4JH%41{!KYGy5j&x*yjHwC~uax@sv7^mQ1-_NE{|_ z3_(`$kEly8^$DSE9Uk)O>ObRPLodhl#&uS+Fp?GMQc^U)(L7PFQSznp7)UX*Vn1e=fvMI zB=3y}KfDWqlaUK$6c;`tUvxdXJe1B24hN>ttmvz)|Cp@VqKs2iE_OS(M=ZrYi1aY* zwAXxC=u@T+d&->y324(m{8p?7ij-EjdUxzbI610oNd~0{a5&^8_0!W0G7TK696@OSr<901BA~h7Lz`(J5XnMDxIT9BMF&_6PSW$7kmMNEef#|0AL7>m ze7Jlk8Y97TXC9mjr-#)$@;x%ISJ=~5w1bcc-Fi-OT+RpIMrS#OG zk6OH#5yGapwAXhwBYk_{-0d75UQcUT*eQZuI}Pvh;it)*xjuf0yOi6>iMG}V9K+bR zFM*$Dln9sStLwFg6h1|KX)Ql z#M+e!LnOdeR#h80RQm z@?Lf~Sq111BfjdJWtm@g>*yHhZt`{5q_i}NM_$7gywEi1@PN&T+2oG%)Lje7vX`R8 zJKv2q0bw1&Uv!i1Y8_{Gzw{E&xI}Y%y*O+);uM#yMkkuivwQA$;_aBWe&g*vtM;&U zWUZ2hr^OIIswP8yIBi(+D)seJs2iymA^6>Cn-mATOvA$7#u7b=oKanNcJ%6Z7~|Gs ztysy)4^r%jja2sC__9DbQSQp%*+OCbopa`ua;(>sy;gV*t7@W|^R9}Hd%I)+I8L

    }mf9I)@p^U$bb6+&!_WK7M*Lj{AubO7@t8Y7?BX^#0`eg_LggH6 zIv<#CW~uWmJN-c5ZS&^yI;MRusx_MGc~tV9j4^p4^5@bmQ16AVbSX!r@GoE6EPC~J zuktE)-(sr#Av(4TdXXyL&TK?~_~Ri(V^Mlbs<;EJl^Y4pfYDvZ1a6})liA2j?-ymq z3(q%P*c!^PuU1Z|_s^@x+5@&Tf9Uzn%fbGIZIkUg&5E@v?^WSQpyt12>>Xh-)y&}psnk;I#u*l7NXLWxB6mw%Yx{3JVjm8r#* z-_>Zzs-eCLtdQnNw`aLuyPW%8YfTO~4Ntz(6|9Jd(Ma*s4UcAA&70m%Ecw~AtTWr~ zrEt3&?)0W{Pppj3GIG^BwAaj^z!Z$QnnsY+gOPFEv#x z=cF>qUud|4@6$;WSJLP9v2ldv;o$gA*jkuxoYaO+#^S}zwdNDW*Ici+Um8+r^1pkx zUl7&$@G!)q3;PYCXHxEoNCH|Ri@~jtaQ4OD^-34MTWejWq7BQe~_{7W#8&CLuvm~SmQd4Si(kD zzv}|At7eY+E?MNwBm{1v=Ju~#@SW$&Wl1MhtX|g|Cd@LZDm+xi%QF(b4V7K@OYTlE zl9?x!hCL5teLGFLRvG8Wf*HZEr@ZJ~dA}xdZvx`q&|hgD^m7_|wL5i*$v^vH#)jke zDJHwljeC~*GS>U*+DiX3y>*^F4O~9xYCQj{#JG58h!~vPiR9JZ%|>uZ*szo(a|?*M zYHJhEWkPW5SQC70G|#_Uc|in`;4BmqXU#`o8DF|3QHlLz={Uw9=(<_(4nMrM)vZ)!Ls(aGAd-jFj9c^&t1)Bk1m>}ws?rnLJTncRie&Rh{Gu25V*N%{1 zeZ2k!#!Erb!>_SsJc8M1}RxS;aN@+pF@mEhodSl^rFxTj#ayPIey zN=;j;B8lhQq~?smw~l(5vZGp6>kwceg_pIl=I*%qrFy`@r$pOjJ=StDRC{~B$t#IE z%lBX3DT^;A_O3k@(X#~1sP7!rBr)zV6&=$jzOEJ5Oh<4u4x$#INb*0Uw6y%`2zEnL z4(733Swo@Vbo%W~m?SQ>CQMQEC4F=?MmWRg$>%EEb$|9HXs7P7cEC=!A>L#iQLk^W z^G>8Q>9a;NZ{}@i?+Pf7nm_EU(D5#{B{BN{3%`Mmjmj_bI~i$rLMrzqPz^5zFYfhX zLFWz4(~Nk_f?AYi^nn0v6*XAvo_cYhLHqHWG-8`b5u@ph@6u#x23+)q2YoFqkLSBn zpB;|!eHEkz5GMhH@1<|UGi<}Cy|ZS2H60(<^eRr%*$O?z>k?1SfNH=gp|H$zOdEHw z8L@ajI(9fqU0|G96Z;-~K9`;LvN4b~K(HS#Jh5Of!kqV_H?jpl^D{8e*ICzsxsm=D z@z7BND@@Sx))JJ@FL@rHj4J0Ob7KbKqD8PNYDCZvdo8zNaS{ zp$Ph)*Ol6G;iS8dtBotkelh&yw1qRo;+|JG8o#LCRCUVqHxbP;KRMx98lGXgsA1K* zzBz7#+0|Pzj1lt@BzbHkassO9&t~ac8Oh*1F=2yoM z4Kc+vvYgX=q%6TRVcOGvQRR{9cgbeCMC1l#8{5DZyFYk>#HW3?^uDqMl#8LC<3Ojk zO@6QH$Gi_&EXif$Ha3`2EG$-)N}5dUDM4mb3^r#|7(Xx(U3pxHublu)w5LxZt}7_8 zDm(zz+nb|>R2N-h?OZmN2>8McDNb^rwC}n?Lu=iz>er z{a;JAzuf4L%bAzPpRET~>J%jO>`vD8hWm{KvB?%y54e73IL}nixCQGeY(r`!JN%hk zFAPsJI+kONDBm0foE(zi+GLxcX|B$29d#~+z{Bc_i)~Y&Ctr{^tIYMNm*e*JQL=|2 zuMQ;fgE*bggZi@$PX>F~mYp9W#yga;+a#=^$VqcjSUvEn>l~H@m&(I3Z`+i=v zmY)GS$scta2AP-752aKr^6&3YieO*Lwiat>>a|E(sKu$HnVeVq5|EeMW5x#AOadk4 zJW0r)4$jBZCVjGx%BxWw5b1Ba4WV%_WghD}F4)7Ek1CQFUpIGY!kd2@mbn{}!C20T z9&(Pn|M>qV`)*ur%)f<4KjoRt$O9=*flM+?{POT^mH*z&H1fkt_i}8qydystt0#5M zqMC$c%`NIT;$}S3Z1^8xd}#lwSRC97%9hl3{pR@B%-LH?s#i;|27{H+vQqJSpH=c6ir$4Mz+ zCN8RjmJ!Hliza5`+wk6bK<6iIuxm}By*W_LcJp(AQ$v^ z;mSO&MTYx_`&db6i^AlWzS;bGFAt8EMn*~bYX6;h39tM82Fh}N2P6t=9ajHm8nFL~ zFWPXwRAaBp0$#ISil$lk8_)cDK-s{M%T_rlovUf)x1m{8Yo3t~EGE@Qp5vp*6UySs zc3=BmO+KDeG13PCP@!){oL(@GAFtDLDc^pS;ed3Ta4iYhJ(!2CUeRa0Y~YdQt!Q@W zUyNRA0I+uab)j;rp5>vet&yBX{mpb`KYw>_7jKJ5XSHF1ZE^Bm29{h@qM2l~il|{X^aF}Vp5wbU^+!*&MO3LgBWRhb~9%gG< zSQNh%&pcG(PTg6&Lxi3$Boj{M@spB-=x&g!oAdhoZD8H|O;X+V?QJMym7)kWciNi> zzN{$B_~#))?xHw$^`!K~&ANA`G;N!TsIu}@DY$jTw?jA!&<>n%FK;uyJ5e>mnLXZZ z7dCe!^BhgDov`CXyH2m4x6V;psQn_J%x7Dy#xdt>Od;1DE-mtnfmf^)L3wvyG@sJq z?WVz4{NL|8jwjury-v?ggB!rPhv_*JzkB-)M^xlX{HoFN(Dh1#^4u_EgdK2? z@ck50=hW%*>U_BiLZ4GlAW~@X_VRYwD4* zy(bP6Httu*+0JNp{Wm|f`jl!`cwD>&%i;@Go#gZ};j@_< zsC}^UD^f}VdwlwrW$}^XNLe53^$iVCB9wu)niU{Ed{P6Q7u{n{bP}yRK2p#BpaD01 zI|^hJk(B{Khl~d+z7~M1J-9vv2BBZ}1aE9gPF6ODi(%Va(Ap-0RB=A&U9E5@I++kZ zBthkhO2LkTA$*{1z@;+e%a*E4Ht{hrjQ=$;V=>cTP+-idC-v7zc4uTV`M4zfdoWYZ zO+mr?-nG_ZM?~#U7w5~nk)Tz6`*j;38HR#n;|PX3wqG>{Qg`q*GM~wY(oNN!DCZN0 zG~Kcpn;ur)M~k!M>xYx1`UG0Bwj|wl`YRA2F}+0TpRu1dHE79d^3}P-sguBL%Jmq0 zDb<2#&YO=}kD#WP6Pz5NGAfOap^G(u#6i0ji%*Fpw#CvxkzFbEO+ zwaRPTGue0iwGM}|tHe%pMZpGBe&p&xFhX(8+uwiL_~SM#mIhNctD-cJ0rabJsR6Ov zqeJ6rN(zRfBm{gv=wHbOf%ip`3cqHxse&V+zhQ36i(B5wUrW?BMu^&xM zPU3lg&_dq+wzpDw?tQvzo`tw9`na_leAFiQyLiJ4F9NYgc|a^M(r*5vYgn|D?Uz^> z6wmU8ZA^bRqv`^eI9@hLv9GHw%u)=3onkMNbdwlu-&u|L+9+2_8dsW^pKMEm0F zb<%XQ(bD3^ZwRghxIJ_F?A;ck_`Ax={k6tA`2gTCvGj0NG7#Nv%S%D0q}^k7j`RIq z;2%#@Mj?Mf5C9_9{@%hLh0DMz4=$PpPPf9FSU zdjIVTQ!CXRoYT{*{I2eOkYbLWEGo%ypf!vXD~~-rS(+LP-R4WXAfV zWSF|>IbE%l(K6d{j)cOcR-L`N=xbsHi0ALaoXvw~^Dl1prN=O=##K2nCgV0~yxROh zXOt`ZUET#$h)E6q*KO9sV`qsp$NXKlJST7s5b4)>IaGljOt)+1+QP4Nw)Xv*tQU&@ zh6-KpaOk?Ck=^{sPl0I2fNXF?>1%Xcd%}Pp;akw@|Cw0Mr;N*i;9Aj=Cc97x!J5et z*W`rD@rTeQeTkvbp}|(oFTY>8`+6lS&o0#=*hc%mTT=F*2z7RpQP5x2<81G(y4141 z1av8WD#5m;{?Vc6T>mF5GG2l}SlqQJ^Go(vjd2!Da0pt7@H>GR(xl9Oj5H`>J9uo!m4T4SXW%&&}H<6FV-|Yoox45^~ zyd`F!xSa=^{3qLXw3||@?)H>Kli^bK=?c!E@06ISVQ}nEp~U! zcINB4kR$kvc`oSS0qNqwB=PY*xAq1sA(Ni1)IV=zw)xlDp9o*vZSp|8kIV1ZJ)Q@1 zdP46={gp9J-z~4*KdmF$lk)l8WMC@z+#C`NbU>l;Y(l(VCok0Jt)3efEupbKcbDOu zbQAjDXQtgM+Vbk3M?w4RzS}HXgSctr67Kt62Jag;OjtZM|ElwBRU08b2_CPEh& zm#pCmPo$e46YC0>5l}`sE})v8b{dVf_0n>%p_OFM^{*k0t-g`KN0Sq8wRAY|kIPcS zVi`pUp=sAV`XfGBfF*-qKK=|5V3R@`Ay|5t2X%y*- zCf4$PdVxDGbSQ3jk#=cEos#dy8=7ewJRCK}LO(ODWbSvZ)a@`{x_UlqBX|vL$xu}P zZ%iNd1H&?~kscYF91KKB}0?MDh}*Q zIdzu5DztcDyg?%2Yb_vJPF#IR6_1&pweEXcaaH$jb^VCQ* z{T`%6`O#|A_Z}WPU#X8m?m`ZMT1>eShzDg=Lzl!0^kq zFBQp*q69VC;kpeJC@&B3a!ZXHlB_$6Lh{eQ>RpB$koAj2?U)a-7UPGl*x%Sxb^5<< zu*`<*T~Kcas?>@qQ+lBnd=Zwb17Y`*=h3)lb&Kr{SjrpmNoP(<-{uZ@EO0Jm4S;Qz zYBD@}0utE!AF2lo8zzKrM3RSFyHGC3OUg4q&A*T;m7v1`Eqm1N4|3PJns5> zw=6+VG982OGs|8%rKh5r<}DI4wp^)t8l@9f*Tgq>cS&{!7o#BaI;+UBGw>23hI#L4 zgp2z@EQy!N^Nb>*Fb>pmUF{-^o6`#~WEnwR=xVWlEGz}-r6@FE;3vM%2xO2X5*fu> zpBf!830XZ;E2UONrt;*=1g!6(ca)UNp2flxLCBg5aPE3TkJ4t#)_-3z79H*4iqK*E zlTzKS$Los5|3-qgkh#l9Vjel!mcG$nmV~7hMETXVfS|kkZ!a;gJsXdmpnJkNS43as z5qcFw4lr4Nth^WbMQEX18|*U#3*;8XO+eo#Rk`Xnd0MBf!QUcH6N~C^A70BD&lh*o z61M@$hveGpn$i!TtkzkvM9+~+`^2Cz)5@#b-F@n-^qQ7mbp2UuN^tCnL2{2T*r$aj z#3E1Y^!FH>6SBk*N~pK)%W8%CI?8L*O@;Q^uV8POg0N+713P)IpV_>YBg2U6?(1z@ zr|z%QC}d@T7P4z+9@~O^OR&HdDs42*8v~vv>!%`LW7(V|Ry4By8+Dv)*|`vG%q)-G z&Oy0gG{J5~+Z7cjdd}+N(|@lE85c; z=oqRGm$TVJ+K+cZ?&ph_jQxzbqmXve@$PjlUOuy*PCj7W8Vp^)Z)Bd%7_% z+#DS^_j{P~mW=hixTGT|5{iO-$ZT$8o(}= zbF>-r#$OlZBnmZb?f4<%D z6*PNyV?3b@_VnB61sUU23g$mU?bDXc&>wrWf%M0>g(P$e51sPNdLU$KEUqaP3DDwr7E&2uGR9tEO>#1tkv8<^;VhJn?sw@I{9yU{H%*1d4 zvahBY&Y0Xv1T5!_EM|M$+&ngmtBbAL2WF-|!;pIA5_*~`Ei*W#8)lwqC3E=Z`AB=q z3hRICI|yO~OX(kbTgvlqSonS(lYg7b2_mqHEZ0%}L!?{pwl+M+1Y*u#-srgNNrK5@ zm^O9~k=Bm#i^(tR1^&uEWdib*GxoSo2mCuwu26jaDFjT+DBG)X7pM6n7NxCv6QJ=x zKi-^p#b!O@h97U>?7G)<6nrWQLGZ!T!_u*pRb|s7Q1Zwjm^5L;OSZaI!kj5oP z2!;NAY?e1syj2!3HJmtJPhU>aFD~hsGG{>%8@YU-;g6M2P$c+IT(4sL!)Pu4SMs|i z0Lf#GzU~$_1+=XJ_cK@FQ>$4vip9Le-FHAWVoOU11Ul-~s`gvU)@RR#JP0{I- z^5u0+O)dML%?8*0M+2-)uTPiHB+HqB=Z=D9C*i`>XKYjKelH8 z=>gj(L)W$h%{P2$J$RSFoZO}48Li}gPJ5A@w&nUd(M!Lav~A&AsDITy!hG$TN3svO zljRIb`%v5oZ@5e6&RxVw$5HD}EEc-q$4FwTMu^>?w=mp$&rnxLev~fd&FJ#O9+ru^ zI^CBn2^_bi)30oeA(}o=*CEYSf+)#)L?4J}p z1{d4?M_*y9SUK~THjGEE1Xh+Efo zT4s;$zX(ZMf6?zT7hPsi_6L6&dC+6R*<&yfWg3anzlJ|KBtZgp>01O`MhLLH`!v6ee$%)tV;tMj>Z_m58iAH7@t)4sL(4NE>yu=R~X;Cr3-xi!B#>0Akh0Vqf#?jEUmLHs2%I&A5d zGcJUA#W`w_PgUhV>`|8Mb)X9FqvYd#(>rQR}HB6N(*!OPg86ES|smTQq+q&fc?T0HMe zHvtA5a1f@5+;ehxJ8CJ)w(a`yL^*NGT(3pRV)Ks04OuCTaIF9UKaM8c?C!DW*7X zMo_(KL;hh~E^lc>iMI3pcrf=j9MS##QTJDroH+;hb>`7D4c(+OUDMLm{oT9A1+87b z;kL7y$}8Ipwgt004cI4QgSWe^6#sfARVf1*s;$<(^U?LyXy_&nON8pjXtSbmG_D!C%5?Qd^?({;jLt zIN$id8SuNx)rkFml9)dQGjJ@=v>k+vKIn~e#&?}<3Ys58@G>P-dvdh0daxb6x5C#i z*DoudXzdG7DuawY3;93HAPx&jI=SjjfV*hFll&mZv0H`B8r=_D_->Nxtgp41?INaXmfHnF_A7jvpfZF4YqFn0PuO*ebx7d^Vx$qyWf((!U2gjS#{Ud0Fs0n41k-`YTmX=HS^I6vnAWY zNOM|R1pA^f!B@Q5Er#U31vV~qsG=k4pNtt*j5VDCMVwN0iO`p^5^XGbzt|n@;XF=P zQUp1U?>>OLyMWd|ZpSw0iUF+^c5}=1Oq$Av_Wd0rQst zPj06?hhhz2CtOx=|I&R=+Ks!Ui~7?u|H$ol&Hk`0qh6xUW@%<>D)RNYeuvrVOssHw zd=L^j@5R%mFUoye&2b`ufe)JXtla?8BFJD}vNr;j;oS`v&e|$l-z#FCt>43{zyB10 zPp^ou-p3NynMa23eD(GylI_&P?wM%?5Tvlq_t5Wc-~KYbNp0Wpx(EBy`6Mv59eVRi zR~F@Kfr0&bZ#HCpzSg#Ue|bfhkAKBQryTi!IpF}a|H)sSUuW*L{HOvWqstJy6^u)JR}&Bdhx=0U#mhCe4o#^dEVwZodh$9qj4bCUz6@b zz5OMy$$s(z=(k-4(kqHqKtUK|X5=@4jYqOgzG#IgKZ66*Gct=ti0>cb4tVP~!@SCo z-v#^C1kR{J-UepNJNEnS9z-oSEbJ)+on8tr)83K}2%SB19U@oKEnhEc6&P zWt4RTpcSTL%LgP1tmD`Hrc;i0_t>2>ALwm>i29r7ov&(FRz2QG(zp4!#Nm4`u1`V9 z5g1}6t!f+J`kRn%O>Vv(xhK^t>eFcueP@tS0o%SU4%h3i~7LW4~}e7)3_ z_(-7NA5AQVGw&li-0`mwkIG@~sNPx=kKW_-N}Y*-4QMe%m5)^QKd(hck@TkK-Aq9d zySGl?RLaS|`f|-x;ZjLNR@TTG&1sGdy>9uI&}QxJbiB_-g$yccu7%a%fCnGp(!|_1 z@mEtJrQ*nxEIgKp-pa@(jU}z=!%Nx>xNjl(HsY;yvm`llGEsM5?au@bek2&nQFp5M zwvE%LRSN0FH25)X1BM}EeqHwSmFIeQR=WyjytyaDjjLshK0tN#%avLu*;0Yi;qBoD z2C!z$_B4RRgPcvb^`WUS3ts5uBp!EP5nKl@USV~~gr3Y+V+#45M}uK~kn+59pNqqR zfewM!z9v-ym{tI1o(tSQroc4ysfDWb)R4tOi99LGnk`F){%PtwdPboTzw_2&I4(J9 zs97gKCj;5ft=<}5XAB?n!jOJF>!>4{u$4smqbDL-+BZXXZ`&9O3OdI)3>vS(+!Smu zzg_=leU$axh=<<{z<(%Oi5{F|a3Spu_{jtreQWRX)?ZXXI55svb` z2IrIlhd<~=n1z@u{gv`Ux|lgdnMQi|p?Q_Pg~_J+$q>Omt6iiY1H2Ll*G&c-K2=08 zL?GyyG>atQyEjVvv}(b{d&?Kuwc+BuJp`Ry8V|Ggmck0{4Rn~2Dg%EyRmo(1p z>Rw2;xO5oP-Nx!p@@MrdN~_$jw9mR8#n5{bIareMz0>u zHMDn>YaA4gl+hp_TtLqc4nsR+^-0R1y~m(3WEz=*T5w6q6je1JDd~OlwPfXGf|? z`zYG9F^)SkZUK%~6UsMKdptduMt{t|jo5*nmc@8vqTOp@e!p!Dcqms<1xvY~-=>EW z##g_A=pe%Q@?yPQK2K+!?maM+!tX$>h#{5zbKwM^;zVzPOAYy*4lVE3k4jDEhy3v` z1*6kuB&FT-RJi5f?h^A_y4^jcO~+u!{Ss8ZX!U3CTJo5Fhld7G=>>khG!mcHpwv3{+)VVgvcK|72Xs6lS!Hq-{(_DZ(}<}s<;!yTlrmyihID5-_3DHH1HbS zB@5>GsY!L1?2CH6;VW*&TTWFPvyjKU0aA;eO=BtPP(Ouug6 z$Vs4-q2nK4^&4F&s0F{@+!V#??;)(wYSk%U%C6V>QjS-7SuG#ABrXNGm5}+YemYvl7p$P#-gphbDlE75 zMw7?5J|9oG;f`n;mIAZX8y$zW;Xece|3t$6S$$R4FSwHDO7x(1OmsqP8l!?RA+Cp} zrCFXD<`AhfFeOp`TkMe5YZLe14O1BmkLqFwaW*(CD4^QA27l72`F=qqRr6_C9wFd> zb|{l8f|h{}N~0x9+1gr>9W`do7umdZ7mxl}fW5aRKnRu3LDWg}k z`6F7&m`nq3DjM4SS+-=S+hs`=+h%yH>c(yF&+e3ZpHZI7!BBqxqJ|apS28FmoICQ5 zDot6Vm`NJpTki72Y7<=T_1-vQW+DPxkJdb=Ehb9OiW5|}l(;nLf@%4Yu-r-ZwdBN_ zWd-p~1JsZ;Mp9xI>ca$e3o}zO5~^WJ#GrfSgNVXJ_{K)`0!1?a{zn z=F{dmHP7oR@bYdtUdT<7T*P*U{#MyTJaT&wGL?%=`JWdI4-brW8LsQHb-(maIzekKcMsa zj1|$}ndhD6ieW=%=9lU3s5_{#?^wAH%BBADSxcrh*Xo;aH9L^6DwpEb!aSwCYL|{N z&9?+`dDGu`!dDv!t7Z@0)1hz#&Mf^so;snoVOT{4ckXo>n1)t{;38I^Tuk0z!jzq@ z!;>V1%cs68I{&i2Ziv#K^Gkm&I5pszS#YO~8RZ)P19JN0HNKIQytY9@uo9xCjKC_M4B`^^0tGX%H!IRv_hA)7|!zQAG-o5LHWFu5Z0}C(?qnh@gYIm<3C?pAoP>CNr?=s_>bv_$ z^O}!3#CVaEULGx9XN-+NOUnQfYraUjP5wD%JeV&g=UYEIH%^r_a&6C0t@D3qI?J%A zyKw6>bax{m-Q6Kbw{&+mNHesQv~+h#cS{ROHwZ{~Hxk3}{-1Ns`;kvD7yH_??tA^# z+Ql<;aLc@-L>0zS1Tjp%o6X!wrZ1~nC!S&PjfuW0&w6>8Fy zS{aG&2m_(HNrG15i@M{ZhG}FngrBU)V~Z(D=PhmZh&gHGlG13@X0-{Bz#0+9MlxNQ1@I_^u>gG2rU`zfD?eBo$mpeh>M6{|d$1btd}I(^n46>=*oQzhxXw zmOxm>k0BGnL~MFjdnJj$ zPJPYzoHTY32^r-m+%ug7w7^X&=6omu=%!2+3S1L1nlg`M)g4}VRLq~xcs+QP5IU#J zPn}|)VU&YQqrl7{%TOu29?ixxK{XyTd+-&i#OCi-@!62==u2qe-t(u|4A*o650W)izAV z&m3i=1B0OP+q>D?zs?eD)~%K20Svh9m_3c(H_ng;=`h^rbkG$06={x(Jm1pX9MrJ> zd6O9R!h=Ubdv{+;rTmkE>usXyLB)tAfemDx+sAe`Kk*dTzKt1!d)A$<;SL9@VIclc zWhL8c(u>xWFAZy)9zIkUWVn;)B4_Wt+M}l^50)0oL91RJ)S-GGu+JOU;I2{$VI%z< z7HzgXO*!+<`cg?caAOWoAR}g@r4kyyExd;;#NX~>jX8Rn0vt=fE!RZBaIc)jWdU&_CF0zW{hwPru#~R zq9t6g(*E{q@+7!j8|UpZ42|f+?PEIDW{_z$myj{e7CpWZYN==_x+p@VgWOZ4OUZye zjrssF*Qo*wf@K~#(jw&r2FSx4%2eJlNV3J6D87$TK6q4@Cy!+mZKmVY?{W)A3;TK> zw*j+C-uZC*JHFtBBe=5z3VSiv*_PWIBGq(z$9;AL&u3ZWOfj`Zs(@?! zK-Fy(#GFnhb;;mhVjf5-$eFTC7KM_d?9wfgeUvltDR51|i$}zrEu9RBKXGXK%vVro z3&ZB!6tXg6CjM}`$X)HBh)4)mJZ5kQQvYV`aS!nox)Ng0LWxb2RCTj=oBe_@ICgRO zfgyAZL;=bQ?Jc5&@b}{&KKu$fmq2X*-Yfx`MW%$Q7hcNOFCGYxsMiS*pNCr0zc7e} z@?JCxL?#%d7|uJNIepCH@M=$L28Nr^ z3FUk3c38C+z+m;#&0=(g5a3g}y@ZhtGMHv&Jsu2U@`=8&urKG|b;oA3n z*#6%o;pkd|XD6x=vL<5savAXmhJ(|0dCHc7eHci7CPL}hE zzvrUjHwo%Y2HbsBsi{vD0g`oJ17wU8^fmS*36fe_hnjxPDcrm^SMViIY_42!BtF#8 z#ReQa`6SFlOm?^VLA5`dW@@buKv*n_-NkPE_%xE4|Gn_}6Q<-%yDpk=Rchlv17RNj zMKg$l-z-yB_R(zANTPoV!2wZ8m-tn9wWZl|elt%laFnx7ADmbuPV`DKzp!0Lp8W! zyP@)lzvPMw&p*ZvJM+F5B1L(B(n<)U+;61^TQh6(FGqzUnVM3j1LAyrz7m_n<*za$Un4H-H+_pp2yl%Jh){yY-my#36b(R>uX|Li-LJ zxSY^D71byj;OpmUP+!7d5AzO&>tMvm ztXEUV`3N;VxO_6{&x;${8V>3gO4wL!|I&8-R3y{g+nl=*`0SM;fDhNX{dt|#^D^eK zo$BRBm7C2v>R{ivF1yJcRRA;Ni~0Xu%OXQnEV7|X_)^|71Oa~*Nuz!AwDSeDao=j> zy%YiQjqk4gj%Xe!Zk4#STF}5sjn$!i$6@`(Om84Vu_ss5Us3;4i!cuDO+;wsTRZn# zQ(*c!@bn^UlhELib!7h;ZP>NJdyCk|jMkd8aY3EW3)A&7bf0T=rX_73+xdb#kNqBe zWfhapI|sE_(u*J3`J(ja{)&G;+}sQ*c+w?!^ciSl`$QoQemBFHO9~?hI|vKUqyMAd zTA~+FAl)LK^d)PGj98d8JdO`XUOK7q++DdBU&WK*#%QwDaXgV25W|x4)u^#%R(ZTj zf=||bF9m0G*DSJ7~ur-|aF{p(~lyan# zAb4ZaAqKqnbR3z>v>y%ChZ$^VnkZf@ZPE+?ior~L>@$9}GV@Onzd|6bij+?iHUD}%oCHfBO1IXUbZDx8`wvm| z)}e>-5K!}kZ$Di2PZq~@K6t)SM+6gSDsv5A1XS1krin9oLj6!&y-%TJ-k_s_5%rIM z$=yV2Nn_aD81$>7LIYJ3#a?~*iOw-%YGn+C@&2YONuxpTyzL>4DMNa|3+>Y3s9^ zvkMt5u*9T%6F=;x8OiMVxl1*4@)WC;E7KGaN(GY&do@SBZD(8 z90x>jG;+yd^4%$>3}E`O#veo;-;lVa<~dWOH?5G%3g*6h$hh$4h+@idCXf#{=hA;-hrSQt z2SVypyz#Utgm6hx5$n)sqhs>oAEM@QsQn*Mzq6UGUc&Gh1_P2tUi0HP$l%jT`CS=NGOjPoHgrw&oM?jN zW*dS6;ppFD((1n-wkQ0Q*&XF`+}7&}*q4f>2zkQ`-mdr`jm$M1L{y!=i^EjR-EQxt zPL=Jdf5F99If9R-Wh2T$_W?(KNwG=aF(Ro;<6;-|ZJ_o0r;$i%=swx9{Fkh!%BD`P zJlkVqzFgSbckGFJR&xZ6bV|#=dxgIfl&{?Ir0$yv9$7ecO7`G84SOZg?&!t^m%Ubp zmt{y_8N$Y!{_1OKH=T#uOtb?xThT3rooOGVS2J_FM?A#5e$dh0+pPWM^z_)1*pON) ze(WiG=KWKld1ZdR=+a>x_RD(#koHO#e-73ZoCHV%qyS2>m@G7-#~uaMgV&tFaMtc>uy6$rjOC_Qk(77wN@??C8`T#T_NvOF(h3LYDtE3G4x`PGga3s zqlCh7L&|h_0`W|OQIFP6m0;fIfb)7*^JbHT;*i%N zf8&F-2-$gW)QK0$a46 z5i3oZm$@iEpE)%JKfs{DFCZMWO1kPjG7)@zkeMH<3>}x~E-`&=eVg;?Z%*2q*}AK3 ztbaq*QkBlvJ}KT?eAkH9A?nS5De=@ZmCSW+^TOckf* zCs3}qh_}V^c>O}Xq0gn*KgBm`&aggj7{ODW+H$@CG|1YYpRvrh?`I@Uoo{7}{gt15 zG~r~|_){273yn{#!VA!YaN-qksNK;%>k#%#C>!Wwv#xi9a(R8UtZFQ6{}HXFZ-F!D zR;~vpuNKmgDY_<2hMzEkk+YYYf?z&@LC0rLg1pb$Q5w24=VrIkVyZCFyg)fACl`B) z3{;n8JWi z(6Zcd$yjT$TL=p^Uw*J7EzbDd$1(`Z&X_x7yxXX9S;HXoD}yFZWNdN0jO^Nsp_a@n z=WLhs_7a3q1E}gw>LJ`;(xX8^JJe-cr|bpeI4h)eNQX{(2wvMFo@sD&vcBE87C9s! zDHRr7T`IG5)jlykoYux%T^1vtwLANvKI+ytzo*7YVlk5{q>W$wuAT$B2q}HXJ~+%@ z$WSnR;#1hi7fs+7pdboSpw4-BgDpJ?({eCkDTa4Ez)}e*vjfjij&+La@gV;u+W*RD zvo+J`3gv#d-voAaJp*;adpby-m{ty4{^qQAd${TFg_yG7zyU46l|*GRL2~6gsh0;r zK8be+R}K^Fi}9lcwW?yzCFw+QFIkJK}~0t=3zKA%3SE@v+BO` zXO2M&^HEHO8<9fcyIk^odYKXpo!Ct$_pC{mn@KqE#-t6=HSFP+*$?gF_RUf1wc|$% z-{kGP;r1)H_hDu*rNNSoP_ve0%CU|g3JU@rk!KIsg<>`9P7kg5&f*>Zl!ZqS|BG6P zI6b7t9|#~h>ej(3`&*T;3ZTrX3Mj!xRk|jzD8?%ErUo-XZn}P@o_*KQ0p*^e4XV{( zbY+sEmVHG<9oe(1bF@kx4@fGp>3w!qmyhwL7Syj1kp8ZtW3NcnsrpRGB7NgJq#(?>UupF^nK>4H6GtN-T8^OShV1}f__<_M=1Y*e z*yyQ}a4t^I2By`CyG&z4J;%12-1j9sLYNx{saer2f^7@&S_8D)qZ|5=wlC2jYTU(w zu}`4CGV@YUx20`VP>ENoS5nwVWv6 zzN+5E{qiWe;++*qqR5^~FoG+5K;W5?T8mKCcwRzHY;`DE*`rS$mvR#cq3BBX;!l}X z5nW*F-@vA)|A#~!c*NiO)Sy^Ds&ay1zG7q+fTn&lSS9OFLZOFiTt`o{#73=^@cUgq zvnnwac_J<1Em7Zj4g`^tux_x;_w`uK0=tk89Y2?R6c9(Bg675V&->F1hXkOx1zjYn zn6RrpK1U)33wh_l-8{&wScm3iv~Z-xivzwCS3*1id}6*N5Ao6;{nZy(zI}n3V}g6& z@CwMyebwz4`DTy5vI;c906|2ER=*Rr5*L3Ib$npJf*$?*KKdY6eZ)k$dK z>5}Z51RnV}@6;25_2F=^mgK49vv!lO>pd|&!nvnvF#6!AP1#%w&M7amJ(fkOhC6S! ztT2!stGN9-nq2;pJZ120O=}&P1_|i-162sSrUy9rL;LjO;Bb9mPGcI@g3Wf)3$kPf zlmhOV@6h1LU|TEpmwt(5ZI<8JNcO7ha{p-)Rzvk(1vX!*fX#Nb!ARY) zefTW&;W~fR?8jzA|3&zFNRmknpnkbzORLO3VNb7L>v^+gQ+)mt2F@G)?t^=7*Ee|~ zch~mBwYL1le2%`P`AAAGd*s`h9_3jGM<#u;wRgwtHZm-%Bj3TN55myF=4tkz!kPmD z*DD{7*)Isyx-~Fy7HNsnb7T8s6z?baW9xAnoXge6cLWf09?kbrb&1O_Z5{~FT2m#X?R$%F9M2^= znSD7KXn0x}?9cU2YxaISgS+=T8ge05!x0O$rWo?w<WR|00SQ{d) zk&LkaUDRB|&|@8%xJzp)U{cdhq2_!IFiDuQs-HsqR+gdV9;Z)p-7!*!`?&h~oV_u1DR z)SOTGB@GYM^vhazkpE8XB1B|7eePk-Uq+YZYSsyy*;qirR3jA%z8Oi25oZ=4(sj4FEzwWIvTA&NQ7Rl2lYO!p1u z6{5lRerwE1J+$2o+*~f+l+u8p52tygJ+AkPg|u5B2krU z(T(;h*W3z>8BOwQdQR)`P_z%^|cV2X?Rn=V}8k>3Qhvz-=;r}?@z%zShCn$7u zUm-umM~`4DS8t72FDRy7yHs<`?d5Z_YS;y^Rfx3&2R3qt{{0e76$*6p9IPO0V$BdZ zCXQKNINqfcHx~&nvu%Lx@w>>fB@}-&J3n)1qkdyI>Tnp2!SK4LQ(;!HH%_v_r|XTs zkN@#K75%MPbb%h{P2+KYG<&{Nk~FYGt+ztoH#J$0iF0nsPv(f*uU_R#+^U9?TS^NC zihrH0!mm_4{l{y1)#%s^aC-Uk4U#EZW}>rA(Nus|^KSx^oxt9ooQF(=OmVXf9^So~ z=iNcC4qGdWWe#$KO>!+;93Qv%yc|*E&~=w<^g3;xV#=^S2)^Y%1*fu5)c!BHn`gM1S&@h1N3dn$@Po2D2Y}Sv#iQ)GOA7)U&?L4NClQ zPd)NJh9}-ynEF}eWTfww-jv_cQ^S#o^ne4fPfByj5bHAcjX}>}gv?qu}$Q<*rJtWtg zReCLlybE_cp%8EBDCR)cpS~9WpAu-13Mqpb(ctq)vQ@E6=tF-BAaT6GKyt`?570_I z4OnJOeWED35SB(xBw^wzKf)+z6pdogDxH$t#~A_3w=UZ~W?p3J7c(_eMzjzoANa4# z+=C*VAF3qQ!t^=?QyXb2MDF{ONvi?AB1+Y=G4qFKd&k4KKX#~4h1?U-6bzdx~J$Qi*N*|1YIhiD^ z7s!n4HpAME2+@V-$Iv6=2c=v3$nrW^`gFJ52OJ)AOy`RE)m2MjRm0qQcUd6zXjXG2 z!JBLS#!Oc829?N|K3X69(+OrevG6GLE!vD zYcuprJ-N8J{a&Yrxus&mJiE0k3-9X)qD+L9?9!aZk2Ch9&GfvVYI|L>CvVo^@qOt6 zJ@LUgRcpR-J7g|nQVlmT4_>18MAc~TeRz792Hf1E+ePQn6K7m-Cspt}+5CI;_dM%3 z99)(co%J?hkoGsbTJm>fc;An-v`?u=S-OC1ISlT#r_|04oVOaxvjwT zNo1R|Pp(muslBaLbiG?urWGbKFHgVL4f#ZDYM!HpX>Sex#ri*D9Nw~=FLNCFG*nT) zU2I&R92Nv@%+|>!OHwl4a1^G59Z?K{d=az&L#ncwFZmt%@G~1fWk3GkFZ)qOIPFMz z4I9|PUx$uAZf!yqCjTCJ6@QD{u!8AV6Qxwdd@SiXGL>zLP0m)NAa1mUjPwt??sjtR zeKedQo3KKxQ225_8LG4yAM~1`o-9c=nE?A8fUdco+SiWmXm?f`^Jf7Qxq4e#ywJ`k zs;*ngvDFtYDPMZp%I49*?j+`m zq`hFlMPKe&&ds;hp?QhYWkiwk#-jxrG-Zxeslh?b2Ctc-wzUOtUF~^5g-I-3BxnOv z@VZTr!GYo&5^PSkT`|0)?nBnK%6m@KHI)ZES%H|j5<+$qmi0@8KGDSS{l|5eFi;RR ztRY)ac56JTK4L}JxbIF09uTE<-oLTFBJzHCvm7+t_P^}3UD+A-a$G77;ju6%`Lp&% zLd`KSaJ~z?SF)%_QenRSEXnP}r3rA(gz97*r{SJPGYiaqUQAG(7oMpydd%euHBKU&;V9v^Hz=47E_ zW6?*VqoK+nXw&t>5Mm&cjB_tkarGgYRwGNzyQr?r?MFIa6N4j&*Q z+X;Na3RKy79K8Vme>$auK~=Pt*pGmG;66LE0$}YydL=gZ2-P zH~H!iT!z5*-Op`M|K;!df*Yc~@lQcKZcqM?DF2>^gsO)tbjX1DkIx}x9xwKA1kk6j zQ}Pi$S06+b8=^u+&LFB)G^D{^8fnqvgSK=4xmIZ(JwP71DXNxt zV8otADiLd_c7p-hIN0M?k+n7!D=(dvy@6q0><6lSRVMd%H6M0jVFqU>`atLBG3)`jcN6<6U+~$oLJ%yHnjdoOCfEN)q~$C7 z6U85=vV47v>#f3A3c!QC{36W7YM>I8UqK)aptkTr0A3c9h9n?e3r)*`!c-*xezy>&DA zr^x1SveXmP9ssQ_s9L0tV%bA03oOdTqWLyIAWeZ8%(#1BqPx7S0($}*0fe@a1Mz0& zT+lMV^5b98d~>H2!dJj}4zo8ER4NI!%)*iM`@Hqj&7E^aBzjEs*qkWFu@h$AsZD}2 zKhgRZC-KCi1|a9GNruXAO9J^cJd+M$qK4q^oN7cxdixAy)0kL@#g|L;|a2z zg7T(hlda%ru~*A3_`TaIL;Vy;ZwP_~(SAE|?^H$adCe$)>n8zVTsc;TT7?0F>*J7fnJ~g0f*bwjc zx#Jc2il5a2lR#H7AzJzc-;oozXEKDsp+d)U>6Fz5LJcdip~QmVxImvb@`bg=r~gQ{ z1dd%O_kGyZ&1lrGe1C^iV6*A^FIahN^S{g#q#w?!dP#?B309%Dy4o;o$`r<&nvZqQ zw0KwxJaH`2cx1HNTd4F`UJ+3seXwf(uEa{#JS{q=?ojrFHsOn@DdTr(f5v!2Qzxp= z?0A$uG(|F{;?NPvVe_hD)|#)hV;gK_Pk;Mg=F8#{2BwQ~<(saj39t=Y-X)2*|9wB+ zmkImBeZPrLiI7dNFjeAz&T4l`twBPtpMah9h!zT6iEBo1*_EM)2sBN#=AHk|*GX_D z&7r4`LQCNjzw&C=J4g&Oox(C5wQ1#umNm4tp&$Sb$NJWBd$?DxmB!>eYXC5s$ABa< z8#79AdV{2Ixxuz+k&@>F4OHjhCDHegEKr8R;I1Fdus!f*;MWN|9yZ~OO9-+8LP<}E zlNe&UicSD}n4{Gk;mewLRetcw= zCL52Zd*LX5rXPw1dFreNgsef`Ff)0x$s<04WQHm~9tnv*-EZAtNi9QD`+V`-aKSLN z(&FWdmu`rmexRxBt^ zd`kIy(`cJtwdo-wv0?*mQk=XKc!a0dMJ!8B4;t-ERJCa1v`;{W5p=F*bEN2UCyZ`8 zB4N>IvgFK0CV;C_u{*qhkIzHD=0{=?k$(BGr>BI_4|pk%~!rSYWs!XU#1!h zlUuQK&)g!mL!9BW+w?>MCci--uiy*$5T|`G=@9|F)LsK*24<+O@t|I=z8P1>4oS3? zCT<8*&&-zbc23%?XUc{aKLEP$1k|k5nl@itbl$oE=Wmfx>xzM(-*0_PJEBWS5{aEi zFBZBfTvMc}o1k0(9a1 zdD$)GJ`l>C^Gf=LQ?hBVBXbiRYS$+Av^U$nd3iEZ1l6X(i#y;_C!%px=N$X=m@y)* zd41^l=4o?;kqtXr6Z)RVm|NNDxub|_pJ?S)96~ico774)0+67!@RuLnEje5pD$B`)|B<>EN&V(gl#t40k=#1Q!XA!q zvTR48<2`r+z`~Y18*09@7F_TQ6$g%JDtRwy+&yfjB}Vxk3}JlCp@MqF=XP;xk8p+c z?T#UWP;%9W1cnA|H&~rRw}>ya!9rPm$T?dNbZR|gTksn`MUi?T%%Yax+cpsAOIj|9 zK3L!x-3Tiz@z*Wv$xc@5OadWIilB4sZ(BV+n=eS6^~*NAk6xL^Lm zuS?#Mwcw#}l~oEubXPBrQu^hQz&>#f_$!n$#J*qE|4#@j z&v~(Vrf=sdL#zzTN^H0)>oKD(BhUyGRMutKyl2W39@CNhODY}CaNI9k>4T;_W#9w@ z$FiG)0i>{4e^%*70&jJlVOFqpAB)=Pb^X_fGPKki4r2}#?fmg*p=JD@?bc!GgU&$> zIc;3}oliPJCLoxJ=7&MhEQvl#&<}h^^F3^YO&5FergK;`o-(CJgO#aTM z3{YHC*o9n6=j1k&akN*=DiYCVJi(O;U z*>7!$RXuNbVxDaBe^DWS=Zmbw74#^=r(QUMkS3kH`^wksT9H609yH7IVHtTF9VWKJ zzqegV%E!$Loyg>A;#cAN*HwLp2?;Lq!WCfM0UZDe-DZADFBC|92j4RN2^Ins47zpI z4T6ei1VLW5(kPq5bS+o7GRgj;onpwon9T$HeB;@7fmDQ>2y$6FFFCUkuxy=8Wch0- zFJhMe4ubJ1`j`&f#EI9@;xO#b3*zhB;zQjEu9E6i(*E!rH%yzIAq_dbqRc&_e;t9J zn^)Fn%RhWR`xz?sLb3M4Z#xhzX!0$`XF9Ll;R!W_smP+4s)}%{(VYCtpOIpGZP368 zS>;Ppw69ro;uIdjBE-n2sW&p#=LP$bZN*R;i4x3a zZ5~Ha?^w!cEU2%m8@`#mmf`TBo@J2rUFw%((0D1Xx!PNd*FtU zj$hB)-_BPZS<~#7%kIm{Ulea!=l||W(Pr>w2agg55ZPmGW{7r&aqa(tS$^pe7aRBTQAj6m3L(B6+ zx&S8wGB_jY$tUYcBJ0lo{b|6>4W<~=`1SKm_uE+xg!Dc;PIXJLU!tAEy!jb`9AIda z`?t{@x*NGUX27BV4@?pPeW7=K_!O8y(uI4ORl1`NxOPhP*ov5DR$gzzp#VRWF-hp- z@7ONuj983hgZ1;-nZK`Vd}d>H(YvmsS=+gP=Le3d;3-X7j;9{~GG+&Ak5I08-qezJ zk;Cq}i76?;rUW(H;wdaPu#)dMfha0!`yaA)n&CQ;V z-ryX0{nvm~W(^ni_z?e~QdoOM)N5#}iQ^OG(H7`qTmL%)b7jcW?a;T64&~5m4nUZ- zB3#DZaop87+%4A-qf-4>S=rgySok)v&Qjw>yO5v!r7c83$-y9A`MZAR`!&Y3(Q=C- z>d(Dyfjz9AyC19goM~@#0-*IyMgpJ8_hEBLVqzXMCKdY!z39%;63YoO#)c({7W&~o z@4ka1!^(=@YM>J4S=E`F;CH#X?^kInWv~Tp6+QV(*VlGo7=Qj>?;+?@b^2BPZ=X?Q zRp}03&bN;4c=t9{Zo5<)6I)OCzQL~0py)02Q(P^ZEM)Ha1Hxm^i;K>Y&d-YGZPPTh zkB&1s`aPX3Q+{kpNL;v~KM^ZoLifSnVeY(@d^Ko90kgtSDl8n08ph?0 zcLeFXax2xv8#a~@D=Yt;q_nYk_BGr6>iy>*9yK@Mw@#0j+M1ZBU`qd;KQEMU=Of%S zNfVq3tCJ!_lAt|WDheuRuo)@L z3P9i(!^(ieDuL`?gXhs$BF%Ep6o7Vxh1Wwlfn7m}b>Zya-}e(Uo`OQi3xwkd2eNe! zK)Pd507Z%{EhNYA4G5C!i}1BeZu_>&5EFjFq6 z#5cK>JrgP;m?7Z$J_x!0io{`91Fhp{+bW$sigY2bYnVMcJDF+CwRaSPL$3*q!1H2_ zdv05Wte>yedB?Bpcy;YI1ek3n=)?mEWOb3WIIAf3=ze59Z0FFs5m%_!N%tEJcBIU( zIwLw=-<;I^aVX1ZFVi0qQ%;%ObrdYZxA<-&E-fsy(%mB(3dB`}8O(}Ei_S)>=+{W= zlZAr|)t;_3d8xefw!+0789$ah0viO)`;vklacL95Ez@A)Se6LO*M=4#H4k)Ot^MiP z?)5+1%-?Cw#eo`kM(>*9bh$9&ZwxmW>eSfIM{01H`Wk$H8qeFSPxn}dw^Y)~4)kfKly_t@Q@k z)XvCC3n<9`4-d<|(tu97_X-!>8@p-a-2hVB|JCF8G-*%&?Awo{)`&N1@rdBjc-W&< zTG6p;V$+s6x5hbD@J}}>TfcGoU1BDdE3Vtda`qtrVcXz6MCVUC z$&)UxcJC*|K5mF13#PA4?3V&QYY2Ul-upFKKF1QD$peS|be;t2?6$L~wVlc;{f17@ zsXkxn;h=c!M#v`Hr$FyB9$?MS7;_&zClwM80|v0a`qsG<86e(Yh=u*f;=wm8ORWZL zwR>GX#I$F_oYyY^s>LmyM&6r!lm{#9?Z2Z_O<7G-l*qTq<88Tfuu0$dk~nZo3EZg1 zIgiXdz6fU6BVTYp1fie8j=Gg!XoQq^F>K=zD^|{8Xb~+tKWiy@N2yD*h@je``+&T< zdPenZ@Gs6udboV=qsD`uFImK2H)rdi$>jNwPu&3u!Kr{L5Cur$VqN8<9YUa>3gNQ8>~gQ{?@dB^ev zdZ!qd);Gk=))#ZO*)unEul^=C>1NBu{LjE%g6z+Fon!aR>`M9U_sNDQOpPj(2J!<- zt`~Vex|*ptzU1PbtN#7yuD|L6gr6}T7s~(3!5@`RBKNiHU&$|RB_50sjOUP%QnC+= zyQY3zwm7Er8B$yS*Fx&bd&2l-P&#sqtaoTW8-_Tc))AVP5b_VLO7cvA4;wC?{o2nnqYMbNa=U~K{=%*n`LZCvCsnz>(1jbqJ+ zNA7k;EWi5VgdO+e61gJz0q|Bs7h=%~BAI{U{}z^j4kK9AvpxV5I0Do1g$I3#)h*#Cjl(SD>{n=BEIA&j5|&6{ z_d&;=BN_w0GUcqh^7|>n4EJi`GP?Q-ZwQclJv7#<`Gpj6a5KEy*%+z>#OxnUfdUKN zw}p0qM6ZNs(TbtxNgR$sq#d^0fjrMOL#S+#)RsuMSfRFI94}Oe58!jo>Nr140eoZm zH@qRCDwZ^=Fiew9uj8nkGK=OtnaxHyN%QNsQIN^6bT+`>H!GD6J|y=jt3 zDc%n1b)k^pkZUCN%@dN&^s}t~wW5z547n7Mv;GWyK*;&UrnMdb%{(&D#(BF%KieJ0 z?!hMIa%3V(jKoYNgp{xOo()+}i#MMaArZdPzuD^mcV}Y&iP=Iq2AS1UM#MVsZN0z7e=4%vkfjfIvPI3L-JI%V1a@B^YD4mRjG4d>zyT(l4M%#{Yw(>2MR2K`o3fj5lNTusdn#W|Bj>9;92u=*b1m93(0OYZwVWjx#Mv00w=kKKRJ zDsW|uVrBPg+w@kWqwa(x$5k`3l`FN~36jQIYXY<%M02Xn zo*X)fFW0D9XKSQ$c*cWDo1cRRg082gn{FKj`=&qK-&Iae{{+h-l?P80?KV+vP1(7@ zoUf9br?!x0KSVU^_ycJ*ymlI}SLF{L*^mCa{Qk(;1mD;IBnlg=0qB=8kaXitrZ^$* z<3jX(#M|2Lqq`*vYXm?=;+O}a^~`CstDKX*vj@Cr%N{sQqsFT`ve<2h37248*^hMW zuGHAaAI%RJsP16;kKEhae@OMVb2oc7E0_r zj2GBKqHsV@oLQ9t>BoR_vF*)H?HlAo9NIT7{)#p69tpB0kaa|YlpImLeYe$LcKNIC zX$@f2|J&gjoIcfEc;~4)bKBKQ8?m607wZte-?ZA4S@=2?_b8>$LQj8c-UhV6tolM2 z2QZ|flHmsID49L|c3}qZTKh9-lEeIj-@R|1eHyMX{qVA|M298%_-ivkZY%Kx*ocA( zzruTlGJ-@wLTGc^!=jp!Ry$O-V|`5wS!)@cawPLhe`$ZS+H5Z&w6PJ|I}~!w zec|21eRD5ya{4=i4C$^@MJ;V{!$nmfpvzFI(v$(Q5MoX)zfZQ@(?~Nylsx2+n+Xq&zRgJGGH6ycn6pcd`mQ$zY%6p)OgjTc=OWOEm?72w!3EyG4DQb$ zeXMQia^h*ZFWPi~5Dj0|YThzkaWYMN2TV=ZYt&xWtFonTbQWSb3{6ugKc{N9Tk;&o z1@ru%Wi8`I)vd#N7D@l~flrfQf9#g_l+hXZl;Xtl$E`_p%I3Fc*W-CDv#?vW4X{n~ zJAOI$j^CIPKbV#`)aey|0pgvImzD#41m)NgE>%9<`Q%u`x9q045(H+P z8zLxQkvwhM5o!p{>{q^ymk~nmF=52bz-}jf7@js{p3|uN>GOkP#{>N{H z$hb~1Y~pK;KP3iU`TH2cGJUsLG%(sQ)e|cGF63LT0=J`8DZ_d(7W^koSTz{6- zc$Yg*(tO6v*u{D`675hf66sf~0sN}Yr@?Ins>l1XntVZtGSy41>T^a42ieo-;$aDQ z=Hvn;Haea>-$l5IGXywph|^a^;*`o>?EhG8iG- zR&D=v;uJzbc4~XxSA_Gm`#gfJVim z+q)Nkdhh{1T&#qb+Kz1vd2Hs3y#_|vq1fen@>KA!j`d}FC|uWL%P1fj{%!e6=uy|~ zfDu}`XH|ET0cQ>i*3%@F3%aIj5hiSAoLuPd`yDkT=YWwQ6V_L1uTF0ES%kKOp>&hW zgL5*Plw3JLA935?*A?j8WFbpvbVRfw`o|=N!n7?qF)kz^wFyE%f ze_LGjLL~a3s!|IB(QyqhFzCf&n#ij8&^l((;A_sjrQ?c!zlTv;Z6haL?*nU)J@Gxd z*2snU2cwj6jF!z6((*K{J{<09E*A~yu9{;lY2KvW^^oX=+7!ue-=QZn8{yQvYZ;}j zuoa4sBth-9iq37s zH@Zisn`|dg&#ZI9W8UxECUO4ly9x}WoqvC8r`dxaOw$}Ge=(#Rg|Z6bF-^&!d3d|d zZ7cPUq-a)eWv*vvRkP6y#Uy=vI{J>Y@ zf#e=|6PAA&*y1$nSRtITJ9G1hb7K(u+<~g&=?q?LNKHW1M3gjY3&7 zeYp_`f6JjA!(yekrScwP0gV_q)gORs)nj8JNCH;XAb=Th&l)FxcjKv$F^#M7auY5H-vZ{mEy&Yl zS)|Cf=q+u68GFs-IL6{4~h_rYQXBQJP>U4#lcq_OP|B2v2s| z6tL3Yckli&HC2Gbg-ef1+8LOtYzviD_54Mzai>%)t7XjaSpSUOIR;9L{RUesj|W=z~7b7D`J-`SDl*1 z^l`^5T*3B-0Zb}G8eE$#!wB(>6OnNyOV6y?(9_43m&x(P21+;c62~W**m9&oaK$tG z1}JJk)%e{>^qhH?zv)c#lg1l2$=5;COnP*cka2dj{;K%1Fh*|TPDgzslC9^C~;guF$$iqg$dR7aj(!~oruFrt^-MOkS8M8GcY?*7k#ZaSq&}=?si8GYJ`ZwTx=>+?TD zY_xhg1#MB53bOCWV%e6YS8#knshg)C`r@={draJeL}`yjr7QK$`n5+0zT-MN+*1Kh zu&Q8ahesJMUJz8>v*|-Tq-hu?e>1n{XBi^a+jbbYrE7Wj_Mn|a{?Wek zb)xp(@JmX#o&&{36M*mc{a*h!k31s8MXoFR&HesdysggqY5Iuf|9{~(KjjegR2SYh z{`&UkX&x0HE-S7@fMV6_i}P*QXC(wWs=l13Cn3Z~{>H|T`jPo|4dD31!ox$on&Y02 z^^ASE!2QaBt%57FT`S~;eD&KI82_A6c+RG9iWH2$?X|Y#==?WkiRT&lQw%~J`8KJ^ ziSM(8pF+Xcf_f7tCGWVisH&+MV-c6sN7bJ54#DZ)K#R8L{kCG0z|Ily-H+>>>~IVC zx%ng;anSoaUu|4} z>$<+(#gjaRbRP#zXdDMO+0ZeCh6a7Z9&Vq9;&qTmnRp5JuVbcNFr;W9g>ZsmA(=(k z`!!V*=GXWT;K6#U`+3RUsr$WgzIZ@EGu_a5lyyDKhih?SJNl~`RG7Oga&I)iUZNNd z4&@ilvFQ@_v>#QtggKLbF8q26^e0iS5QITDG6CKnoFyb{YlqF>edk}gz2dZl+B2o$lUetVrwAx9SC;KiJm||ylrHbb9fV2BUzJ@}k)@_4i_tG(c=0Ttb z_Xk%LTGk_@kT`bjM|!&8Vn`MB?~Rxb>=9Ks3dOnhd$F&0D|P{~aZA4d_KT;a&Sn%^ zh@~NU>Moqy7t5KCpsYf#pvTLcI^g>u_>aAu8aQ=5E@jQ*t9f?J#xJxdBk3VbRdaN| zzpe${&3uE3Fg$EFWvXm`#4eob3}8 zVDX-a7?yAo?#^y%eENXt*$;s4!GI64$J~V0O!5*NdV$t-odVUH9Z=+ZS2F=tO zsk)2aaO8`Q(WHVED&LUMS=JbjPqH^v!k8zLom2R}BDa3(&E!i0+^c@SV7T*Y6ioQK zLMl6IPLa)I5=%E#cdgo&?8j7qDb~j2{u7ZEMw=AN=>}zRz^vjZ2T{Gf@aoqyOYkrE zCUZvT<|04|b`lm^5tHR%`D-0^6n@3GlhERKWkzF|O*uv9#&xxcO^c|5nO8W*c4<2_ zGk>|4-}I~z2tsuN(^X!^z9$7epNYL1awA>=|n7VN54 zAh}0^X;JBZ7dbo)s#{hG*Uk#!AQgkfDye#&F!%GNfi-(B@zQDDjuP&&AkdjvI7n1o z&jq%TdSKioYqKCb2JbLg05_>(1(~}|QqW6aMxNnl;DqT9y;`Bll_YI%3xwpGDc&|d z8vZH;hj1ktAlamb^og-Wp!m{xnv}5*rLED~^8--XVCOY*4@d9HYj_iS6I zkl!{$HkSigBK7es%^<#~ssa%Tjc?!lScv?sY|H!UfgJcTthy!O_PXBg1-})N z$dgn3C6e6sN8gMh+rQ8AGAGah`RB^bNAX&#<6BL_*6KC?b^w9D@8xRyU2jkRhg75; z%P{5g*f;m@cbp`PxYAZWS;GSAS!O&Pk1guIeyS(o1;#1_+Y3&LoQukM;o)7g-{|F1 z38HOaaI406e$YDlRE)ZcK2Cv1gFPe&#w@3!-fMy#%J{^4TFWJ~es&jG6hOwi$Zkj2 z&5%ItC2>+`$$aDLedyWn+s3~b@P7QCCrjh!4Bav`*6NFkXoCg@#T$7mQ`!MF_|909kp!Y^$SA4J zcaw|4hejCM2{L~#ld-qX&?+hZY&(1^H5j#HKqgIrbhNj2qRI;yxizF8*Ojh61`-T|$^HY^2qa8OYf0kcU=I-dUxVkm4yV4-*Y(2Pv4 z6rUGPmn84RCXJoZe%#6iq8A6YoKoTLfgIvAaW!PyH!1v)&49P_wK|~N;f34!7T!WA zzU4P+q?%1Lw-M1Ds5Uze-{~HY$GVUE8C5dT4#zdAXpnj6mV~N!_qWf@BXsif;ujqj z#Fu5p9+pNmzpUu2C84*dQo=i(K1h?I3N3M;6#D`9U1{-D6%h&ZYUgbgK)+2jgCZa7 z4EE&cLx<_CJuGNKiI(iQ6=;7XStct_=EHYpi#pO9qzIFn*yHRSeC9jp;bJE@C~0Rk z{q5sorO|6Gb&YHjo8doCMYjS?6#bbZxq-$+7h9-Q4v_h*GR|yPbR)?sOO9}(PI6H3 zH-fUe#8GUrLeM-eOp=O5e43MC4d?#HZS_t`+t7~b!{%tFMdrK17VYo|i`l1vWvN)=CiDULNab=OLt)c*NH@-fi4mJKfoO;lMl)f;HBv_F|$uGttyVKn6-6nKO}qbHisb8rQSJZ^HS;T zGDJvy1oxa4npH^lPWTv}<|qnL^CBr54P6Fu#`nUGjS5`y>$eSV?ApB$bS|KDf;x>%78<= z4QFiXB>wV-Gak!cnz~YXJh)hPv7Cw^xBgZAy#b$s6TLB2Nv~t$Qv3!njc`LCJyjatMMO@tNJ+*?Fynm9;t@l#(6+5+e+w7W#GsG9kFSSP( z(S|?h1kmA2D;WLEFYIOsc3KCgvO^_n(G|_6c0||OC6daiedL#(mbrZ>(`1p*@{xi+ zJayLb8Gn4cRNKUygs>mb5(+h-0FauevEKbQGM17|5EYz{Z#SCL9-YaffImRwyCUWoI^i`Z@L$k2%v4A%li&KL7fU zPA05!UbWUU+0H7H`uLo5t{zTnqKi^YV_ps>=N2m5u)QUaWQ?oNgelH1>hGl)8*KKW zNp0P{(2=<@-S0`IsAsRMyR}xQ&weZ9M8*Hx1^~b-2@7N~szaP({N}{QjtC70DQ-7~ zjxXTGlOi*wO!Hh~6kDyL!tKaIvd}G|iPh}UM!|7q#elv9>m`&kh`$V`LL}#bd^c-- zUpd`U@N$Y;0kWxCgwih=Wb8tP*GoH99G^@5ovLEdTO}_UJz3ts{vgr0KN1C)MbgE| zj;MnLH<^dld=~P<@k`dFGfe_V5#RLh^#thKzY*6yjMmI@UlUtERvIneQcjQBzmeV>WAF z!H}nDK&122>ukX%vD9_pv$OkQf`-++|B*RIHpr1N8O=hHW!7yN{^miUjqZIfZ zL7CPGC&^R{)e@AM7=`uK_lp?9f?|bm{IDffn3{duHDL#9B-bDXz-^9oEi#%blu+=^ z#tiXoiz>*+ZxGvml5NbyGAr9awyC6-5?q4KUk$s`D~zL6S^8;L+U?z1#SC7zx60}Q zP@EuBsumBEF-s)PBGz^jaN054rV-OF6jw!EBs|(uuYck*#wiPk$j5SrRaL52S(eBb za`d72rj1^N516_`R}L89`7L9PQV81DypMc>ik$*3&Spd#@5qASHyit$!W~r|2Uvq$ z*lsF(OD-~0x)EeWS^R!nI!pV0?6xLpHwFjEOWs!a+BFG$E@9WGB8_|0i*t}Eau!$H zP6B1aDC9k0PsJ6W8tlF0`Vr^o;g(8jWF{gL$p!m456yZg z_za>a?~)wMg6XS^$(q;-UelGvsCcoexZ5a;$G4p>sArJ2nnt#&n#!z zl2w#Q%|UC*(ch3?bP(F(W5T21nvYRX5av^~!MS`y*m>LKWjBBB&a-sjh6k<<_~5K4 z>xDUGIzVD}Ke>~B0KY{pIUdl$OECqw+T@o<6vf}{#jD#e+@i6!crFXQuLCPra^O?w zjZ00aA_UxT)KYbPqlI_+9~}r;=U*187&r;#2C{zio&O_T*Opzzo(^y1E@U}Hi`(rd z>eP;{v9?* z`(|A>lP_l9^!$E<*embUwtZiG-6XCTjduk8ieE2b$`MWl)(n?wX5%7J|0>DL=_6(x z&>?Vww?LydJDnTPJ3r^O<|yX(HVeJPIBz8yo9dT))~?{NMXgnX!d^fJ}26>z+^8&cyQI{|lUatO2j*i>eKpkh9uxGFcA7U^d_B zvjKf<=5P4@zovmmjZrVqy-9r(h(flRI-B~}ns47^F0V|n`o2x7db~|aX)Wfwsu=Q< zD=C3rF`IOc6C$xK9Amun^7Y5xH5I0hHLXM!FLn6|l$|+{;yMOb1H)$#0Z)1;D+qB8 zv?jwS!u_h_zTE0aJ?-djjDRy$(6NMSLOUK|(T*zH!do(W2=-m_yf=;Awv+cCA{pm> zsGn*apC9jAAEpkvhyoE`e^JAdPyawWa=dI)xthxnnU>(2tPp`DGRVbbMUwSZ%P4TC zjk_(1)s}^kQ!ev@hy*lnw}SRV?AD;??e+ zJ-9FJZzue1kY3xb$wAOYCc>rJ__jh?H^O^Lz9B3zGqf?*K>UybbE8g;4tHF4_@w zyPz{y)L?U^eDIS!xmI03b{_CD7B55#ekK70J)ug=s#Ew-Qg4^AlRp|MDbMVhTu!?} zQn^?y)dbBC6%Jjk291{pKpMH@*(XOFgEJBwYqr0fsb2_Aa2~G~bUz-Ff6kI$t~I_< z(uryS?$|3j-go80x=jLaV%fW&*D`}-(20^H0^jTL=P+i zoZGrTD1@6viJ0gl*0T)>CH~Jwi90cOEF_Wb#R*MH1lfi^;8Ov;Q5opP#@*2D9D6db zG(lNmnAjE}a&Ts}mdgWG>Q1+feH`l3HL7yW%Zlf4Sb z7xl|usV~0U`D6ru2Uy@D>(~4!^ywKj^i`M`#*xrohBUj+U^R?Ju^~Cjf1532R15p# zV)qGDg6tr((q636xy;;wlbv6)B%Xovk>b^Pin))bAR6}w#Qfx9x5+quvDF^R|0VbR z-_JwPgrUr3gw1s0G4@=Ky0#njFPqzi=H^nj#r14q3L&e3J7ufy?vBM5{N(em%}*Wp zW0#B9qVynPE*kzdD3ze`6IH0=zMb1L$LUPKw|~UBmui&8#*>qV(dl?0dl2B`b=}5S zu93)vlTGYmkfE#$>HpA8pvT7g`=?GHRGI#XWp(-Uk9Z6R zTE;IDGlw@esV`j#Q}Khlh5abm$w)xhgNEAERNYiAsNApW$&z?~rQO&4z}sPqMYo)a4+W9^H6zV;?^?bNyerTgEj zJilptd<7PTbB>_C=xB1;Ydqr@;P+S^It>Czagtg_fnf%SQ1iYf$NiUV0Lqw~_*}|9 z^OVMou{s1i(Rr#*&&5vxigBP)QL|c(y{PjfI^!YBlA2;l6MB(D}|{+-{EM5AUFooRe`T=W^!Ue_0|#tSPmw zFi93aXYsZ*GaQ3cZ|1PJYi3WmvqgeaCEA9D4CeX8SXs9qK}|vf60scOe>lFT<{QVV zvV?Ot{)t&6{F0WP4OgVepnSARD)KZf6K;r(gFX*+8i9N_R?)n0Pb5Ij%=)`3BcvG> zkoeV%Z$+wib?02Ep+Or^yNUF>EH@;MKNsGbIcxzd;+`E>+)Ru9%>4B7P9g1izBv|ATR`+i@TKpu}z1IX|bQwU~>BV z#r?a;h^8*U;$VsG^@n6L+(-6~vX4|HHBcQsgiTH)v+T{fKPq`B8qyYN;mp0QFwE^E zUU=l{bLqo6o5~o2JdY#(fck8(?1DcoMvpZim6G|(uxqH(sjo9w^adikyeM{Q!=o-O z8VKm_7WI3&^!23&RlbAB6#ln+s^9ns2V$0%5n5Q2e?X=KG4E?oGJ0Ke7t|w;Wdz0s zX53U3e|dL`{B^_*#!TY(Hu}f@QID#MjP0v?@z`ui-?2xitUbD8|$NzmCkOv_wBa9wimu*nyLK&ga zltR!f+97vYHo!quRJh{~1x@9SHtJi#3PGnqcPJ^DDr@+T~IaG2iEiisE`X3hB`6HRa>k!qv{w z?qc9})hO7+85b0X#}3({Pm(NQj-}So=5D<^9+|2m2Ezk4&0EycrJjR5rmDB0u1Zky z1KP%I=Y+vO9tT5~`s1M_>C~fbd$%cj)>{YXJE^{SwC(t>4-TPF*yUbNjzINb&V^JS_^o6RUU*QwPp|-J>lhN7>jtNez zr3HnWWM|iKGrcnx_r^7TtB^Sw)Z0cS@Jrx!x>feU0mp%M?H%> zE`FI}=6UAz-)`}+BTF#biY-4%v=W4$5$B5HJO#&GO5}%%%T}SI zd{eYh{++C*MP z)9^!k3wwdRR)#o2X=(Qk)-}6Qf^<2^)>(ktt>lk)XPdh)e-L!<(vEU=buW-};d3;@ zJ+fgNV%!t$C`5Eef;Edy#}sR!JPH}rZwFTP31Zv1hCVaWHWi!sdU018cGh|BFlN=L zcL8&`SX`{{LAnP|PMNUgBN=lj{EoVqS^+I^$__OKhdHe@nGzPG9^eGe57xZbf`ZY$ za<(1`ch-?6@Begyt~ajU3qIfJ!76ho58Nl+x$2y1d8|WKB8;OMqN@}PVuzN z*`M>9caBk^gAjWwI^^N8t?l|JeBsD(ZQH{N0|LGSZk4I4W|8X9z`Z>fAlE~j5T3Xuu)Gl5GK06!=0=Bdwozu zFU(Ns*bkhXYZ@R;d&bQJP5!myFR55mFEfHF^rq(d>^GgwWGPgU9NEyUaEgRzMT|}j zv+EG%Xk;u^Yi%)XMcDU5-0cc$kT0MXVGVFB(_N{&+oE(yUMR(0a1Ry5qgr{T>aztTn*t2*r8H$tZpJWqL{{K)z8BWHlc~f z9f#%C`t>bU6k-c1!_vC0RN&;>0v3bO10aUaOUcO@vaL|s#&6X0F_Y9xwR{`JqRBVX zun-;w%mFarUe~?$uV7{wULjeU{pZj<2P%>W)#bh+uoe|e{-E@Dx zZ8&{iwgwwQ1PYUf|7G)!d%QgRVmAz(Ib>%PV9)e5G7C#*{V_^W5dfvln=7JTY-IdK zNyQg_W??p2QM^to%ZM_#Fezok6r}q%Fk>(%$AS_2!iGlNBXj&K9Ge)I#F2PGCBMGi zLZnV`RZ;Ym!yVnJXFZb650Rq?{FDeF&0TwX@e)PF6-F6;eDU!6v+PPxxfv)!5aILj z;XEkt>GEQ&b>M1c=5s9VKcFwQI=WfoWroyTup`eL>+hftEY??^PriD*mkdwvb+$Ar zMdX0eZu8wrNg`Z;UpNT4JPHg@Rj!p3x56;h`)!zSWDCJio&Z1-y}Y9N0Mj2$Fs`x%n*|*zz?XEo^kR<^wHThDWpfYP0TS*Z13j7!nU5VkJHU1P{+wXJ5%?EqLOxyxgD*r8*1jN>0{xaYJM{hY0T+0 zsXvSq_NI%vwvZ8hI``)0f+>0RZ(sSW7w{P&9_dP#zAiTFVxE|G4luwI<27^?(b+>p z5fgxUtOT4xsA$IPrAaLeXmi=SyIg_?nqHP?ZdA5({PtD5PD8WZ%1|SrQ0%r%2V^}G z%ve@a4?q`*vh`7Iy3SUCuFR;2Sm{R@@Ga6Q=+2TN!O@_=?u~>w$Tn1U?fva>@#RTi z$7Ed*zXz%oYoju?w-UNJ+fc+IkHNP6kh4_1Wma>J+Uz zXgF+Ko5~OTAs_T7b&#K$zhvd-RY>TYUqKL>yo4fa(*Mjq$@uM${(W*?PYl9m1>MaX zh1l@n{HWmoOkO)h>e9KjQUnpWS<;I?wZ)Q0;?l0uF(Vz7MQ1K`^&6_DGJetN2&wx^ z*gz7Z-KBs}D<>1xoNS|oFK&>drj(l4nyC+XqA}TwKEulc$Ugh zS)jEBQio3nND1%gonG#Q-sXFEGj$bgf&P8Hc%{YqpBwOVYAfJDw(c~Z4U9nDm#JYg z+Z}L2a~vNyFXPLE{MY^zgoVeCnWClB;hMKEyl-L`3P~$%;O_N;2#{!#!dHjUE^}-9 zVY_X<(94jd&M-wS<=VdfYgXuYndY_Jvsip2WPdM>-*4jR7yjcXG}L4J2iuC6D% zTQ5*_U8a4EZOU(+Cr@vzIYdG4$tTh2%gy!7M?+9J)8omq$7YBo=ie zHjyqUEa!xw0%DPGc8kOX5oyG{jxz4N0tpLrTRO3Yx)qDv2x8 zhx~W#NGg7!{e=XYY=lZPl8}s~ym|LPAA-D&`Yt+<4MxP7gn$qu-O6s=72(FTyMhf7 zX1;J|@8Os`0kk{Z=loYhWkyMeHo3OPhLYvnzYVXkmi>!kl4o#GlE;qgvOe?mbTGHd z^6@(oD6`&+C4;kq$iVtB{@m(KpYljhFj*tk3^ZoTA^CrmsFH zdh3#c5T}xxEV4Nf)w!A!?@DbzI%z?K#+Q{NL0Rs*Z1uU0!|+z^0B<%TOuDc&Wkx11 z#I%ymv#c4(XGfgRi=ymLq{7Su7H&|i6EEsS5s3K}8uvptM}$~J!saE~E(qcSx7lyk zTpYY*l9^*vJ;G#((I8{fL0St=1=kSW z9lTci#&lu7;^I7^Sc&fVS973yBUpoGvCQ`e!{#&Ka!JTi3dFe)EGqfiLdV9I2eC}4 zO)0Lgj{iVCh|CEEzojXJjX_LEH2(*%8=zWM8s1)modvNNZ64q9h2`8(^b#%1R*5gA0yckiy^};PF`LN`P*+Y}1}6p0o_%DCdwk$t^9})N zJmY|9zr=uNgYjlRF9(|fS;gm+*Xic81imYR+o(O=Eak2nvDpI-cggPfG;^ex_mVaZ@1lN>Vx4=0(Lw*KFTut0u8x6$*Dhp%5|0}<{t=0tCX`SCx1T*AAMWDPH=cF= zUAv7r~XW?3m?9BH7_y@zKnDDv0$j#S0+%gwp>eQdeFm@u2pXP*hx>&40w zXO25BINyKna<7Oz9(VJV24Pz*@pj%hCPV$O58v15JjCpXa1y%US?qkr0%q1b zpzj08=a>@5FHbHJTY=I1VL9cFS8h>3ChxOV!KuNnR`!2SV_>l~qU5>f3(ryhG9ZOQ z!GbdqB<5fd2_cI?`#K$o+*s(oh|RbheAv{oLwNvZ(Wdjo(97*xUZ}&{H7#-BmN#7D zrwi4J3{4XFA9`!>XW~aKd^`DZ<&nx9)N~?5weI)#J zDDc@?Vdrs6=3v6ago?gas4eSMx!EpkH$9?WjY+;G$lxXtPv|H5A25z z8GyqJefwJD@e1ifHjj|9&;bJ+%NZL5NS4-Sg>qzCS_4yHj>Z{!rpImPpf2z|>taoq z%xE86Dx!z*D!vl z^q5niTmhS5thkgrK3r3g=%L|dQnP`FRG`$SOIulKclQ0^FUL?#*bn*Fr|3ZGp69by zWTH*RHoB@iDxk-6z>aBr5NB0CVYacoax6o?==y~Hw?Pt-+nPwgrf!+#zBQOhXGUOd|-5ncot;3?7U@^^gN+(pKv z_DsDzI>QL5vCR|PteWH(;g_4OvKBE|_`Wq(BLf7?*dpcu;Gp!2jyskRm&$f)0Ch_V z<6eF~gSso_Rg0(`_rLQpdD&3~ zgTWiv@TH9%YK?`?fov%`(fIfwKNehej`dwWl|9RN@#nv(vlq9 z6B8)jZBx4YPfM>9T)PXvSs`w z6Fg<(!l`cvVF(MMr1UE*#GpGF>UL*t%DLtA*4nYQe0F!<#zDUu+hcnuFP%qQAo_O> zw5<*W^yP~>a9d`9-P;aTV1t+$3X_^(W||@WFxFajc!bwEUFB*Yrzz>aNz#l2|}sy;`v*zPU79voCCilbQFQHAa$QWn#lE|B1wmHU{$U z?@L3AnV(oWtFow_D!L#0b9d;)`8%2%p}gqC15&uUlY35eVCsr>)AQ70(!k977YdDV z!rTuWBy9V0>rFz?nfPZ_sHkWn&$U4#eT&11&xa3;CA7##z{$`S9sE?+q|aPf)aA9} z6E0L{fcoFZRy<*`24e~qqJYDA$isuv1bJAty!?QM(rn(|g`NEBC*<06KJ;sx9G_Pm zSsw=9%FX@?u?q-FZI}(&b|D+H7mnF>A_0|=gq8j42M!)5l$|Z#>(<2I%&8cx*xfal zXCKC!1~}}gy|oOVNa!gb|EQ|Zi9I}EFE2U)RXuqD~0I zh%t?lyO@R6N+}kPtQOM;Jd*93flt(jn<>YV))udUW&9XcLw~sjx%UiW6R?bwOMnFQNDM`W&LD z!ZPh!V~pF!gZo@XCpNREQ3R95ZRmf5Gey$!0id%lYdpgJ!L8-&DcnVBL=kOBmf`CV zfmCT|2d0^Q$6x-|a4~A()l8T2`^GIntVWTBN2~L?P+Ul7n|`^zYcA;eh-ClV?8|>Q zXmQ`#lAS+X{Yjti9XON!(IeHH&Qs165SUX?R+zGd{7hhGcj(GS5{H2$>%)e zt6^62-9ud%5B$~~rwQdJ7oCtq8b;QH?Y8B12Is67;rPI>5uQ!QK_JQ+QUy3=cb!qH zGP}Xay;s^TFde)2``;eWpoQWi;Fi%Wh<3P&Es&Mtf5uu zkI~ft5lzW9(|mq)-)`|@Ym5%o4k|(lp`5=j%F;E;{IlJPo~jYwjSSWrRmJb7>ijQ8 z#6i)s$2Y^{wGu?SxbPO#?JMV#>EnxuM_X@;>v<;HwSj3B#*byp5MH@l+%ffVUvbf# zQhQs#=DUz1lax{bJvXz~I9`NUySrnHYF4YJx4{KOc}B(X1pIMeqD@w_7l>3sm?WZ~ z8(CuQ6rkOGWBdJ*=+vHMy8VaV_Lj3J-myShh3^3D0;T}Oecsa$J@l9Yh0#sl#$6dW zk(E@vL3+>uM;{UdCZ+|0taSNm8{3L5O@|L-`qfFw_Ee=%qAJIsI%}LpZDK}`k*q4Zje1m6Drd#hUYmdXCkl|j+ndhJc zn1fWK8z1XsZ~wVTogedM8vv=@P;1kcwSprbNY_cB3_iO78HU*O{RHqb-Li}G>ViTBf3s^tMY*}^jm-A@f4>}_ zoGM`7d~XeZ`mE`C4HV!G-A(Diu~WohhPnYmpbJ@}89e&_3gM9De3{wfCLNFqhQ{s0 z%&gvR<>k1%#0u@9dKC7t%%!se_rYsB<`kR<2o}LwA!&_n{9hND>vw;M3ldIGTUgav zfXkcOn~~;)eLbvEA-wL}WVt3~C}8qoy6UbCqzesuD}O_GV7!do1Dh z*2|g1lp%Jxh!U*99W8x;VT&8V?7eF>2Yi)qmwb>p)F|mYV=wkUVx#Q{@#rYs;%2lw zV$mQ^IZA$r{5Q3D=XHxa;wj^6Ji}%oYG1?0Gx_Cr#%+`CvEoI+$rcQ?man!SjaML- znfwit=l*Xv$^)P^bkLfrKE$1LzCCRFL#UX%fC^25kGIiFma5Mgrop;p8(JfZ_}93& z)Uc4`_Gfl&xnb^a+BJ(5|0)wzF*1j2m%ZaStWfKAYBUUyzpcu{B@y@ei5~m^FkE90 zP@#{Uzf>Qbvh@9TTkv+)U?j^ilY+0TOEAD5HyC;Xxu8Y-q*7#AGTRyu5YP?3eG_bQ zk@zb3Kl$R+xaLP+B=^*EhC+yb4ewwMwytQ9B0*}j)f{ye_cD2eXwDy|o}>yWtLKcr zme!$o>P7QhZdd_UfVCKB&Sm_LWgz!o;Sy_8_xv#U6|Xf@^3dSOk2c0hZu3$ zCbU2bErj%b#BhKYMyXz65}kPm{b}#=)Lbn?AQ-p%;7?rS%13@_&6#U2ip~*`@3Fju zzA&TyxF~%kpS|>mqSc@0M)1fd{J;(0@)S!#!j!l-n!SrZw1vShQZ=IPuo#}tRV-LZ zGP@e!EOa8CUZJz35Ldz$^FZg48i2gG@GDq*h-42sn=0rrYkC$%P)TLbK2xO>n3|@c z*9nG1He~!Rz;FN5+lfiRn^uyWdrwc-os4x|4PJr3q-2-AxQhUrQXY@_Cx3-VqUbAA z>KNXi_N0cNv%B0Yl60};7&E3f&}4v#*x5Nrb92~dd~L8}jZtM0fH3+tG&ko+u`6Nz z)#(;W1S(%xfFsgrN}K!{gV{(ydubP2vB!pxE@R@s+4;+2`D|R+Z>TZEU;n&)I1?;N zGO*GQ78dLnG-NonLy3oCYXTw6(#KIgARIcR2(LxFPKNi>(RVU+-ylHpDr|0<1xGl4 z%JO<}Qhq0>4l2azDo>n7EgNFCVe|?b8$;x4F|i<(AbyYKPLioK(eLa#Z>H*JZI=?% z+_y&+5Dc$1jX@@SQ=2)E`#xQe&86oLM%8OtMlD~xHbw6EgC6lkXRfe6#NTXC#jKys zS3Qn;6t+egg%%4{`ZxRTYKgve*G@0nEa#g20tKKbM6jAW zbz(HX;c;?q?<*4#Bz$%-SM+8F9#i|1+P<>!WfhFFyP62jqRY=ZZBcvH(jD1phJSp7Us;&BO2=;#ro zyYTRwmm!1pcH*qlbZ~v1yUo+|n8K7JRyIavVu+Z6Q;r&k=JO(Xj2$Xq))D`a93E}} z&P9MRVjS$Jve1ecalQI>bLXJk5O)ea#G^y#F~%HW$jO{c-3TpHYLy@WC0IaKpwJC= z{ejtTStJBEUm4Vsmg4U<=0^a=8=L;b5c25!f<0^E9ZcLSb{oLhqbR%qqA-DklhxnyX}hUHu7K_tW#?2@y$yE^tNX+ySsj4ccA-4!k9 z9$bc_yjet(4KLSd`siB8$yvjz+$wJM^ILk+8GO&Twj*_*ZZi9+kNY)6>%s5?5S}>g zHRbuzACH4hM{bIpK9^&@(Bq*YRJ$cMkCI(TR2|Sf^X(rN$A!Y)W(CazPd#*tgkL| zDi2JGy80>LjS>(F~Q;)TuZTEx6f=8PO!xl~~FEgh>- z&yJ4X4=4F8E30l~+Omoitz0Ips8#F`iEpo#<@8a~e*J;z3puQ;EZiR9qtNL>Cc;62lB)~i$7VQuQ*+GWIEsj5Rn-?xI4|4~; z4O5{ouo+7Yk1voHATcnqvaYODHzbX=JO;ZHa*Qa)-ZhE3mvbCr+KMrib#pfQ_@11| zagv%-TnPce4wwfu-!UAj3IBXqLreK>jVJh0iBN@6*FNNb#V^#7oYnDma&l$8(Ongt zJd?8fpbiNng;xCA+^d?m^_q*#?=+qe0ZNd z|CMsFQoE2pWyrD6^O6yAJ);nHWee5FMhISgobG)ssJ2?8u}CMVuqxYlVL*Jxe`4xX zi&F6K(p;P{^g@D$1!a=gFrbj+K*DvamlEcDRY9%uzw%uCkHVa{+LGToF?PpH!<6n? zS2IybPO0my_KeR$4mi;_63UvLrUGsYrzR;ITAb*bP_t8Gn?qVn-~;2 zHi{4cu1GvK_anNO^}NAZQod?C=i1w9Eo*6W#v7@U+9b?to>`PRa+*nD=xtGe2AVC7 z&9%f}y@S1s2mnB~Bf@9EZ+7whINqg0NIdsKRdR}^!EYP+bcZV_#ucTph?fRGFFi6?hegE=0Uy_tw9n6lbZYzn z4PflNWzS3rJx~!MhRB(bMmmuVetfc{!8$F1$t|$MHlKBD4>A2pXI4W85P8H3MZqzKg2Usb2OY82*yKyVqL-= zU{f4Lk^VU%E}p{_;)I=_X7v?hn!@I-Yd8zcx^*P&r&$ro0r7iGC6T$c+w#aYcWCqG zHlkvS;1FWyBh-o0;8m$cdHJtj$pX6EnLTvUO>rc$X_(C`Zvb&J6V~efLd7IY3z^HG ze_!#zB>fU%JyG;caT$prB$x!z*u(`=7D3PPzOYL(=zWH2?rP%;SNx9w#{2K*YmX9r zmw&LLFJnNJGP~Y3jIz6#RIQuj8IQ!n!$@z3ZxJex;6+zVzUHvf+XCi;3fO&0_rapx z051-@Nb)w@P@mjlC9$Z`j9Ia_ay=ioHoDtiMtL}L39D$-$r~JbjsQWjhaTl;yS0|->e!N`k3H;p( zq`Ul&0@Pg$;ef6Uyq9QO+VjPhz-<27RpBDTyPi~}C(M(jN|-5pHJ7Ix)*34U}Qm937WC2 zYQmiFfbP^QDYYSw#txiGPkR35r3=3S6x{gj)-d@_?4|!OZ zz5Wlo9U75?C_fw?8A4gZ!~iqS57lkm)OTk}gUO9ImYq%M*@nmre1>~<>h5(a`_wj~q<1^mVZV~~VUh~c79U$5l{Ic(+k z$l+4D40g+#D~gJAT8wXu4EcHga*A@x6FUu8%M}d3zP(J67Ub{+9>XUCq)e|_K7!zp z(b;x2b}{7X_y7cw1-_-@v>z_TG<@en!X!(-Q$p)GZ^=H2{Vo)pdLJBenyZv@nbb@2 z_L{^0qc8+>g^Yk*cq_V0IH(~ZD_Y##dip|aTK@mQ+nEM|l(G?76TH>QOpLE!K39;o zlq$&i=ZQYA{ZtEmG^y)Y8S+?M3M-8d6EX3FUB8T)I{&`)hLs{$W(vo&p%jQzeCA-Y zT3F!yH^Iq0RO?mFccfYJOf6cMuakcT z!T%Zc_qiHTd^GFEMk$}`vfdM>;p-B~&o%71gY~g(zC1#q-sVGYK6P%#XrV{5=L}B$$|hC@+&1?P1H z&yaw4hrpsZbkRPv2p79K|Kvo!!jdcDr2eA~8-`vjS?%hk%o_l|I( z91*lXc!0#MjDUcZ)0u{A2h&z`=L>5h-x`wJRusAo5E~LdV#^z7af#5!Bt~8-Z1k5J zotHn8MOR;5ubyFS+#>ba1QENflNJc?q7Hg|HVZy31v<4M81V+If8^>de*bIn$oEnx zpu&uFhlsmg{Z*{?Qqk4tb8kABP25*|oC@!W5=@UI6kg5BL7P6>tMMT_)8T6_!@g<_ z=;KGoBL)a7*Oh*74JEyi(U`VPJ{JgjtEb5zp(OsnrP9R)+*e{U$c`%?ij%#H0|OyO z)A?f4XUm9vsnqwyEdO(ZcedPycTnQc=I|QDv`(Jy`)-uxT=MRk;r~0^Wqk2bSD2y) zD+Rpv_4a*-upWz`{{j__`y5nTiq`DCYX3cu zziIrJbtq8i?bz#bdtE!>Uq2>G|@!SLkj~QC*|LZzuVxykeNn} zdvK<0kj(pxvswBG;sbj4sQr~Fx+IS0(;l!4Gkp1(S6!$* zOv2IiVvnBeGKGNjn=u_a8cY07$N5?o3-&8@_zf@Vx|;>3P+C?8aeWQK#0fTTvseWA zyW?*zEh9zRnK~?Snl|a9p(`DN?W;wpr$m@Nx~{%YTGuxo9uC6<%)-GH3#lThGsl$m zFW`IEAP8$${>sWINeE~iTil~yb?o{Q>!lWNWH>t8`J(Eg4gTE zlcmL$8ZJ2IiQA{)8d8|eR7&^1_^+8l;o;paDPrhccoP$;?n_oD}AK zU^v6ITz~_t(?&C~d}eJBu@xU;ydFBvYM6&y z@%N29z^9fDqHNK|Tc)CQr&iV2ROta7I4-V@u|7!9b8l|<#<_;p#yvvi;m78_ZlyBa z&`sQt96HB098*&2PEK**DkMuj5vkAx&Z9qx(A|zVX|qmEkrbPREZsP^$fK1qHbnBA znRN&nBja)ZiP%_i1jIYg8lJ?toM6dRe!Yo{@2BzXKjiZUaK0Z9yQrExlQIbkHSWg~ zs_1Tk+g+}p|E?01?c4yD7$8XC1DkY4($|oAJP`?U zr6P?ku65Y}wJ)dZ96iI^WSau~Z! zJHzH&yPp|B;Jl;9vkr9UFLKsbaLOQz%gy`sek>+9M5%o7U50(mbEy``;JY7I6RnIW ze>wo4slp5|eAa#<6NHYt*DB||QVpZK*R**Xs5X!H24=J9;D?b-kko$>VEKUH8l`0n zH_LYBy5+X|qb<{bMFQuiUy;pSLy0H9<-i5=D|op4=@WZ?Jl|}-JuWXe3%JpcsQNFR zmt1Qk^1Dy@(38OGb=o_{s2^QmogVTVjxd`5{8@60!p}=2p&)l$&M3Jj{lTGW^XGa*P=zP{pm$UP< z_{)Sq-_1e+Y+UU_t0b=g`P3xBcYF1jI#l&3qKT*CQh67CG0&EtH=FxJGO7K8u>F#m z-Gz$Ufbid+uM2OCT2R3*|8|!nJ?W07vGanDppl-%H}1ghdBrgKunn&8KoOkz*ZQ1% zVNQ%o-$B8Ql9Iv+s`;6kZK$Bf!N^*@9WIh9kQrQYo3v`l8JGwAIbN_xzV1*;q`yWm zWyi6BkUUvb_lu{0$)WaTa3u*)e3Ma7pi`lnqpNZhqbc~_+zQ;@3T&f(i%!Wp(dl9= zUFZtc1Q>GL2M3o2Ve=3sofx8{;$fx!LCIcz-}Q^{0~5A^=0V2Q0{*je)et2C(H-OS zR(jR}FCuw=YkeO;k|rr|h6P1wZE<%_*yc2V_D@+^oiuWt|NH82HMk5=>B@CHB7+qt zWY?|}*4G0|NpBXYLC*;Qmv{bz!<=DiBC)E1V*-H4W;%+jSiZdqcWOD>S<< zPsN-PUbZcJrKH`QiElXAcSUr{NPTK1XCC~0KtH9QJ)cmOXLcY#Rd;wRoV%p(hMhVoQDN1izp_4{qBSFIhE zucoE$H$5rXxx?!chFtdjEtijMoCaTd@!Ht{|19_8{;Q9Vv>x~st<_yh`V&eb3OufQ zCd}2<`48BO?2=QmaG2{|9pGx+uhIpo&CZjh!xiStP5!XMwX?PO(%rWb5`LDSA3vGb zQ9IHn(hEDN@4l(87w)n4eoPIBevp9TfL-O0vnetxyQP9{GT_TmDrTH0?UQihvVH#KjZc4|6WM>{o4Gd@?kgt`uItZgXUoM zBYND9<6e~o6&!!!7xxtM%LjPT=73znqA)RK;ivMIW%jC%RHU!zEc5^I)~`PPc~iEV zX>lTpxxklX*I3spXcO=Qly`8Py#-`p;V!L_b7>e#x7exikR`GS@LmdFNVT?M%gprx&-n=K+GH*|$%%alHqI$@^FeD^I#v?_ zm{>(XH64f^ZWTJh>GxUQ=Nej}XoD&lH99bTcD8VHf-cz$0ESb2k8xQ>1%>%4fZvJW zo>14wB+SbN7T|v#&PyWqFgz|<-@hlnKei8yVgbcU#f_r}veg7&FmRcM|AU<;qq+oL zElw+sa1H6(R8}2^c8#40WlobF24-;4fqCm&WmQCG@^4ff>zqLvKCq1ePavhTle0>o z1K}sItAviSq(RQsj$lvI@TNydaJ;xMm0GwOtT+Fq9PRtd!>fo8#_!nu8cGu4y46ST z2iApqFp+D1XV%z%n;nGO6}ox#yt&etHOaW*=tOx>TDS_TCM)k(6W<;Z+A=f zKbq%Ka?)4Re}j|U@*fZul4HD{YhQ`)!Mg7oK75(m++=_%2?$x@=jZ%(Q#kajy`2dQ z=X+!S@#!b0@7qP;hI+gI*s9uGqPLF!FM;B;A$$^`<;9s%CR#XCGRmYf)2JE+x|ZUF z?^ zj`|SaaJ=Xt$ucPYV++9=nS)1_*S^B~iyTo;t}^@Yjl&e>-~b!9NzQ*3UzaGpfYmI- z=?lN79JA+D!25F?v%goW)ZfffYEa6J7>K4hH!uOnlpB`AB^@Ly!?aN`?%;NpV$eOo zx*#)i#Bf4pt`wRW$wUN<*x6Ob%YcFuYopeshx>ckz@^?(?^$8vwdD6n$z+MPoI;QL z7o$S7IQVZ!Wi;vEYs`3b7xY|iPCv_SR=Ow`b_$zIYSJ=4Xn?NB?zHo&^6hbs;ykA= zX>7{5y2i=FQ>e5DVhstiYE7fD!~_F%9|w6D3m}l@E6=ODij_f(NgtJNrk|sO%VHGj z7Bq&~!>k_#@pTGs1T?boWNz7A2_F!uBT^PV`(%$V6h*FBdoyboe6@BAP4DmH>>qVg z=8S)fmqubaEF@`_!(-k0>_@LwlzQye%K7YZej?Ib-z@^#^Bs4E+QUXJmExBA3x_EA z-{#6k$BvhkO_7k)l`>8@SH4oC+41sZS3{}WaJZ#gVQoe~FwYU~<)l40nT`Kkclbd2 zzAnjvF7X2b>>tyYC$}afD7mWIE2+O%Jf@l9$oyy=go0$kA`dw!c4~Q|JfanCUCT_} ztsU8uWI;Pw1Y1vs5+Ts*gp1W)ljGvUO%-x{+2hdg7%4Rq`n1z0HC;A`tP7EInT>Mx*Mmi)Ir3VkjPM+SMb3 zTRxQ`4b1DVon-6nFZm5rTt2ipDe}(z@he3nrxh`1W3gVHmxMLULgGz-B&&JD<8z*3 zs`-s*{Df` z;jquIaI5JmmJE_en?{jU+wV{iXfkpT%f4SFVxgSil$-RD5{x0dIdYKqV%0DVwbM8) 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/s@s2mAdPCTL6Dt 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�bwpka^k?!?$D~`9U7V?E9akL8;2}mRunPx zuYPtip!%3-^6vgAQ4qgaQ*48ARF@GnGM%Ka&AM1M2+2Nr72hKEQ+D5SL%>*_GVqPh zu4TKFh-@xh$}n5a63sio1wD-p&Ssrt*<5O4%?>=5k?GTWtxPsCRM=BH{IBNb)8e@V zd;)ubjxl=j{FTj;<0LgpOx((Mv{x#OSW6B~s6i;f)XDo{Kz9U8``s>9u2Wk{U0x8G zg(bb-r%1)%48Yi5AA2+FqbLKT^sN!g3qbpFoZ^PkWmCmlI!N`59+{h++1q~^qLe4Q z#tl;I#;s6aru?8gvmJ?m+S%Qp)<^+xx)xSJCSEj$n2edOf+=L^FZ=w)? z*@{`#Ig(;@d}4%xuA4fqN zu*Q^ak%|s_43Y(cNReKK#z0O#fAf=Woui*%D*#m=>!?FUn=)= zk?Zw53#r^bb$yL_yaSi?HL?i`OjORxr-}=mX*NAgrJN0{Ubu@&XdnDH!}s$%dz@gB ze30yU&i$L`V_ep>l3SfW?%q!R15_n$%ikU>EABsFDD_L%3{9=I@zUPvLDufj*J@uD za8b{3K{9KMaAe0Lz($VD#&LUU=G@*GOjXV%{0dx*}`^+u{fD=e&*IvuQiQfsG+Mu2IUPE&)T3)C!|eI-QKL zby{Q3CV9>1$;Tp@ACBlJ%lQ~(Oglq9Qj2Q7-!SQeBR*BQkx-$}sdx=;Z?o%cLVuWf z|1xcOG8<@Lkr6gsRY4OLG3EF9TI3nMKpl}v+fFVhfT@ZY*>pIn>n!-11^3k(_$f8S zqrAyI#21a4HDvnnR@@IU*IUeAnP{Shj@6YXYKe+i#_>37npR($R^8u&yCBy?ImmFk z7hvnJ##(Wl#WL7xphH1x5$Gb2EG{z=l)6x7h^tI*P5Bhauw3c#TwhA(!$TBBqyZ7j zp&@325yMN#R{Fsv=gf>>x!j)g+AXMYT6-egrc<;N;A)XgFwbrS{#QoT)2uRFEfRG5 z!!zW3&%+QdlSrqBtkfqEmbS#S{~^sl!IyXk0(HM)%mTBtHa6H*C}gI08P95oFk`}$ z0D{0x@16mY&z3n$c5|gjL_--_Qblpy#Hsl!&d$=miI_Fqy&NkwEG3YzgAR< ztln=V4)Q$6)N?hxDRFV4u%(8e@IzkkJ(Z#kx!~@rg1iqex{;Vx-x`1)I0p1TBYo3i zAT|OvJ21F?1h}n=3kDNmhZb&6n~d=V4MMgV7@#E6B%w!0cwC+UU{7a;F2BjRib*+p zw}{97=~39?ZV4(hp0-6klofCT1uF+Q0weYQ>+5SpfHSi9&m31C;11n>X-l7UTekZ# zKbpSz7UD{{^yiJDs3H4XWg1EqmE!x-0V*0pRh06~@%cj3l!do3pe=-2xzq0hdaXj= z2XiRjh0NITi=0y7){@=`=e47Rn7wzkC!ref4XGJ> z3ECEO{mHxN+HY(H_yj%?tZ`Oduhj56@8ewr;{Aw6#X9@Hf2@TzB#I%wL%1`|05EcpPUhPQ%WZlkC31+&QK zuQ15?#QUrn5i!-@rg0s-8e&U4`D$%$1z5A9h2X;AXYrsp0F$r1{bF{e2*^pVS#+HO zTZQr}jF`EMky}uWZ&8xAuCA2^1_nxLk|sL%0e z5!FcVMbz~ykyz04onvW#E!*wA2O*cr+D&9)s=f|u%BA`W7`^5QZ@$RGSV!;PN0HdO zE~p3r9u7c;kB!L!uA^F9TyQbj7M2RB*HK9U7)WKf{^}{#8@#C<0>-=r!rRN6G|S;e zyPGcpDBrKDU`nF`yMjH>%=)ao7H~6x7b7}D^M_U&cL>`n2^DDF34-3X zE&Z2;Rn?1gR-7H$<+FuGy$3@pw>_`sG|yCjzj8#{msII5Z}v>oZyLV*&aBoXp^^u^ zJ5C9!Iy;s4`lFk&2mk-zdUX4Y#0r)?a}i)=3KtrW%6chnK?x zkz?26E{Hj@R{~6g?rnO}3qm6H0Gl^@v@<{MG6{Kn3R`?p>%7Dbs+pvkkJSaLiCzzD z`x0(21K^htZ$LW9spKRkttC0&ME?2MuUE!|B>!e~5de3#EZts+y#!>CU>Tu@I}=p#*NsD* zq~~ZgKzfnj(Mn^D(#@Yc1CI9-$g&D}Z0BmuEifM%Mk~X1AzU;DHPLKXb!I z=3J3fMV=IIs5F45miTDtAIs>C6iB}ZoTGV$3h`VvWt>FQ1%W-=^KD!yn6lA9!%#@BRb+hnrREe;%%O);WlR$^tRIf5l2r89n8vY@-s2D=a z`xH_m{Vu`4ZI63QoHuM!efnD@g1eVP57!4;Ke@4E47;JeW-r9^&P$|=$EPB>$liiP zbx61agYwS9)EvU%Z-2DLPxkppZK)NGm6Vx3kh{K7(J@m3(peG68MMOr0Qu?%kD&{V z4#FQ?M%EWw{97EDsF>w!{Co8v;hYOJP2k$$ZOeOknUll2vj^Cmt+9s|FW`u$m>aA#UmgD z!H|o_1^gCKy@G6l96)K$@_ncojdm%nir&IPqgk#p#TqqeSF0AxC`a;AHSy{Ed5^^| zF6KBJt3RP5NvIr_OxQ5%U)a@K%A|Hv8y=DiXdK+V>?d>iC=qCHt=;FidxxYsbR@_8 zWo1S%rMxr9xTgG;W1>krzdIQ?B8t~3I&rrLgT?#!9eZuR=6c`m2|*rj01D%X+7K_U z<`UQ|jo@3D*6Hs^+He{qAFF3-91Jc|*Gl<_v&W_$l~yUc`-%O=AIJT8cVw>&8(n9v zQZ!}Tye~eeS8+YXQiyTi#IDK&n6X#ZYsi@buDrC%I%O?Ta72SKNx-kXvXl}Abo=vF zpYpOIY+U?E?53m6qr(%idauov8iQ@6q5tD`sB9fbjwO|nV@rrwRtx3Rz&so+1V>{U z{lLlBqcYjw3~#{@fP5rNchpvHtYif*)sCZ6zfJKAlhx(mU%pT;^H`g2yp zrFeizbK+q2)wME#eio7sNpd3tGZ7`ZQ1jNxvi zJa}jwJO;SC=LUS14GX_GAMLzpUtvfdbw3*VFpxn=_GiSp&!!LwCQ7ZS6%01&$r#C( zmg$_KC7eQ9(0_1NH2aXWl3m~a5qC*!(-zp`>)LL|DSC=olIuK$7|!O{@)%;Tl(xlEtu0lp znihGks(lV&CR?a=Oq<+d02bZUIGR{26mv>1nhaIyIceOS*4`-f7+K4*xzT&Wo7&!3 z#lJAB9!8zb-&}>h;C$u0RzA&`2NuPnf}NW@tN?*Zc7i<0%!Ddh!6-$`nQC1pm&4tC zUx`rtNtfqQwty%Kgz}j51M__!ZvUIt2zm(_ z)25BsIE>;CY`V4`gT~Q!t%7Vh`H1%gDheO;>G_8CZA?Xafw<>QfV15)-_f!81vtEq zvTAS$N^x!I9x`DQZ| z_v!HxkN;{ZMSpT#Ep3@p%e6@O*9U;%+dU%FRCGlph0b!w4mE-M(e^{J$@Ii+SS4-9 zBl3S3A3!IeDkW)byQ!+lrEK8%F(UX*8Q^wgwpF4QCv&l)?Yj9_lYrel3<<}@-crzD zVl-#zP|WX_1BU5u6>ZAP%8{??>R;hgdUui(o&e$pigz7)u&V!7`NPZO_ql0 z9j>;Gt^PdAFu1CgIF3t@xe}j-w7PF+b*tV6cCoNZWa~WK^$Nkyj+yc$QL9N6wU+n1 z$>O9LdiU4L#RSJon3k`LNj-=@ejAnGB;}X@1mt!xsgjw0-v_qM9?s;)!@~XpvolAp zg5~jb3B(X?RZM){fp!96-jfNt_^rHFf2Kl;oOm#+fBOl2y{q+?5+F7U@WB$2x|A}d znbnWvH@@#jE7B}$eS@RYNw@W?1TY$Aki}?ESl7+$AtlMUSqf6ekXSrqdix+67AVPU z^?eFr^KA!M^geD2T?r(#x#g$xa-#Lwg{1Rj}&h}c0(KL|{mif$AufM-kNYt0|Q7>@FQsWJW!t z@2OQvfW~U7t}EZtF_P;Ea`~Q0_0M#F+@lc0;p#7_{m)GAxIq8oe>`Jnl>)$25>wCx zunrk_(|^=(W~oiNtYhcWtXDVJv@IeFM&e+^&wzRvkvB z+B&06A-C!~8h20e3YRY)I^p7t|MIF=H-;r-|RJ=uMd%Z&+FoG>q7&-?D3)pQ6pa8JI3$5`d-hU?N)HA|Im7%475tah^=6& z*&Z;KV#BcITtIkeHe+}m8j78bFg6(wt47x?o8GLFY3H|{KW2ef-QE6P^n;LGBR{Xx z^$w5Y|5qu;c%MF-w8HF>gerVH$m-Sfx1b4^W%f%D`5rJj*D zU=W=KpcWVx_z}Bk^i?nR1euD?@-+$!M>a|-t6WepiV8u7wvX+*`xBvjN7Ohn6-6x7 zbH>0KR%d_$b@+9KJ!m7h;~FifZ1v6VEMZvtIB)^G1gGVR)g)7UNaNK7ei$;=7Y-Q#=~V+b`Aa6cv@$J}8uy5v;|xielwJG6F84jAqs+;?D%Mq3TR!k;MM<4w%yCL?Ew6xDLoLQ1~`OW)W6w zTTz@!;E-HknFQAEu^aC}ZG}0~?f%bYzKJ2nJZTT@$T}l`SuYo`gZWjJ2DYwcg^Mqxmn;GCDfhGNJD&Ieg8!Zk$OqVL|@whTQreiO4y4gNxVkkyud}QLS-? z#w9pi{)-miA~1{F1E$B$2eUvP)1+YllYR!O;;S;oS1rnjo?YEwWhh7!BAd+CgntbYZq3^{AElsmAt3KAgH;wN&`H77MP-&o%tYZhprXT(|9M1+gp!nE+pOvIOxuAHb7b^K3oW z_#ZkAeK{-g(S!ilpOrc!g%h#_&Gh(G+bGLZm*SMFo852I2ugfiOWZ+O0j=Y|SBhhL zZk;#4WV_&c*iV4P1&q7=ro8@*K`H;Y^1Q%p?1#00Qv$7!h;ftOABy%jE;cZZjCzzK z_)|L*__ioNE>3stg)F-o307J;4&{5z_U^{Qm~VMxU#zEXf$Ag5kxW>(qdjj%IYR78 zZuuuQW_4f~J2qa&2?(;8$LCh1Q{i)j5vA^Y5A9Wiq?=MOgU)}~uCmF|n57m&%dm-( zlX)Lbaq`LO6aWCy>&Rp0fC{v`LG2oz9s-qRyl7CFA7>-^Y*ga0u8*$k1xb(1%?qR% zlIj3IMo>f0PeHj~j<;DcoJD@VIs{gvp$S>_`-l_a`}ZGx*DMS zYxzH!w!EqH{|h2^+D-xyaV6@@-c{9!>xt#BE5Ak>Y?&OAvA{J7jHAE{W`-Cq&fBks zcZmTrgv%$Az-;~(?VGjYi}Mis*tOVJz84Z@U8IY1Le>9j5OQ)}-X5}}0Ry86WfOU= zDb!snfT&7GWt4$M??BAvPk*Ij3@gs`v)7ji<#_O_-;b6KYwo)P=GVFOjU3;HNyAg1 z3CDGP0OE-^SlQ}yK*maOT!`?jiSikZE`CrBBrCgp!kV#v^kRMxOYHb>l%Ng9(wyzr zOy!t4N=#||kYkS)O{QtwyzPg@Z7*THs!4#buy`Oxa9U!m7bH|%%`r=!5f?lNJw)j0 zg=|ZsqSmzoRh88I2@W!>HOfTzV6#D)?E`f%y$;)1thB4fl(ejskh^xHV`-&YHD zi`3Umw#dN6vCZ|1Tgk`Vadba9V8b4quH&s&$k| z3BFmBC(lm}8%v9k+2(ntPZuVQdFdVeUsk=v1d?K|S_let8=+M%jY1OlxLE|6dj0cAR_Ol ztH6Ig#r&HKr|$^fgbVIKo=@iCm7yGXRujQo)i|R;A@Uv_G}L530FRRMbiWj|2Bsuzfeiz%GPq@j7qy10?%>? z=BXQJpUP2ZYsK;Gh_C-ApwnwQ>ln7GXvwQoR0Zr_wuEW1w6KYSBEfEDro=DWmGE^# zA&rKpooB)JT3JPyp96HY_@ZtYl2v2lbtGX27!%4X0;V^({14nEUtZz?TNZ+(X6jJ? z+Wy+ac!l=MB<+h;Q?Ps&s1JAuu;TDU{!6}bq4v<2NVO`-AS|LZv-G<))CrLLxieDm;Qd;sFy^s$);qJY= z=XBnCO>PAFZv=n;KJoOr)!hPoVHMO_@&Z#I1HIp!COazpi34bd?)9362@c z4T|1a@-{#EX#Qm=8G&|6IK)S_dhc^ez$j)0lI!Z35;Dtxj90bo75&#=<10v-KQtgS zg+s|?3!bLCxYxRa7stCEvtay}jfWBursc`IR%-@b{gWM)g>qahawp z->sqBi7(`nFZ+Ei=@|>U zwDsw4q(huWVq63@uOiavC`Q=bAI9Qt-V$$b);fO%fj~BY`$`#8!P*rXCH8X+UoT23 z)V{y`bB`%8KnVtDB)fms9oUG;Imtc3YSsBJ@FtVw zV*_;nykgEqmhwfJTa=K4BMd7#Pm7#p=GVfTk3^2IVkpEveIofWo~RzaOnfmo?1o6E zg}ao@FY+;{Rz#`yBx0v{%vx>`f8zVd!AP3P^pug?_e((&-kkhs)moIMraaqGs$cqI z3dwxH@>bJXTf60KGNI1GBDB^~s$0hK-xK&_ho1v8e!{B*b$P?6;%34vBfAzh2 zkk5b5_jqgregZ7JH`^9?XX{O6A8Kx^l%ao%Zni#{QahTKIF)ATUOZfENFd1Wxl9E3 z<}}Spz_vd96ZV9?8=D6Z*>A&!uQ@4$+3Mj`RX8$~8Q-V_p>6e44a`7JVPOdyM)C*Y zvNL0(Jng7zd`^q2l9OU{{7#~L-sN)Ejd@t_cI91TLgx^2ET$qKY6SVG`UrT_*GZGl za-dYOU*f7KaUdJ^*~hQ`#Z||q?tEQ9GJu43iDGJ{pZ<-OC4)t%5jq?zI8myw{8jq4 z$vc5M#bpgmKG>@K0_reK$@y~zOmF^jRcZm7Wb#%y&*s@L8k`zW7e=f>7r`mDz%ic- zuD|4~^$_=ReD*E`?3jU%f3^u2n8 z7S4|RiNsVHLBZ6(77cccW1Udd#3y2Z8-T#vf+E+fN)$KY4HuWHVPL20St*}k zJvwhBkbJvyBkzVNlJz!Gy$ED;`~K7N-bBgu1jCjdfBFXIZl}2n*nXCLtS_|*`QRn+ z8Co77jqdFbVucg8^p#NyO3HB97=B~TRjuaWYJXE}R`aY3aW?%Oszm&T9kC5ti+3rR zyVLw$Dzk)=xzI=Y9HlmV2)PE&p#}ntzzLpQ@H&>3 zzd(PCK`ON>G@9Eh>n`hFbC7pdmanHV&T$~!S-is*f-+!13OVd%LfKY~Qou5cvW7)G zNPInWy2@khkGIEGPDQ-ahNZF4W`DXO7HX3R;>V5zI%sl5(b(9p>H-xv;$jg2_`*8J z%yWIIpyKVetPX9{n+r_nc@g#VJy+i2Q2FSwl5$&7gn#Ux-^?~js5#O)M#)~%;UAsD zJ#d9*C=AgYexE5J<{-@?VRQ<&EEt4{6p_jk%DU2W+5R{LwumV{T&@o7FK(|;Ssd;9mu5iP0NFS+6n`y!G!na%UI8sDbwo7-E&y>1+`4e%fD%e`NjO^;0> z2TdWR!S8mrB2aZRs=`8de1eTVNFX}rWIS!(f8I7B4}Yjx--}riV=3aZ4`%4I57D#X z{)^#S5-Y9{Gwd2)7EfTfmvR{1cgOOPT}mCbV`G#nQw`|20)p2oI^LvB_{d_hU*X-YYVq#d#aPrd!AW$r_0bei7roQ@nWzaofJl{tIQNBbp}<>%nU zEb}i#jxopt@ye8v^cJYidj&;#w}lAyr@IW$!>r~jV19LqUnQ$6Vv_>e5>tPj$okLz zblEJExc${689+kDosjt@^it~ErvdA|k7AaH2Mb3zbiSnAbyNRlim=)xwsf{kq~vK# zHWQ|@(+zz>vxv?m!`PWF<`lpO(0xn#=pKVt zEXMB`@HhhTKABN%=BG^XwXG~3yf{asp$no>e;GmtU6rHPgECAj%?nFD1qjF;s+lL1 z_yE7kY}=>TS4pT5(l=2u40Fb7{cC!I^0D?*ZgzF{P&V=swqHIa3E)HDJ|n|!qm|w< z)fK}@()G_8Qqg}T3ARlREu3JhCGR|){7EywqN}Ufc>Dv$gVyJo+Q8xLDAVRjL+S{Q zstqGN;lp84{>Szz4}~~vYM@Gk!=lit!)5zPW$xBw#&NcANl7{<$IaJ8HD-@sOd> z6wxxs6akiexiEQwfr1jY`@e|;)P%T=8i^G$!a>AFq&?bUE}Fsbow&>svu=iRzNhyu zpM^iYcPV^3Hi_7cc6D_tHM|!i;&0bR#=(I&{iu=Lx8~^kVt)b44s#c}QWC=Y>r7wD z*+yrfUxdDO*9>}8&8HGr`Bnfk{Mm+Kfs3Q3lKYnGZG$k(j^>}K^HhEok~!+zKS#ON za`c87(L^NG8z^%7&b?-xLUvarF>5O^%%j?BE|>j%3w%*oRj}wIioe#+6$)}R4qv6W z0Dvl9L^%JnSBb0Z_TEJD&+I%77-bKfSxyjjuo>m&ZZf2vnZPCS=<6#@pla4D=9@Bq z#DE%4CX9+AJ7Di^S8_P0vuD6qLsEz3dd`yu_PcLy`NwQ+Z`nnLvSr9&!5EWnLXbYW zG$B}(@@iK8f@`zIfTMnVLFOp28e7>Qb6ITSrzBsgewgv^%a>^lSTvu!!%An|Pp_}d z&D8cH<(GA=z##s3HXYa1vf2X8LpxaEvqmiuKB9B- zz`3r)nCR{N9rzg?br&_dr#1O6%hh34Am@!2HN2Ksc27?20hF4Q%jF>xs9d2ZZLpJE z8sG^3~gMhHBy{=B)3-)m8#(Jt^+jLiemwd<4sAHfz_=>pwI<7&r@# zRX@uOr|sOEw}DAM&a7j27MGp3#!~_V__T;A|xD`!>%o*_gXePGW)U9hulOZ zh8p)A%HI$utO{8A(+WIE=a1hX??Sg!Wv*VHgWmtL%cO=YU2$zuSuCK=(xWR?EUf7% z@0;Mi?8gt2`D8kRsxdPPEf`=*J8{80ne`@#JMBn{3(#0d)fJbO#4xI-K(2r&SHSPg zl6`#LJe&R1Xx-#hQ2`^PCECq#%by1^yBMvjqCw#8b&ICEivQl;`Z2)@m>k23)+sD- zT)9qrStklyf-_ik*_e=Jw`twqH29Etu!$DP$!_+-wj$fLf2Q)SGL+@dq6QYfbi1~- z)0>p}n97Zkq?I?9qA;CFncA)7G-PzDr@3)GX-#$SisOIVD&;@mVMV^T3+V9W>Vj`nIfR@`YAk zKT5S)T4}uDVt;TjOv)Ec_vR#M`tocjh+_ zj|U>j!46V#$a3cFkYrr0-}>1!ZoDq~cQs+?;at(P%`5$oH)@Oc6MZyGx?;u64(&_E z(M;bPzqmQLBgl#FqSfLwOzn|V@WLO{Ay1coCGeCRJ~yk@fbIkY&o-Z=Mz#l-?TE)A z0;IMdtNY81XF}RU<{m0Ah>9Hb#RJ$MurPq7V;4V2B9RUVd3NE-e}4=^qrd2SL=uUa z>t^H=DSf&JRi?AUbiODT#AxI)S2Vu%Mum;feywRt(iNvOlj7mo#dG;U2|WiL^UurNp`0VD^A|LiC9BS zdiImquCPi}WmryY1giArKGeYL=^?#c15`4z`kAwz++`uCQV^u!x9fRAoB150ic2L7 zU6!MM-k%0rHKGHzkyo+pRZ08OQqZ3*8J?DbKV~(rY-dhlbcIdKt3-qCpE`EqOwoP_ zXl39Pm*sAM%dDc^!};(IdMHZS(()G@}i{9RUS%VU_ql>?>|@LN8K zDTvr=@(tPtnY?%3X)f5t?_9m1J?G#b(*~KmTNUe)piP<@QnV z>LS^o$3k8f&LNj!T!?Mmsshi>QczOc%{+0ZnwoAo{^mi=lxNbiAQH3%33?sWjBOJ~ zxJ>Hz%Cq0Zi~pz+k$PxVre>)Vuct2wquJbQB-9-vMg_Sq)RcLu+{# z7~=Q&xCz^xe{Ihb6)DXeagEX8=B;~xR+WnPC*qRJ;ln{C0`~uptFw%XvhTt@p@^U$ zARs6qNDduJg8@iMGxX3Y-Hj4TcS=ZicMjd%-QCR$3^V6`p7(vvS?he8@Avxe+55VF z``TXRMeog~9?sh1brz>B7XIyH%?n94AxzcZ^K&~h;VJ{}gW9G?eM*QX=F16^6|9Qi zI%M)Dggqg{tvpkPQQ@ummGbao@)q1S${7m~353LIin-UKb z3XfvlSRc{zJ#JAi=czUOUYV6I^JHXIG^7S9m!!tOCj@KUpQOBE@y>eQAS~#|-zFRK zVIOxw$=rc;%qFf_`Ku{u=&+!4^2)Tp%T1y(jn0zlVfy zk`yy(U(xS=tDgXE?g#oMkieEVYW6G83d{0EUg&#%T1M0B{LiMguixlrvGNr=goiHZ zKbW`-?S;N7`Jw1{i4XN!KOYsE8F$C_o|JmXRLJ>q)@!heiBF9@F3qXysIdcCkG@10 z9C+qy5~%k14AXcYtxYr1xiJUd$<`mhL)Q`@KN5Vfi|c53 zm=^-*rP+?^@|s@TzV-+WxnSpd;xZi>cU{f!mXh zWL1z}HZtC)B~GKoh7r@;2rbBLGpa35^!(`>Bz1mQ=G)yw%!%34oEZDSFtPBP$dwMo z^7iL_1>E-~E7_vFPoJdBA@&u#DI?z}Ce=RS`puTAXjA#-Bi`sPQ4FcU_GSNm2;AXA zM%W5D*W71d(A*lLYhv$KJ(a7cF-&{)(^}qh=|uiemU3+sXk*j(IEDBO{KjA0 zMYHSTW#?fwkil>qo`;tBj@3@yc# zZ6YFCH5r#3>^pJ0Vk{tKF;1eJ(Q15t^IK$PvbSFLGBfCL!{2S83VumzgUM_%1s-N+ zV&pazT3oeUyt>Md8hxc9sM+>!H{M6CoCg~=bj-LR=QfgIK0iF|Xw2?(nd>BAby)+@ z$~xI-N7X@{bu(iFlvMyl=70O0_=6mHg1U^jTV$?cpeotc_pQ7h1BKhx!Yu;zsrRg1 z2Us7;3`{sfEnP5IGvz+yiqdtQ_IKPKKSyG#d7)POVA2vXyV&}Ww_h0D=q-(j)>)Vd zpmjA-%at>_L)x%xx7F5B&x?QZV)%;$37FWhs<=yEn4)Ta4Ub^kn`3!bKW;Em#`B|F zd$vuJ({1aG_mzl)J2EvWKHlpMUIe+K&O6`_Q>677;&pmsWKxrox_3+c1^rps2%*27 z0nx5<6<9kex*Ono{=9Mtz#S2rA=_Za)g|DG z?YHQ5$Ry$ET(wXK_^&k3(b9}}J$x-q$3q4AuO>9CB-{%P9W8(Hs^VJNY$eA|HI@dv z4GEyvqeBe(Hcz#*1VMx4tU8q0eG~vnMnV{PnA$FCDPzx(F;&BUqaie-s zfM7XPNF9KlI$0Uj71xk*lZx=qIj)_{`|Q+>KCB$b`QzfIxsuHiVnp)_DzvdHaFlN` zR-y!cuq{U!I3hgjIcyvy!fJg5)o`{W%K-`{Vh@3b=%+l zbkx}ZfVPI=Q;N2lCXmOt;!c(4=mXgfPw;urPdN}p>wow2B|h6m(@V?BcNmR?W^tXd z`?bA9N%L`E!by8a4HCZJQU48N?dCy5Gk10+&&%vZr(*{1j>?jKHWx8IL`fTgOW~B@ zkI{h;IfjehJG1;7=j@^QUqKyJQ*k&!%B6$f-`P7o)D(}<@P?T0Y=8RG#Jrn0ALZd( zCowsal(;CUsfBmE_|P^JSn{Vu^&f5bfKpW$3L~IR1_jZ@j?rw|4|y^(o5=nwx+iWrb|{dS>eU&!*QRwo-+LhLt&a+SfFZlYwZYn^Shmr zM-vkbN^jalJR;dc;@6;|x24#EJ2pW<<`CHXJ?&+AUN=R=%YFLJ<( z5D2~b%b@v_44_)0GW*G}7I^J>o@0_z=&KC%ZN27glz7hOYY-!B0KDk49pW?hlE~6tn&@OFQk>JV2&p@Og z6FDS@qxs+2 zD^cw4Z-gmu!_;DwGtiq9T$1M_DEVnrcYkxUff4Be@fro5Q;sAo9o@XNPLc_^MFzg~ z-$Al--J6iTPX{k!hQJj0F!m)qt-*{IAVz8?Ki6079|>2EXk9u5Kk4QL{mF3k>+(n+ za~>00B^9nSP&f1{J2Rsd7+s4fq|VvDnNKrvsK%ftnbM(jS?TEh-{<86KChYy@OfkZ z|Idpmd$2tOLt$N1-j|58-^6?>Hc!pMO7&A6rc|~el3jaSEQKS#`w8qHab+wOi}Dt5 zyJKO6o)OnilZ`AsknLGszB44+<-P=OZtfCpUj}T?;>vvZ1b-~afjfNkgC(3Iu;-f* zD)rnncYSFic;1ug&j)?SFGoLAI7FXRTiQ!VUVTd)x3rU39?xV@z3B>eF0CbyeWVcj zkg^V9Hu0B6dlFXu2|TnBjxMOxY=@?sI7>lsnZuy?I7a~~3q46n7rDP?K%RW2g0-~@ zdt`g_=W7<#Hrou&+}E9~)`2JI#Xb0lklo19-=Lx#k0P_DYia?I1umIrp<6Z3<;}E` z-grjS%S+0v;?CZH`Rd=(i5Ysj>+c2#l6N5V9^9izNxgAAGHS5ue}r3API$U8jI@fu z+pO2)-nM~`yvUrSG}Xn@*6H2bL~aCVNQ;h~YiQ0{<8OQoS7)jL>Hr5tX|W8oSq-NU zeD6_IsFWi;-2$Q(c?RVJabHV1}DH6@_lI}2S_vPE#{MO-9 zx)KkDr3$j78(4PB_1LP{{vh;W`t<(EGtHLQIWgolVS742ksKpb6};$L2azgwUy6rVPmEXbnv&#+c@<`Pm=bIK+{s2l9QUEMO}zmu_h+lGD^R; zC!}CwE}EF2iKBbyL~$Ak;%y%>nmds6Eu6^le|CddOc1kDL(HmXPh{LW#^`OXbNQ#9 z1OKnF(Sw0YRV8Wf-q4qxL=UGsW9h#T(!|QO?G0%)0*o9<@#G5!XUN?)DR94a77B0Q z?7cmiuQF!se^4o5hN;$i?3SK{e|uI)3>**(X@5=~K847UA=Phzu(3lrNq12h;)8YQ!zbj zbRBX79lBq+CXzeF6ZK8yX#_ZACzHd^>>*?&mW$3Hml!Y2^F-s zRs+umDur=ZGi@gEzdDl8RZUuLjaG1=2I>@Bzjd!E?dM;ddPp6vJazdlkt-}>F6??1 z)C)Z;%1b{KEt(A%zzQ7l^D`-Fw<-^?%I{E|Asd>1_$@3cx6)4VXPo51G`HpaJVPIJ zb{aWj@{u>9Cv_b|kEwcyRp(FR#W($Z35y%9Hk8$@0#5<1So!<(EDaT|Sy*Vq(NFJ3oJ;w~{tOG_RYH~GT zhPG;rrA>4Q7^mKQr*!sCdT!?EV}H&da?5{a&Hdnsyzm8>3NX#fk}u%z^Syg-D8vNB z{_=?0$1521KJv{;itYU)o3pG-fGk0CIxR$iQiqZbFU~49X@=eD;G`ZRlN#CTSTE1Y z#&DD80s?Zv&D7|40~NThPO*f$Y?nIE%K~pwNn~;Yg2`0z1!_qd^i4KnyNm01sAuin zoGOn4c;gby3QkF6>V_Q>@f@*X$&Pi`iMZ^ zblp7Ghf#g(+7aRDAqfe7{C{UtSR>E#7=C!tc8k|jg3|G`O>Mt1SJ4{an~W3mQ9r`l zUXG$EWIvMXnB99745adgxNF(k&I$1taH{__`F?htYYTs8YWD0714C=sE<_NE@7Zxn z&{JPWzI6$Z`kSa-AJl{?rCYT*N@V)N<4?8M;!SC-v%zRLiB_~n(w8-y9|^TX27Dy} zCu(rg`){*_q}LM#6|l3A;VyDr2r~}sV>QRTg=811Azm?Qc6K zb4RUWgzj>eo_SIlnFqehK(ykbz?x-%k6@$1b6SB@wO_99%6<=4 zmuJQ>-dCwcS|DT^fo)bN3TwfsrDl&_YuCfMBdO~O`J`hOOx9u6piHA4i_3_8<8?mNg{)%nx!=_T1(0-%>~Zp<-HH` zZq|ch^?H5Mmlopv0U_ zruGCT%U)ADy{gX?XB3-Da8_ZgUkeX?JfU214q#N&8dpA=iWk?B&~6|?6eC|5{pd-|04 zf)=fUpYQZrh}+e}^)pDHz9Cugnb(~@8uo2-70|x<4F(uc>a!5$IcLY9snNJC$X0x) zlycX~z=wP1nwrZuaZgR`$AW276>*G%mIiq}IK?OZeInZ8Mn+aN@pi30dNcnJb+E!A z7!luD8~H{UC@W%c0R}2%VnEZvqSl{3w}o`R|KbcW?~JrEnBvVpGlWK0W?Dz(i+#Cd z7v_3v0I+T^3fMZX*Fe;5@MG0uUzBPX)ZfQgO;>VWEN3M@M^7RP9zAHZN7?>_d!HadEY)^7eOr)C}-t;vwTwH z>^mmrOg_dNnRZS;AQsgYCs5_0ZaGV?L&8R*ZhG<8zAXySdP$ksGN>Uw^xBD9hy)ZL zDi4K)6kiz$fcMRPqUPR|iq%iqo12)sINT&%9T?KN{33(-xhDZ4;U7;5nic6Qp=DI=W!C~p_U*o=;zhZSw zPmq>J?-j&lTfLl6@nnMG8=luTuDm0qwcn~+2L!LsI?x{W%7f(>NasUd>ep?j~GUmBKB+Umc!=GTuH@_)#T z{`>}obGS>`MN5Saw-9(dpHUDy!W;Q6ewCSDNq4x0xv|4tg6~9qPfyz+XNLtE$EH(b z#~c^k*aT#Yxf&G;M4Pp70U56MLol0=dli?=O1WjL<6p@DT~QK`_HW}mOmId!LL?3Y z2YxW8?;iS{6-Y*6GNu~r^YnmlBiAn^z~aReGvUwolwpZp;$hHF_6(cc@sRZ<9#*>3 zl?$a6-NGE9$Bg?q{cyId4lmjUin|5xGkK!Lu(_aQ_p$^ z^RrK3_8fwkM&xX4EYNER=oBIEzEdg6OU%a7#Q@$=CjA@sffIc-UTuXD;w~ssVQ_0Y zibt;NmV>I9#Tvajl$4-wmucGw@9abC@SXErsknf5ZFRen#l6NF>3*6XW%c2`wfz_0 z){@qjkz6Tq}f*$ z2FBPD$FC15y$SDpf`793Am&Hz_4l9Z`zPbh;sK(s$^2Far#;^Ho%8!1@2Te#*FI$R zCdES?G?HPe2`1z705oyl+H<@ZIqz~_l@Q*PK2~o$0k0zUaWBY zj`1^G`-)GNk~LcGZkYz2ceOGjaiU{U_q9evB*D{TA0<6gj^#P=uV#o0Vu0TJCFt^T z@)@9OJ~D9(wAWtP>KC&Rh)g=C9~{x6T$|Fv*V5sXq~3i-s*qeTmMF?i#FY6$huT> zxUkzi^~LA)M)7(D05`fRm^^4<@co;hLQA;oBa4Rx6 z-*_mOW=?%un?zKwaqqB3;}K%;wes4r>=CrSkR4CBlX;X(-=Z4jJ{{TmT!sv zlF)%8W*pZz#@bSJ$=>XArG**w?+BBd@7;n}6r(F&;6rUh&2~Yx3N4H-te01@&zgWc zy=$xYbu03_HS}RpjvOg53JT-DXz%EKp7@AFN7LXH#19mF3Fh0{%`BVboN{3)yd{xF zGPM8_p+~|3s}gJ6DBY^A#crAT^Ci?Yh0xellDyDe3>5;l74)%X-gJZdCCB9J*S9$g zfRb-!$C;RZ+0}deBXm0CsANQ;orpCvxj7||^NgOy&!LF@IdFfsH}%Uj;%f=))n1=nhjy@>uC=KPKe~(ffOGGSqjsjKhA49jDr5IEotv_ z6T9u-8cnk!@boRqG@S+gTDv(0-dzAK%bUBkBfV0cX&?EAaq{YnJ{ti28vn^ zSw$SI`s_WNuC_QNAU-SC*jX*t9xFI-i_M&;i3~v>>4DcF12##e;n^H&3B3(1z1j9! zEmWqhgfck8peM2^=}j6%Z0Pdv&xP2h2Z+UfRb&ZQZlsT06lCGC=Hv=pKUB!ZDEecO zCR05oZAoM@nHF~^ROp_49WvB##wwy-_Px~jKBM#g_IR=IztV2t0g$`qmG-(TS_qf+ zXN9e%$-;zmRpFTRB6a@R;8|HddH#{sGeq!$PsJiP=IQfkgWh+Hu5u`}B7~QRmsebw zK5f>tOk}~7_66wet`@9gRu$Re;wYH5SlIN<E0!81jA$sR+U ze8%*^dJ+Inm;w{3X%I3%_(x5je|x1mXfdrJ^GEgtu)!Q!Cbo$~cmaA5v;(C%V>J0i zH>F+Vnf-R#y#N93!p4=fa>g+iw}7dk$NN7654Eezm<9T{)lGJbU#lt0%W%2|ge)!! zE-ozKQ&?aifz_!08QLNLIBEJX*x<2P@&+k%#zA}75GJJ6-vh>=i&K&c7$mTD-y{?9 z&ofN+A!BAhEUFK?S7tm2>0$d@8CZ%c)A+Hg^@WF$ z_w!5-Rd1Rhs5}a`3yhaVg8J9=KWu-<6MWk-p*6%kzmWd!Nw!@c9MME;*j7#t9y$nb z%A(U#4H2}q>(or{riZrX;1tyJa~h?A;7(Fz!hc@ORs;i-n>G_U5w% z8TK^K?QJCB%RGCQq=$~YGII3fkA>Ji;wEu7SiPpP}TIWFNRjg#s zB=g)*-eQF!a`>sP!LA=S{fv4yqF6-D5(=#xn-6HcLVsvClBRtN_90G=w&YJ23|fyH zmhGnZEmUL4w0!lpwwu^hP;DJD<5QnXiYH4291ww#)pcEn5+RMTw%&5|cTFp5Fn`or z5(h-Xk88~2xRnx@_?47*G_8~2wKqEtPxNB`FNvvmty+~j_BQDTlnV!A=XHcCb)cJf z0l)d~<1KjgX_OMx`=&bHsNH^8fdW>7j-U(rI^lbUz)W9b`x4edfr|+^oBbdk}`Et)15l0t?`Xb$^*@>yEIR??|Dk|jF zRDq((uRdajK>Ht8FaH*OP{qq;FwAkNICuCll?_sIe2n`Zval7Z?jy{38T&MF zMQpgHt$c2SCA5>cgWk|14&5TEQci4A^%1@0UJjAMWL3zIhL_mfm(F!gjE0f08`-ji%Y7El_1+H(YzhPha7&gcj_KZPgs{|tCNC=|onB3gFm z|L@20Ub)su$cs?zZ6_5UZY?~KV_G$o?jZ(cHTn9gQxl?Lxe$zMXZXo`FSySbvhe6NwulY-bH)NMN1FcimN^YpZCX^ z+4Yn4r3wfmI!}>jF;oxglSnTY@tvO@5{W)diwi%}!f$Ulb5(~5yR>Cqd+zJ$8?l^h z!$om7-K3n&MoKjOybAf9Pv|DcuOqNE3=MfQj()+2lbOYT*2fMes)ELAc&`pgF3R@W z-Kk|@%pqhJMcyMXQ5Rf_A!<}4iGF0TI4XZ|Xgy|}6wS$=QpT8LW${7z&jope=2yuD zK|G4@^T55y|6zKPs`84@FrlHs35jw+o!ntLlp4qc zDb^Iu+%CnQz9~50zJ;p1UU#Acf2l$Jcp`GX9^r{vT=jwnDAQ&+`_1p3nSP$OMyMcWl9oVoed$WpMz%YJF@u#GsLu&sXqJlY^K8!xBD^vLZ!*1(6 zxys-v1u=q5u-pa$jQn~N$uSO8oKwIBWItXnVPX)6En`5ABtO(Zj#Z$(Oro_KJ;4s# zQ<0xdYwag-^6`n4ql8mz;cvOczfuA8Zzh?4#;d}_9hY(nUQliSD&C5Wh&f(Qpvnw> z<1~pao9S!rQ5s61#_?0#)^6JLkN@ok&PZ>BT6E%im+??@G9Jk&JeIWwN|9Rf1pj!h z_Wv?nS%tfEM!2Odi`3C?lQ?L7SzBqI!2oLPLOQCjHIrV4>4~|b9~XNwxDDEs(-2jN zYBIdXYrJ6R#`Y%Cz4p>_6<^o7D$FXW348gm?=~(IpXGubE%P?V-{64wjGbQ*eyfvx zE&O3yP}0H^{=hyh;i}V5ta!XwwVUMwPgsTj@^RnpRz^#tmjwK-$CcbC>gH2>oa%n# z8%icfi|Xnv8M%5x!#IY^64*hUPH%->=%9{Sj_bqw zmZw84NSmq;NZuyfVX^_>t=Xz;+nGJXbSE+knZtV<_T5ImX^G4c%$Wo_(i0HlP68t8+Cho$9mNuSVP z3%SO!3Om$F%h{PnW0RB|O$SsgHPMGNf5t5K^P0sB({l=HmNO-jhkQ7~Beoa1^fBSC zJB9|0L3ifmA7$$v&qq6cD~he693Edg%Q!$UW9%Ce3guNQ8Z++?a>GWRp)S0#;n=cd z#Zp@}kw$K<^Qy?>$twe7$-Ga2F7cVE46oDXlMoOnNCaok38pt#dTc@O{0~UG@MhY9 z@k->IEk@+;O9rB7;%&&=ocA~v(oA;d@iw0~IfkJ;k0-;&`~#jsH*JDQ9kVL^!H3>H z@noi6wAhl$t?$WN_1Ks*@ZnLbMUAs3VBOblN5QeD6Jv zRpdy4GOd~ohVN9u7vl)+ip-UxD)){3`N8f>n;wRdCtQ38n8elU%J0zuKCG9Z`l2}iMNlbav z#o`TOdCBEIY>&z|Ws3iK;-;2`wq?6Q#gqX;zvq9 z0T#_nk{5}8n|TrFWT>>-$_ z%#V`TbFkUEY9I8IAx~JFdbw*s3V6tnz{^3mcazvl29mzDda%7XcpDA*Lm2K_cA(n? zakJVo|9Y&yPE6;aj?}i0O&T8qZ=srZH+|sidERH6idmq@G%S`dfVo5eMr2&Yy@9ja z8^4Mc{kZTtFVC-`VGd^Req#Y(>J}$BVs?yzn5@g=oZxzF>^FTwU4y$BAHDb8&9{ex zKsIs^)aBH*C?-opatk1o;p1uf>Z9j$!uf3sI*48ayq{3PQx9rGM~UlrG+Q=~vf)3K z?u2Ny5+1Mca1-nnPUHcfYp)|Gf(_8d*A<_l`ZaM@Q$ zmguU7)P%j83LFTK)737VoDI@2@YNn&jj#AnldAWrUeU{SUT|oGup}n|?sCR{^+Y}z zXG8(-yH(!9)8%%fy+SpT9fnOBm*x4HnT4fh%U-ts?1CMP6tyNJf_o%}pj~c>Vs!di zfj(qfR))NW++o#Pg&L^=AM1%{Epbe8V5E?DGK5y2(bL&qVlPOGU(9oQY9 z3(vQrl~Z}w!NN(~y(&((hu@IRTQ0w+(o|Z%C82cBq$XRv(!IBcpq_WL;bQdME_8LS zL>0$V0eaRXr7$Js99$n3h&yimtL<85cGI1*kC?FJl-A!VnMB5>Wi7Cy#Z!+@Ob4=Mj%G8%u!TurXWZF*TJnEl;+mF8cR#9Lg$iM&4Z*fq!q#|>A zH6$|f;tj807J%E~RSBLv+d=d{RSD$Nb`+P+PY@LrvY>j!WqDmnih_3~h~B!IYJm_l zF?aY1)5mI^@qx#SF4a5~Xk3M^qc}tL&qgmQd2Vmieme6a4%#rXb1pSF>0-7bGzr!% z#PtGw?s;0~GQeoHpOD8U22M#hl9|#@}KVJ!UgaXQf6-gTIY-ufWVDnDq9 zurK$eHYKGs;p~z3jm&wGxj3@$J3TcmyPzAa2)axPu-u1R0@V^g=WO-SVY9@n?uOb@ zt9^+d)IKS;0S=-!CANUNI`;N1nkL{H_7ii@b-tG$An0qPHT*GTlwJLj^0V%kiR7a` zz|cY-{na;{%jD%lj}N^sN;gE_FP@EqI9S6`~m%*`!i!K!@M=2$fiAPZIv6+ zyb|k#O~?jFm+5AT?)P+#y@Fx7>9ghEa);Y zm7xI88qBJ7@_ZHCAG@XTb|toUJt3Q3&-A!Lr7p`npRsR#d=Qc5Gbc8eS_}^uV{J^7 z_(4bh1i^LQ*Wp3h3Lb<&RW(;(N~eg6bZG*AM4sg~Zh`#vsrdBr-|L4j?R6FTfq+ z($sv!hG&%PS-_;H^oQN}I%nzpT+BouGA%Gd?+pyc_u0@Pwn<7xGe~G>hl4*cT~4;R ziy^)xsIs4o;tdb5|0uv=HgQ0K)+_*=8GpJbo7PTn_jw)Tulb`k+Fz#ff$|uJTmy z-#xnIdO`B+6g`7-Q@w9FHdb$`{K9+vU&;zqfUd2YEPDW}L-+kk{G2Q=;kNHTFDxg@ zg3fPI(7o$>L86aTFo*FC0Pl69vJa}{@oxS#~ZtWvGnOwOnR>y()_H>)1>faSMdT6_wpIbv6Lf3{AwcUTJ<8e2zQH}N|5#|${HwQqae=*aW$I`Yl3>hFz+envJm=(jT8$P zt*mExmZ;X2Ho@OM=7ykO6_3Qt8B2AJjKdl(5QB3*AhJ9-(bN0jC>z#Pt|wkPiAWwD z9Rq~c+b?pGq^CIB)1l}uz*F0bwjRfmph+9tW`KEGzNLJ7NP-)6KL z+HxR3%^&Hrc$Y)NNkxJW*e%!I5VibnX}Y`mE4SD_PxWB*>&RE{c zMZbr8OK;J{P>|D>#L9C4{UX!k%B)eQL@Ts9(k%c1vY?=^)-9tRJnx~~`dM=WJhBc4 zIveDnWkUer1A%$a;hPde=XHZv7#Nz6eb)bdfPAKLaz-HQBDKKN2u|>&&Ui6HZLJsZ z67-#Vg({+_6KdU+>*=GoRm$(V-phCFNMUped~$Pf9Qwm}ulREhaB!qeZlv9jn$4ao z>B-ekCg>&S^zf4@6!q5kU|i*_XY5>482t-=92i%Cx0{)hWA@ZbQ`h-Nx)Gil(mF0zy z@J%4X_*Q7_FBb92oUa$ApAeNcK@iA_6r#(vDly0zM4@s6ui zIq7yqi^kn^+o7Z^XX_DNDDm^jXq`uaeIw!TMz|xiE#eDxH3J1RA9%KvD8RlLW+YQWwf_J=N@Y! z{=P_5fyJ#u=xq}pAu?U3*$Nlf2dg|6*{%y-ydtam&aR^fj)W(9GFvF;b_U<`@D{Nh z!?j;$2w>A2msWGG$|c`byKjn><&zK&_=U9|i%iTvl`Q*96a5bG@>F4TBg#R&`2P?M^tFQwTS1nrT_gmxQmF(dJ`$tu0tQ>$3 z`;=ki?3H$fTMUWIn^w6|oe}nxuhclLLSEOY{UD#<2zEhC{ub8!I;@hFSk}l2cS1nb z-U$6D`Rd*K))WZv^1NHh9ka?2?tlxVZg(z=+N*=YOMXRA0LBjZVZoh^oUoqo{1f)Q1@UzJ}d(R^OSGn_lO5hpOgv8R(%aoIOs8q7;(-JDQG>cCXR^IK|h zjJo+Glf<_5A;DiLCiv^S%%ok~<@WnoG&9@!ZH3E~2SJtle|Hy`?a<$1$V^CO?wKuF z#lC8Mw>8+tzO#ByPG>cci7mTmvCouEC^G5C(Ye89r0+B}$QmDgt4|m0&JFdd;+Q>z z2{9hgiDn`0au%>Z`T?8c+p8{B?_rbkYuFcpU)HT-HG-x}=>ZR2MtO2G9eKqqiWK*O zjvNIy(TYPXFcLrL0)H@#QCiJ-u>I|h9~A8=ARa6#^hT0+n;jDCY!kN5Jng_DP7i8K z$0M9=p>sRH%?S=&zgbZSM(_)2OuGf*{$BccU`;MF$Dv?8WO5cM<@eU z32$K=0j5J+voNFmR_Z0b=cx5X{&2bpSs#so-7gJ{4zlW z(u{L?jycM^=27&&%ZqO4?`UvOYmc=~R~P!^4FfXb0_8BWpWSes;j-3Qi5n7ja#lPZ zo zKM2J%nLa<93md{#+U26%jG6HphIk&?qybeaPyYF9D}9&hS7J=51SkVTOF-1h2FB;3 zu!vuk+`tCSCV;az9m~VJ4}CM+mx>uQ9Rn-h`y>y(6h0XpfpIfZ#B;|!Ne&!0*xvrC zPuYEWH=#{fV!jub(x}jicpr)n`)>b5;u%}ZeDAr<%8pc0DrX48zD#(hBRuD|SS#8B z-=FFan(oJ4YrCQk4e_~{&kdMPRIN%25sQB2w+~+U7>^ys{8=I#+sd>vbU#LeI-pd1 z$gw9>?ml5ZAFIX`UPn;USdG2aIIhc!wht~m3-Jo7h>G2T=;tzJ;8%^EFv+6JaY3YL z@?QA|>zNCVHY8tl^r$HrJiWB(*4C9l&~-q&Vv;E1r?`KDcu*SxP}fI%drHunVvW>P zS20+ARZU6Bwt}+qBoL;g`k$2wL6+|*V=fH>Y~a#ofGC~YA2Jp?QoHx8zN^v%>-VpN z*m>IZfqkrfHXa=AK$D&|8R}Hs<`)BJ!#Jz{aZryC>D;m@?Ye_W_c)(Zaw|mmNua6y zZLvN@Qxw_918ox{Py2lM+GaZZXj0Ux5fwUOhQH{i;Zh7JjS@1ufIj@>3m{2JxbG;r zet(;o`WWN!OA6@K%vPLeSZWhlIv>9F5%$h^@0a99GT&@@eRdxTm`wB6&P;_E!(S)MJ-V|gePxd2%mB=Q|6qna(|MGV_G+ZajvQ&W!< z33j8LyMs+6VKv|<(Cc9v7Z=CEz||(@Pe}3Kh5G@R-zY_#Q}FX1{jzJIIk~IYB)&Ca zt|je$e0$TL2YfB>H3$r+w-cWd66aIF&QpO>N{WoI)tztYx(4z|qW6O4EcX3XlRK$AUtOUWp?g|NXg3;aH(Jvf9*w zJ4d$3%|+#KHkjzrkOKY;DRzw~_skZjwxYm^B1}WZ5i+llJmxPXitQU=0y6v&HS2XFU zeIeS0zfUoSo0R$&{JlbRmgB^WTaKFrpwZZ}+aV^w2ZYW$NiO|)7&fLoxXE>t;Xdc0 zB7b+sT%IvN4>ArPPv#^Po=j#Uv@~SF!)&rJ(gkd8oyiou@+I%Rv5cLa7LWfaA};D@ z8un0^H%%J;v$4TVSRsQ$`z`L zEG>MfyH&?mP05!od*v-^oAMq>X~IDDpk&vt+OJYI=q5TX1k@0Kb4OVrA_S7*Fp>MBRU`libg6JTdSzqIiB5iWTalaGD! z@Ti35l$~DD^OqG~4b%${cB3XV{_bB$)fj2SswNn<)BGr1l8l=Wt-q6}yQq`N+RyHA z5)_}H;1(Hj%r%x`Bbg}j#j$*v1q19yL`X^JcO0`QobKhVBqCgP(&nY-2rc+W6~Di3 zH>)EHS$aQx0(6(Ss5o&;-OL>1@jcY)>Z*@c>&i0p5C1oU?S6rQd9t`Lp<1w~xnJOQ zijgr%Q7=)Y2kS#;>`&=>aAPt!3U00F(s2MzM6pa>$>!)Ho4Oln*+LsoRH#LYnh8;C z5Gu)Uq=;TMmv-(xR*wKe{7h6@-xo9)iabU>Y)Oh-Y`LThc}ZJ3W59Q`qd4V@UxL!p z8_suu)4kA~I;7>sg%;o>ildEo?KtjcHgnL zxUuK>0HjB;obXjMu|U&+eo|IA)5+qRElU^(odV<&?nJ*%;*m~Av6+=emDo+69{W$j z-Aoxx%YQwa`8%BO^W&A;Dn1l7C5hbl?BQ}6e|P!~(9}v6Yir(r02dcw_qt=dO#`%g zWsSRKe|mR*{K(nRn@m=>mcqwA1&>B*E@~d}gTvO1`@*UCL%75z4W&7=R1js1s2Ph_ zB|Xr0pGlXP)*)3eijN1I~UxdW+=cX%34i7iw6*Xm*v;ahk zYs~!r@bq}JzvU?I(l!rK)uP{L^qq;Hki>y#lP_7C*{bPd81=}IIsBC*hH~crpq%$dQLEjes9T_n>GIvWdtyvu^k|f0B$=Bsp2~$Y z3w|093od>yCXv?fw>c7Fx>Xzl4*yF6B0xm zM%%u~5?=G?@(^_sw{D*z1(x9I`Y^r;C8ry?hFpi_#~pDU0npSCcNDG~ zo%8@ru7gEQaw)B(fFM3E)xv+Vj%B+jGf2lDC4`Ivn_QXf4Rf;3Yo>IIpDmfRV}4^~ z)n-O3G-?ze90(K%ja-8TJ-_NtEOr1Zx4V2#1y#M zrWgfMd7_wSgWKKGNvVo{|ID)MOXRT5xo=%PqmLb`uq0j0=D7F_JkA4% zR*}DKykLGl6)vNg14trpP0~+M@ROV4Lo?xLuf$=bL^K)To-~iNy zm^(z?iZOaD(R!$jeNDIfM^f$=kQE;ncDhl@+w!E z5K$-elf3yvz;LW;w<@e1eGvR9qp8t|WmC!Jt?E(Gy`32zl|Z%SV(sus-hceWAkGHD zN#<|kKrMQ!5#17euA6J&dhN(UM>c{zVu*m23Q$ggIb?g#Mjql}dbf}+O^OOA!f0L#i4gorrl(%@fB1T@ zaJb{H3lu?ukmx~35JVl(yF`NM(Yq0CbkTc>-bL>v5rolu@4c7k-RQkDjG6P#`+nc| zoQv}u7w+8r#_YZJT5GQ@Yd6-2MxyG z8V7b|5xaUr`@X9rztO`f%B3!kkO2xnpo9^#o}I%DeMYHSX=BXIDTepuSCHIy$zY+Y zO;?}O^=Cd$)^5BlYgSzY)?#*%EuM?Iy5BtlXSBA%$Ds}T6~!I-@{|^mw3=?zIVs=X zxm+@!H`m-X|Dx$JGLbG?joTOBeNCdb1vb$+`jZ#fIql&2r&(PEFxs3B7XPeVh$c{W z$%ofnk70;Pdls!JEyb`-hu&hv>}F`vxw7ak%WUuA2(;|~^!_yEb9?%qt;OvBZY{oD zz#QK6XZ#~4%w)`OL4hpN32h02W&$+q-rKP@9^u&*&D%Ofzj!X#6X|&18gFP| z02Be$QxVT?a^DmdM*=p{>JuGZ+{LLTlE1(rR7AEXVm@1ZcGV8ZTF2A?H|_1>c4t@JEGl!lS^;3$;Bu9QBcWxIG*iZ`O3LIeQs@2G*SyuKf^pYM^++Ckt14JBn| z^DP3Z|DsicjsK>7RK*54H-1K zzgAqG+w~xa+F!RhJhzBksB=|o4#jf+nHs4DE&W+bB!zGY>zU6ATV$}8<%Fo?g&M2>vw319nIOU~>>w)F zp%x#d(Wgvgxw$?V8Y!5W5t_AH7ANr=o$IZK^&6cIny!S*-n>m{OD%IQbq0R#4K~{8 zIWeffrbJk$BlHSYAF}OgW^SG)UJ@aB>=I2}LWfBU6Irzj;#w3=RK8d_UhKTOUjq4_ zLBG?+Psck*%K?F3mUn<@Q`TS3Ix(w>l1e-V_o{J2!)|h0?klV;fO`+)`c9CT^9y&o zU3GPWZao>OEJZICh^;E05&Pwc@gz4*c7pEdue#g+dZY<6^`Wk4`%-9iJ7tUzj-UuU z&a|%Vcf!WG9y?G_Hhkj7=dwRUe8FK24S|er^K`C;9Sr zyQY2DTS%wWq#(q`v18a z!cIY%so^q;Kt5bpQ1V~JU-%tP`$g;sw()9bEkFU1Q<0b6_IC4*kwEI}yHgb!oS*Ed zG?&k?QYHVr)slZlKVh&b3uGhI=^S_l%X;AWrq#)E34huS|2vpitU9og@5=lquW%2D zdAVNV9*d&XD?NSj-27i!Do0Oma+h&L#aZ6wX3rPfm5t~Fz`Mn2c9D;!Q=(@Bw(}AJ zf>0Ajdzg}p0fxnbSw{~u3yUMT_v6Q;b>&4M4D(xeK5sqyG3HY)%S(b^5w%}it|W@>iO_x2XOO*@7xO+`*eKNGWCW$g@^@&s z)B1+5_tQlZ@9P8Zu6+dzEULo~@!T6> zi7Hi^y`#(W3Si8C%d+1?sgczKG&89W^w|8IS3s@dF{gRS2b9rV#!bAE>4x!!31b&2 z^g31UWWdCSk@}CUQBpt;cxFYdgu0xU24egGX6y98y`(PR(lO}P^%?!gL9Ap7CQ+ zc`1zQ?Vhd!!h1x*Do3(w>y5spWGKgT0~sEE{(@`H1krP&1S!}d&#|oVOO*puA?FKz z_1shQ@P7hmmiffC+&vL7nI^)u4ZZ{Ny0+Jv)3K8Upg%i4K5!ITY-tkXZ@@#gh4hws zu4~>t9CtlA5`Y~aN}MmsnoBf_+6%s>n*ciRzNI^=kFS(FAAPO zn%UOgWV_L4AuC#p+|4nyUUqD=)btV&GLHR*d(H!tyl9}U177Bl4SRc=uq)r6py7YI zIrigVcF5h;$1c7XkWW^RIchzK+80vi zSpkm$=WCt-1IV2-5Kc+1tE&STNt@L0bt%`Lf#p<*b5hmN!L%6MZmhB$k?A~UmIAv! zIZ<&$b%9Dj`HMO$EE~gY+p9x&;&Sd^BBJE|V*4Ty9!*>V^0#$Lsu8B!4HUCnf;VfB zP@C~)U-Un8+!;`iYcFQwRR`_(e}&aLH1bD9mJqS3hwy1aYaNFonuKKx1bD=Nt04=J=r(B z(dQ40SB2-T=l%rCHa4i+E0pubrXOoUOcan@Z4jC`iZwZPe3~)>$j4LdJ&c;x2}7IK zSB&0;VV~_+lHaBuDoejk2G<*CHRAmCav4XQ%N49a#d#^%K}~?2_c6nef6NyRs3DEi zuDI3itMO+~DaHuWu%)e~bjOKVF%Z3sni=cO12hxq4{bizbtmF3)+PME_Kzo$ZfqLb z><<7m8B^^#eyz>8oy>O?7uO0Dc7}kn?~gm?BJc;FqJBN?(%(Q1V8|ZjFa2(ETj^KP zj>bYS0rY*et0LuU3}FY?5#(aY9%118q;r%#KBEGpF5gICX1sS57v&Hc$x(~rpdQxn z{=xz5h`{?;A@~P4{g4zj_}rD6R=ZP(;FYa~rH|px@ljON|Ap5OWjd#tw5n{NhSflT z38Qv>lA7wo&YC3QqY)w_Rp~6TaS?XV6l*^-ktIWwx2XqjKG!SPV18+%o)l|QY#GqF ztfcP4WbGwiIFWEN=6s_2wX6{rRqK17zPc|CeY8C?3;^dq*O=bRzl zeu+;!Fz8VA4+DXxpTZ*q2sPdcQ}xSJv3;LaeA;$7xwoz?{hRX{e#W~0boyzxEFsAU zFR_I5px!Q>`@N}!c&1>*tQTU-WmG_J)NA_Oi(5h0>fd#@2Htyr#l2y#gccVPM4qd= zmaLu30weg2 zI>}cXQCwd11U0$2*k!6uhQY?oMf?W3cSw|}kL~83z#hk4w9y|m7q67o9o0}rY4!AX z7@)UvMP_DOMHYWg|JC>PHu;S|nE*F^PSQGfGK+&e2u=>7DJVa-1}NQc-&V6)gaL#6 z|1uCiJ|oJ^7a+mD6?t0K9%T~9JYigVuOOL<&_wNR8x6Q{Rr8F{Xxaj-_e2z_?<%KG zHGAY!bS}Oc6~oM%cK*;1yWD?S1U)|y_r7@bI7FdhL**;{>hf?47;=u4sBAtEcm@bn zX+qAZtZ5^d*25FgG^^zJfmo5F@6{cY)%PlZP32oZ_Giz0FvLab7i{QkfV4^6*j`FB z>`co-P|%rKM+Z=Ih2rblR)Kuz@vwOM2gnsYHn3`hn_uv-ClfDv3)p2_Z%R)7QGxR} z?FJ0bK20wdQ!m!m)zOrypO6|B-*)VPCl3Je2tbo;ZHOY7{yohABE|^vef>n=Es<VS5=My5{@iHTq2N9sjcVXH-?RPkn1F~0M+OZ%O36oo=P^`D6;r2E@Y;+~Lo za8JbzD)4uQtbGLQq{@x%2c5U-;Z3S`dnGF#7IIk0&u=p77sHyUaGo>Z$l$iL+_-10 zzB;3t&*W~ZYD$g&VR+$w#JYSqIy!tjpWvQd28j8q3m9s#xRu;PZNr3jK$Q}3Ctm~a z2s%O((gjT?e^Wig;o{)nEPtRw$gPogG0R{okYkt;tE~54t3A-CdD)Lbf*v##D|*gB zVXw^&=q8BGG^<3U-FQ4SDXRQxa;bj!t7HD0ty+0Y?>p)-_TgmUw64w31YuHo;z$#v z)Ny-c6!W4j_0k^3@7~W(d{QqcXsg|H7GvBR)-XMaMC9?8I%5c^9eB%O)n3osA4wp+|+#Q^00*u0RD_(q@+fY#3 zYPCz(N4ccow0932u`hOJ$Zz|`dIn+zm_7ze8p@p}dwW)594K~!(n&gU-IKUJmSj{$ClcDyGKAA| zj@2DfK`*QpeYMLhhN>KHs&B=I3fjjNFSbWg1uwD&;_WWwSl+yO;{?Icq@Dx>xC@ZC z-gJ9bAqp>6gKt01NlSnOi1QJ;OxXg9Fz6mwBtv?JEH6vB%+Rf*`L*By^l8tcR1qRZ zM;Y^CQKmNc!qUA;+jn9+6SpLhs~p#%XX!Gp_%$*7AyDsRnyUnW|J`+1{ahHZ;IeOv!quHI+#N*~v@%go)e)?^W_#}qqt3f~ z6=%CPz!};RBfh4oZ5q>tS1mc?#>ws%W@8zmrh{*k(Pch={%p=B*&eSTBAITaju1A0 z8pI_`&wnUdmy>hG$yCL=movuhhO9*r z+;z0&%&o7_raIb?9{alk?d^Z6*XHEWY7OzihQei;pUC-frt3^5=zXCw8EjXaKqnj+ z=N01P<|v?}En^fad11&k*GV+|)qdWPNvK7DvFc@-AMoAD!WVQP(Mftlr}|43k3Q}k z9qfCF>?ok|c3Mbac7c_C)Cw6Nd3_p_0c(Z}$j-*i4MGS@Lx1lb6>FnHO5uTm)g-Uk9DcPhOhvZ*zA3|)S6@d?- zb?3NA63391miA`_NqUIv)~0oP8>UVk-!&0Rb~^gU7&r4h^gJyeo@{FKl4WSr#f^0( zwk-ZiN5_-2$@bNXhrtOA7HVYxcSLCQHkfM3QYR3sUTd$__)L~24268So?|#$ z2Q!!OaMEo-$J)G2w=DY_el48XFm$(Fd>j3$jsRILCRU2FMo>(gLbbWVg28bY^PO!x z`3*(_JtYQ z&ah19P#Q?#FF{Sy;puM`8h2_{i9dO=VnRqBvqSQNZ?=vP_XQxwe+N`CQU5A>RGv9f zz2~&Z--{RKh0`cOCWR12mY$*coTNHDyA}Mpfl2A3ZZPvkn=DgdXf7Zb!Yfy|u1%}E z=rBibS-N;NbK&vuq8McpvH>;*u0|&sc)|)kydpse^G)8r?5lhX6BArbrS*J~#p9VG z>fJk8fI90Cew8IgPDqmIa4x@lruu=?S>0cdujyru)qAxfUvmj_YsJs>RU;Mez*0=cuR6}1oWcW zeX2mQhCCK20sI&<=zfxSIxHC+mAlm>-H{t7MR|}Dwd!rGHccbs$oW*}V+Y=T3@)QA z^OUYsq*)1HSRi!QxbJ<~t$8(|epoY8yVER8)zN0m&@yJv=E->+j{; z(L;r38F-ZMLw0Uo`n9jy3j+W9IlDaLVgf>szS$an!sWtG?%Vl(ov2(GkIATFw-n6e>GWve~-elE_9fX2GYS)`lg##xv%Xs4-fh4IEx@YkmNOtsxx zQM=aTYe@vSP5PRJ#*$B-PD?{mBg>|(uth=ifwW7_GrsOhR5#uaBEEDW+v-l)%*Tp0``3e4Z)Ze zk9QDkyBX5^@j1$kCU^hp9Kgy40_eh_;UpchIgrXXg|8*9Y4YxU!yRd zD{=)SA%EgP9?3%xxno#8Ic!>ce(t%dxJH$OXuN$pYJt5F)a6BN4XADXXj{-8;Ra=7 zbCNUf><+uw8SX&feI9T3V3j`6*@y3|OZ!Wyn?75UApKrxraHI){Sb<2%$sY=D;oap zHLG>~AEkQO`q%YUtn!r#{*i5=DwP<90FiCmq3wNH?lQ9(bGwLw3UZq^KF&~LOtY54 zX|it=-@Vl;+ASZ|rTGr1?@9oDe(5DOL_VA2R`XwX95#_V1AYHuePn8dzW7ciOD2;( z(UTi(MW(X+A=yc>kD$sqnr9Z;rPa6a1UXHa=F8?n(sJz~t)@Bu1X&~Hk$tXp-M-p( zrX_NMgVL_eJ6jx@ihFW?;y8A)SaWg!Y7=)D7U$$5{bFNjZ!F=X@FZv9jiZB%vBOvI zFD8RwRbLCd=)D49{<+-1(6;^UTlpp)(GR z3qTe zO*{YMHe@ZSmI62yA(vz#n+gc~S-;SXOV2K5#_}3DMrrhDRsLAU>;FFEQ%Mz$DTG{k z!t3&IFMAts++w(*9hTy{f7=@r={opv$>wBQ5;&{ofODoUO>?iL-F@M-Y%FTe&o@it zf?{R)?54|+yl6g7)2hET@agZH)M%-(E@3f`Nl#Dr70VXyM6>D?;q zK*#x3h#de1qk34Ud^{Y&T)g6W)y(hO7+}>bpGi%R3*pdIytJ!Uv#O9nM73z9{!&Kf&TxvT!L84ef88z-ZN=z-{e!Y@ zo@9#FckLk%heP0Ux;jE`|5c&a?>)er$EGj@8Vh&bgc{w2+S_^9%)vY!w3>=$sUjd^ zT}{GBAGc%wmvwn-nx`jE^8UXbJEP%n9&&RucXO01P9sS8{CO5hYywrL22r98NtR)> zBD*|GaRk36wq*Vtb`N$c7f>>cD~E{BE#o4nh%PLDq8z>WUT+zyV)I-DGv0+TVM*oz zu-GW~+h;Gu=a;^tVIv$$97ReT#rRLU%Ktq?*kBbydPA82ZIPb9BlUrMcNB-7JY ztER`YBkSB>)vH;N`yvKfN3fI1J{Edtk6gJdi+Zhh0zMm3I zSrHTz;A0he$4@87&yvR}R7KJbs(&Lg;dS|`z3K6a@7+Y7nNqeb2=)ERvJVDo6PVD5 zPbVbo@R32B2Q`MVl?$V52cpZm@zHE{rpMF*T6L>bwls z#|9I%l7<)>{o-5_wYEBua0W3sYI@g96U+qT5AogZojrf`nCa!tu=_gP)b7M{C&bPd z{o6j(OTfvD1LtqSG;>xQj*?}MR0Pao?BTNPe0g1&yMH%QhARV`_XQjo%-3FJIq|*T zPXPa&e;sf4jcsk!?{xDNll%2*f3*bK(3v}L7~DDka*`O*MR4eSP$*54DX5_3W9RtY z7hyJ%vcA9h)K9UeO^%Eszv{j5BFCH>q+*MlM!WijU7#=XXd+u%H?zkJ1gnBlh_CiN zGZmryG(z9c-~T83i?MDhrnX-oCc#3IuML(SSOQ_oaqP|!Z;cWWN%lsTrq9N?DfH!Z z&9tNQt7JZYa!%q;_2u2wvd#HAHa$q7!0{UoUoPK-oWG#qqCh^?A$L{v-`pWAS<7`~ zglPs(=KD)@%Mg~iKH4pl1_&3>yh^-yu_*G2UZ@^YoyU{Zn|(26h48xQfcJ6Bg!GE| zGv3p&?uC^|2%VF6_T-$nV+&!3tJj;8@~mP@al7kc(lK^#&#}c2AH+if*u>CD$Hc)$ zP3PVFwIB6|Ybo;Y>;ECN@AUC_UxJ|-0BTc}vanW^bdqBBGhJ;@fkFJ0ZiDZG7_cSt z;6V(SQhDFy-ak^+(6)AQH}bLZZ(w;NbaYVWqjz^%Rh6$)Ma3VDatXART;5vaG+t1H zNK2yy+`!qm*1#V0B=UAZu&q1u!B+VsH0YD$36Z(F$uEtooJ8YPUfd}@bLQu6-$Rm< zo0zu2<&S)@s9czW4G%Uk=Ev24X~ro~BEqTKcXhmxiP2vWRs+&U{zdf66iMvHChcuS zN&9?HQI=w_YCpf@qZlgvOT!VZICY$go%EIePMws9h^Ud?L~erP))!Q}8%v_aBFBNP zh1Sf1%p1A~j=gSxDSh1YA>}SLE)4SEp3>eZPdV{^S2Wi z>-<6!+IQ8;U&ZU&4zl4Z@!SV7W(ZNaAkd|yEDYMea`y{%m7~#%c+|fUu7owX7j?j0*>)b<4z8` zo*dntcTNL^Yf|6IeqgmcQGoo~-UOSj>qk7Ue5U?EtJ5T0Nk)LZHhdBhAzyc#BYIRP z&*Y_X1`=an%I)P1YFV>~;FMN8tLh;+C|2n1wH}%Z#>A^~ubZ=;b{oyIJuX!o+Rs-fJ;aDU?}L?_Y54K8B5ebsO(y0~+MKWsE3;{2IX^a#r%HN1KOPC9sZ>RN6e zLMa>nS=4~PdO!qaC(Kb|!;$F1ikn4ea&W95fu|Re{7RIj{JMrWYjkuCmG0sDNun

    sSvx^u-8|7LfF08Ln&a5U*93;zD8II;F|z7?|J(sCRbwlXLbAHX@r93O=E+Lr zxu|If-AwX?r@J?K%A!|s*z)}HR~7q1z}1MQv_$(Z%*dnX+Q`l|D(yoxj3=xj(WBh2 zK<`MimMuWgZQvQY>mLhL51)3Djrw|vHPxPksSSN19>1V1{JdkiYYJcN<+p~2_>0TJ zDXjla(5YHThCYi&9E!vWl{$r7;0ivl!ab;M=VDjJPSoy5{czB0)3LmkzeRAo@9LM+ zUX}GDhw&U=WYZKq<_)1*Z~8v5hg_FYE`-nXCRaj1{xHZxuF_pF)~DaSJF~w@_|a9a@xsJ?xK8H^4aX-F zfC>xVKk4sSkL{$;sTEF8Wp=~?!$nzyzk#|%s=8#5*Ps1%KVO_wqFHkX_T!li?W5B20BE@mJt}dyHXQc* zJeG?$DOkMLq3CyOT&FZOXDchq+r#Z`kyVTBzk9_0%l!}??G$f-H=abHlWFqO4MU4; zepkXPTc-%r67$|Q3B#t(Pd&JgI~I^v3l}eE(_?6a|9EibJcS{z%zp7Zj(k6U9<@cx ziM(_#-9jy0-SPX#NpmT+G*FC9xgj^7+{KJ|rJyYLn(kLo@EzmU@A*IGhRZ)Wnp?X7 zRrv=q{feIUUyp`Aa0e%k3cD|d6sSKx<|2Q023Jp-nWOOK#HgMhktdO)s{GJX%T}I< z`=NRCD(mI*SPY+$LMtU!O96L2uZuf&Jkb`$sO)w{`CS*%+k&&>0oSo~Q7Xga44nD& zzwjQaBlz$+Xysc9XJV4a*+S|GXki@)jVXChHMO3`bXaL4UZo!X6nI&n;d=YlxPYc7Vl1e!o2H-LqVkJt~_ z^}wZU`ZWc}?|qLj3FL-lSORG#CIE^d_7T0R1Z>!TdvG&O>Ki9Z$qOe3jyGZzIedjV z*O9)P$Yne9TWVl{b4@usI%HBx<8hr~3-)cXIM1W^C4A>Tg=m`Vi^~q*1_uQx!=d?- zFKmyq{6we4CQFZ1%vcyuMau<=oBfSf8(E}lhqCjbIH*QX_l80UL8-b@dc~ij4a+Ea zGNYAzu1>|+K2dwxp*(##I;sfUl*>*I3~GO3`V0gjcQtQtarwtF881}J(7l%UHyg`i zej}}7$=6i*5&E80zumku5Xa9wjJ~>P8^}ovU>k>h$yaT0W@beuc^tXV42XDBmi3m| zWg|qXicf745`!blHhgVoR+{#YPYLWBTU+vOUhY=qiiX!bytpZYr|R%>jB!)Ibqn|* z0ab30m11oWhyL{n^2Xmy$57D6FWXg5Mgx2 z(-S$u9HFp_BKkNy2_vqLu&P`YT;r;tj@a9b@bUUXVu-}(owQ^DDIB}cda;_ixSa`? zcr25tzb&3=B$XGhJ(i_2nNcqeD-D1N`CnU}>yJh;a>*sJ48pZj5whE0^%*vP-qa$# z1=$Gx7o|`RyUm|D63^tjkFDb@`?qbgoGgqfho|dV0t9Ws^XB7AaPq!d&4de>^;OP! zshipI_o%1EJjq9O5)MXl{L?_v#Ej3o!~PFB{2pin&ZNF)4c5bGzASU4EtK${7m{`= z1S3g{YpnE<>eV&g`z6!Txk|{atA#mSWDCyk|GyV}e0DN4v_n(ec!J|bmrT|~~b{{88dnXSW0MbhML@`6VL2uUk-?e=d zN47d15V&gA9f*DXH^}<-+$@RqxVO@eq!5klU6lPwjq}ABTnC5ER(ETZS{8uisOe1E z-!$iPAuUfqFqCyb(JCTE>>7-kPJledZtA`Q9GbK}NBAZi5&xgFhni!v@gA zy8sGtWZHhasQ-6!X!p`wMp1o6_-WwMYgLcW)?{m|yVZ26I$_LJFWc=bWgPt*_N{aF z(#r^r7Ah}N`?Aw`ZSI`2%g5P&%MddPji#T#zT3x0=mSHKevSna=m1zP`Rwpi(FDYS z@poPZl!vln&z*bT-%~m11&_x1SXrqeYn{gSq39=5)N%+ssMz|;FG2|D@F$xAY^k#{ zhQX9kt-Of#NbagSt{?M8(i)7p`P!rxAPT(WrurXx=N-$8scLGaCxGWuTv{NqPMe+SQ`1+p9|4oN zaS!*H&+TbU)$})wMJ0HtjfSN3Hm1Pznrj_PI zQ4t5P*6F^G5!d!$Erg&6Xa1yIDJv{cb?N3m&#Mj1ovU(0!F0wn2DtMPN zsS|ei`_9u?+hQTNAo#GX`3GJ7|GZp0s)}kL^kb_9wl`%PlgCj>3tpD80I%x|FqewC zo<78k-AV^BZ3i)?1Q>G};_m+8dD0MDxGvM6%p5df(NiI~#T;~Xw!J?-_tLNTJ0UaB zVgQn*Vtz{|$eB4$Aq>kINn3Gp?0d4;N0ZKLe20JAmNKr8k3-Bfn$7+Ao|YIBm};Wh ztA%+Iu{^%#Cnnvp7!P(03V@0u!DiCrJb z*rDEb=jPSj$b?rx%5)kLRRQ3;5Qbip#MH{6T$Kp4>0qW5bd1NJ-e5`PVfUE?F{BuC z$;RRB6B)9V3j&CUljy?kD^L`TeDw7c8FIGE+Qg~>)^;TIUDv43AxjqCa`ogUI097_ z(}U?%b|bMt7)5W8h_FIex0d;>`d)RkcOSP+s-ygvh6Sm<8Kx3f*7HrieOz+IMC3PI zlg`xCMo(d}dhp!~-EeyYwr|gst3LG^*xK%Iw2`1XSz62kx@cD|NZG7_ojGCwW17cG zajmAL3RYfBuRUd9^p_=ts#;Al2s|mLG=AT^zk7!3PX9xcEP`u;5mp7o2HhUQ&^68J z6~m4JanaG5QUj_i`a^A4O`ZCI<;aBl%(X~MMW2n}?W{(hgF-e#MHlwPL=!y>);qSY z_e0IxU#>m5X5pv?| zeo@1(N1b_zP1-oseOe}k01=?)$CNYt*u~HLp(1^I_f}Pi7|CD;X6Z;E2fFLsCpMIX z00WuHJf{4q26}LJ;68_PmVd|c^p)?~w@RGFk)dVki?W#Xf@Ek<628=9e9rYEuQ-c3 zlew_V>K60jnUWQ`IsXQ_IP_|$24)@-f9bAc@E%A zd*9bqj#a%wO{#lqBTWZpgLPC4`U)+t2igW}YF}m5@cUA=(2F=u30sY~t!OW}>z?4u zy>*1(yT_z?Pd?0Xo;5+GaoR27 z*DeFE8IZ)c-j1q1V) zC-dDGSu#bfsNrk$h(K+r7&h?dW6lPb7Wh1*-Hw${4mqWE09RV1V*)LF)@@s&t~63y z6~?b!*0NF~;(ZRdh`WUW=%jZy%ng*Uo15HL+WgDi$hhDBjn$PGIB?$Y%7q0FzZA10 zFvZ8Pdoj}|jnR+Npn&$|Z_EWa3FuUCHyl{# zn)aH>IOsGt-51FaOwXFdFH?Sz^67r;7OlaR!y7`fNm+Z(^&>K8C;TsmwonNyCzqZ=li{-QzV8r3Q7c@D5Pa*UUN_Ux+II%1i?Oe6Y=-}Rs;D2n zyuSbQOg{K0@io_(v&6nbgt(_C@i8KeuJ^}XAxfB%d8u!ZqSypJQ6D1nFj7@m;GV{6&)are@a^D-(p%-M!``woZ9fh%S7K?{w zA;kA+yJw=FleqHmhE-Sm9gR`lS3E=|;y{u@Ui}(89sF*};U|^N9Pit6;g?ADtFV~y zu;xoX|4o3uzEx}=Ctd`4#3$UL*rD?1xO29rA7|FVcsqkq2J%g%7n$wb+q+M%JG7G< zq5+jTRn&M}H2#F_e_tgLt{Lx$pOHOp=5pukQk)jkp)SI@za9n&8mqE93hinF!>W4w zu8t#iSYSSGqm*^c(>=am#8^^6cC5HMl3&)&DNB1Vs?#wEFmAW`=XIly;hdBDEaSwaOW z<~b+o>|t*E{IZ&1mDk$LB0&1*h53h0XQz(T`cv)@2>O$z`gTn4c>S~J`ufpqao^D; z3e^JtSBi z%0tI|V*UQ|+3Ks6I^z?-ob%3eJ91s&`%G&r(bic|ctxgC=?vTl>Zen~Q;~v!^X`x|{%N^h5o~K7DCz=Fg{D4fGy1 z29uLYw9XDM#zf$oaX}F~!x@hM3sUrIxlom~EyY`!pv4Q$BI>i^_>#s5LIcxbj4s`a zXM&9^kc6|h2v?JFnruo3y(DJyy)DP>)G+(8x?i?`mzPD95>ZFIVndD~5%#MU8RJ+y z>YY*ah)G|c+dYc5KcRt3|6~Ra89*Fx_?ijiCB0=i>fZYSEAW5RNz}FBAhA)|MKs)h zPIYsnDQ>G>w^wohDnr<6M&A|ZnG`Mlf7F?MwH8$k0q&Q8#e@_{{M%4I) zH;FDUg;pe*>2B!AE2$KXyx9ru-DNS2PwF7EyA>>l{6q=Xmcu@&_sbp}5yafrH+X&^ z=0t??^N_JkZ?0otJ6tazh4QH+QG$}k5lmEj-*h1#_Ps@t733c~F zyAebOh8$ANnbP&fobT4@nOlhBoxgN~pzunzzJv29kt;6+%~eXn$6 zAD3<6jUwex(#C3XQrYd{8o5u0z48Fo*E2!CZ|Lw|)5IW#Z2)#-+yVr|i&P9a|3B`V z;zbtXU_E}3&&JzrAZ|~!AX+k^a=e5&r0F=#V@%Y~7d?Arr|L^pC+O^6T}Ow3tLAkH zUATsW9V3~#Uv)}8Ae7@2IoO)iY$Zn_rfX04nG7`6Sbmx{BylKYiVfBqt5MB%4JkOx z)sm3szs%~Ou0Y@sY%IvXt(|>@b<}8h&sMuAJEO~NOMa-e;rR8kl-th~;?%Gx0V;b; zwt6%7@J#fsJwQnW(O(rKUU9ewF>pJEs}CiW`F!1CWd#GF-_vEy_4|qB8ZC$oxv~BP*+!7UXs?uN8l>cAfo545V=A%XJ+DH^P zoV1{;@u0LxYY2qb)@9&gP}a1T;kOc=DeYl=7HP|Q?7SDUvtm>E~{yM`9i)YpO9~eBS$_Fez^I*6|XK{x(%Yl!rSA5Qc5> z$R8nl)cxL-8Wn&uyH#-odfNX`j6o|=lZ={;aUlDQBsl_$d6&eVnEtI52Yo{vL49_@ zGM);edr)c#mPOd~^hhP)BJ0Yx4dy2$2@o!3_ekLmGTm2#!xWT|Z zjjp&p^SK?^$@aP$(G-6`T%4^U1@7--tJ+ZZ+q0{RD3{H{iFkCT(cpUkOa?Mxf6B*{ zF2GKm1gwi)M3n$lo2zne%qUu(U(fuSL}H__z(xO~z1!NXkb)6mm08btJmP6(2!!ct%1B*tW9OkC(0vtF4` zaC1hj@FKvA^8SB*R@{)*)1^rzaiqv=5oVzl9yT#1z%%q#Nc1%wR9DVvGmjvW>0oXUZphiyk#?0fuh!q(dl-*n zh!MLThdmR!?e2Oee%~EGghFSp1&Opd0Ywbda=HNpwIJ^HH4Q?o?hXNm_ z!3BuJg~-R2v9uip!$qpPzf_stO>Wych3-{5#lSc6!q>$;~HDTnynhMpa65PkuMSKXtht$I1=uIOokYkKAE zf!wYa5`}--=do;QVmRDS^GHGOQ@p)LYVp%o7w)h7UU^?{?X3FTk0^B!%5QeM7`Zd z8F;n7W@yTRi{G+)L97fVXgFUET{ApxmOBGJ z{Ts{FOre`#1v0?U{t5Fy`)SBa+y3djayyfLt0>I{5vWzmO0hQpR9bX}$xyr4RU7V~ zK8i84Kziok)O1$a10xqtuf(jf_`loOEveW!T_0_v2IOy#r9MoalY+hO)W4|7T5D*3 zQZWELP;L%@VLb`_88P3U0@xqM-L$UX3UD2b|IAIFwY~i2LhYLCZ5U{aGru^ml*MCl zTs-f$hnBr^Q1!g4j0|PeXZSLENPf&is-GC8B|uxEf4hcOV z*?a{wzso&{hG?7D)j26Ni9@%+x<`)Hz{_+?4%7zpKXvG;8+_W?&t}$o?smI3%C7YB zVtx%3U&(U4{c^9u0iT^gn<;9g4oDMjdgX&S>O1j8ZOsD2V=!F$O-RqqC&r!h$%y}l zr?+5>^84C`X;8|bQ(Eap8bLr>=^nbfdk6_>kdp3{?ihydZWv0syBTJl`Q88HeZRuB zuf6tK=Q?BCbwn-lXjVR5O@VAip1i(X*VPt+Jg_I=9)ufcgSegUi;XL1z(svnMgHkz zehQUWQ*HZ$q@(wF7k)f)q#opy=>LMhSaA>U7u^R_A&QUqfy&~kAV%otv4os z%h2o|3nzP72Y;r|cz4JbM9nu6C!vGg-Bqh$?5_5Ds)nb_fd|cZp!TWReHn1Zf3tyS zq+R2K7RMtG<*7ouD1K{p$GZUWyz&vvsr8!}I8R>pi{6j}(G3(FXYmC<_y9i!TU`xxT8~C2!3b3pcTuVg{XT*O zD^pAq#?ZB+1v8fWC+A()loH%<=@fD;@!~O-9h4bJ^6sRQ8>2}3} zScznmg)gFbexk0UAW#gP%h<6;V2vp*(xtVNDCR$C_k_u@a1$dyi-aBA|+1wvU^bm0E*rYa)Ez$8tL z-u$-Q&q7EULP&|aYyZMP{B)Jk)*TwCf!vHz$ky(L{@wlyB7y_ZRrAI|@59(0pU2)@ zllh|lNTvO#Y)QO5u|D=Dv5T{VKjvpVyp*ngABYikAy{X3PG6qQ;qxhVtNm<~^g1?U z3^5J(zvDG!(i4OyQ=uGRR_`(2?&>WnYU-y*XQxBo2_(r zcaG$j8@Yy~$F~s!S3k(XT0YlY0Zg~CBym-q3lH{-ehQTPWB#W_^8om9c;Jwknv9&f z?hkc@21VD|%Y;hX7gM?@=%wZ%vlpDb(&1gp9DWZxk)VA?HM@aRr@$ zm<8itJ3}eq&nV3URU#52w^K0e03u!* z7-$NcziY*N=qe*#3*F(aYu%H``|;ofj40-aa-L*{DCeRqHAk$^VB3(}9g=U3{>sRXCTsMt8( zo7;w^PHbj|b@&B=YxHkCoUc>xUl;U-)3DjU{OfgyV{HZAUJ);X+bmve zZJYi=T7ZkNxb^3UYZWl;se-!uZp||s2)!KQ08@xVkB2wl7oyILJAc8$0-OT^yfhzZ z1wS*2@`{n`+ReT$P`&Q`?Lzna+H^)?tA6yoE6Y0rU7yYN-d)&GIc3w7oQ%6PD!4s2du zrN87Ak@1$be*-jCmdvf&)RuDjY;+2yprQ}kzh&X3vFe}_S?H;%Jzm17paKXZ$0j7 zu>me;u86hRfXJzh{-(DqoC4hR`uc-Jc8*m*)6;=Q@+P~br#skv=i}4VBslZou%sXy zDD1waSPIlO`43%ErNVjt?Nfv@%dhcZ8Au^?B|7q2XP(&Er?f*xA^}8bAEJ?^RnfMI zf!j#@A*e@Rb^qVwDuzURR-h}3a2^*i^eYYo5DGjcDLpv||CNLcH*8Tw!!3KmkDcI8 zRP^VF4YVZdNVJkH;78H$RRr6YbFsqVm$H!0M z##aWsAo^Lky?t^~K;w;O>xpi`GP@ZEwl@J5*!CCeOt1rIulg zDBZyTWblROJ~Z2qlZ9Kt)Kb9l@u64Y4AZC`fdq^r>TInuM9+7_2VRN4;d>0iUw^vz z9S6Tfpfd;(r=vK`?Pf}45RY2y@%in>`x2=Mw1J0kCbX}Nm@-9ZGCkiQn`sRfUtR4i zcdB5)kJx zYyn>JN9k^=ppSNhX0n;8AXJ|in#XiwMV?ZJxH?Vgk^iC zl_|&PpN>_nK_fIYH3d}T(?7DPSs8$;QSX1<$alPpw2H`u)JTLUut1Am#T&KKF*33I*J}TehwNoKcp(ZOl{T zr@c62ZvsOf%gjy~FaV#z?)?NF5V>Aq8^MRe|3I9tT>UNC>!6Z~ogb08t)uS~rb!(L zlUVpBLeWWEi-;M6WjxuOt7Z(NE4w&Dh+Nh&1jyf|J|eJR@tO<6_6)mE4F4Uj>~P93 zQ2I@pw(p^h?4tk8@jBDwM-kbj?URvA%gTw_`bIYIyy*y$Zb_ytV{NJ%iiu{=fh5gcNWqM97T)6?K-^9T zd>G_=p5Za6{+uyMDs!Oub`vnzdhNF=Le%xtq#9Tmm(g&2k;o9}v&CaU1Zv*}MXT4q!XAcQ7s!N5q}IM__1&oMN9kg@okK zyLTC+30AT4!vaNw{pQJx`&yPs0vU+lh=qn-J`aK~`0LrLPk2e>t&|K_M`$O1u-Veq z`iZNOdLEX=NF=c(sw=7Y5+yNokXms;K!H0Lxg9PDUUk~3JIi1{ZxCpS$#pqwq4q6y z%CXfS$qn7=t=~5(_RPqMl9t&!GHkG*bpB z+KJB8YG{G;tBRR0U5YA&2V&LwvHm4i1!$&%E@A3umP7$hns^%X>UWDuX0v2QR-7rS zyh|f#Of$c9AR!jcH`1_|yIlc~pg0TonP&>Cq2GO+I%^Xfo?cL~4866fRPk#WT4-0dG1s zaHmA?+PO_Ngh6uv6r!XgBnj^ljqntPF7XwfcK1z%n@_y9^1=}-Od)wG>@^w$Vd`ib zU-aszeE!%_ul~%P#1z|=t{T$vYENd}#|SPA2zY#n6Mwnv#RtPKdL6}IT%gV369_cH z4WXSyAY>xz6d49&mQ{$&Rm^1BHxBEOsucZLL?w!vxR=lm?Z6niseZ}^lRv>wTL|rx zUVu5&P{+|tIPWdIxpSYR%Z(685`y{tyA6J>I$9;C95;qQ`s;4zuF42+8bnWvr2Qq?au#egxo?xQxiyn zD9zqFTFwN5j@tf;%eqtAazY{!eOf#Y+AsgNhQNYBzW@GVXRk-=U5$AUO*}f9 zCH1+U-y|Fh+ath@)0`4a(4?}X7?hepC1=r=^^TpF4>*xI&!QRNb8(H}qe`08Ar^kY zN~BE6=m8HC;VPm}OMk6rLwE0$<1fiSi~Q?Eg0WudUfgwh!agG&Y=ZZ15(r3=UvGZo z9;QgvCHeg$GhQn}bu~?QCM_P5MnDMkk-dbwV9Sq6kpt%gHYelF$ANikWKd|Quj$EF@p*eI1IZnOlpGu?C`neKFOA9C)%ON0I+TXCr9=D zxj4DKCnr!9h&EVQ|8E`@2(d$lGsjs~{W;`csYuV0nfw3GX?=dh$(P4LE}(JyjWF_d zeR@45?&YfRGg{T+-y5I$CSW$z(&U7f*g^miRK_2c{w+V`XTLrxtSw*@L z8|-s(qo{g1BuSfk?yzu>*QhvEKuH-=!E4Y`n7bvOs@=`D;J9hR5H<-Rgf zGzt_y%E;8Rt+MBkkjshGL#D!0m%MtaXxi6xzi+&{>+ZQmbP|+0oV8BGo69}~7TDHR z$IMnb3kzDoJ$4msoKv_)QYAZ$ECnW{!K-x&{+n8_j@w|Yj+lz&-!RZk9VdI2Ac;|+ zsR+Nk=JEn+B#zFXcDZ_q%CBhm~Z<`#!s>>MT#mPf6uLt-9 zBm_>N#q7%+*tp~FsWeTd?>VjLNMqmjEPlTawd)S~Ov&4HXL6IWng}6O3E2b8;q#mI zj%vhJ$iu3T6sb<=yiy$y^S%Tppw79V9hF*5`L?KIKsgcm+A;8Wb~GK8?i~WH-1NsL zihYlm+Yk$w45=Mz+Z5pNvYwWYtp!K}S8PHEiM%@DVUTkDuh+y;BNu{w<`@0^@6dHf z5W*c=a@+T=_Hvo#(wm-a-E~u3LBO<{I{@`I_5vIO<=M{(S=SaRIEbn6WP^*~B6#wD zlNC}a{ovb(tJSmRiqPW(2>L;jiM52sv-X`*MJ<^m|3+`9kpCgQHFOV{h8N_*X|^Am z>`C(BvOmwGM8%ZxSpNv^W@8d>w0kbD8>#6U`ZFOd)kS?CBMP=GJK5Fqd9`?d7(8!H zqj8HUVMvA{O#k1W7~v<>hP2LLry%k2#eL_53t;m&eky8ZJ6vA*HPwU+-R zpW?U%7GXv0TT*9pLp96^Z}cg&Oxc^F)6h2v{Mxwr$UgX?ar| zc=pjIf!oaxZsR#>idf#RkW7AY6dQQCxEbcLd}1L+UFPbtbxJXG-SW>Irr;2l?Od4eu&tY{ z3R|VLg++VBr$i|R_w%`1B^G?aBND`pO z=awE0kkjom=TZ1Zyq=~gJ1jt*`e&us@0qMkx*GtleO?8JcDsMHn8!uQ5fj?FfWs(FQ-yxHrtfIdMNF6^iIK2rFDk6S1ZrWeDt63V0 z!w;aT6UF||=E|;ap1XH>&Cflys`_RDdZJ1Sx5*@wuLfpM$HZOS42ZMCH3kawMn9z2 zNs$O=t1#0p2ulYPsRZ#MARoi5x?E8a(}s0SV2=v&rf(pFt%jeg3p{pwfji?o{1?# z-4EPXHfNt?3o&?v8}W^(jmoIv?U>O)$aSb+ae~gSGy>Z=Ra@{KjHn%k5~H?(yJ+8E zmWD~MID~?gibBUz6?A>dg`R3(h@pSa9)2&`&{*XEiC>Z6hR6ps3@P~p#wr!Be7Gt8 zmSgluP9(IJpk!FG&)zv@fU74S2>I3R89(;AnFcoF2IUz3guCz88E#e@R&PTcNOfr7 zr1{`Y3%nXd-}iMnh6ESP-k*Bw^+Eqn`uwxb{7M|MhP-UBR7B>VS;C+K7bzg8{&yGy zL_qmo*~2xKl7@m*u&jum(;C;G$2;CLDo%++snnkGeIkdyIv_2$+`xJnL|JIw(Hf^Z zNx&V-=Jt3`UsAbrqft&1Z9X+)WbRO6Zq5T!yj>~HmAS>6nk(=g+2okstd85)ogh{% zLOg@u2gKe~>|tlFY}2t*?B)U$A9vevgqd`;IOY~OcT(`7WJw?hq<{N5A>iN~X?Zzu zU?+FPL_whbH*Ov8<2y~hfO!pByX4#B#(^Z{dQFs5g1!#5R^kW=S(_JT2S-j1H)E>qS(a^1BfX%9nr(JY$?8CM z&)Ic-UK>vwRU!7~N%=nTiwFFT=Z8*d+P(isiw71-l~=xA?ZU%Xqf`P`;+pU0Nc?Y} zIt&#YwtuJ(4(I>Cm*fJOyrZYbP8n=LUZ=6YV7U20yP76eWc_)8m!Upd5fX9QP_rnJ zi)*od8Qs0I89{m7pH%!OEjz88q1)bf8GqK0bg%l8heq{sAQrIh=Ua8fz9!Nz^=cMN ztsCD`q5MJT&3)){y_U!`6oIKcAtu3-4fifc?`%03L19j3TmCbPyF@pT52+9mcqsqM z&{WiYT9eaw^x@?Y!Xiq0FCZk+<&wY@yT3D(FLKOBiTe`bxI;}! zoN%6E-4mafVj=BM??qYJ6+|lfFv*UT4kI4UnUMFP za(dVei&7Zjm*6Z!*S0*LitxuluxFP#%?A@hv8BhV|HIhEKY84muso!0KP*}C%9K1e z+*#u|5z(4rl_v;1!LbxU^qSCNtYWl0M@7$ zwgXYK;Pzl0Z>;?D_2iRJg9_@4tb%9~hA~>#U*zdTjB{)Awi=anV0N@;S<1zpo{Y z1Rka?e>wK0nzuVm=3k|GrC#5B+z+olVx`Z7=P20k{30 zo!zy6G%DZJnZ4<4`l0@=l%+Y3t~#&2rigr56w}(45oOG9=M17Yy%6W0EN8)t1rEg2 zb3#=#tNCb;ZX%?f+1%Xb`sTtB)oR1PvE1P8Zl#=DsL9->@vuCyMN4``T#^`p8wwJ;#C9Z-;$5;Ol2b! zYj1zEk2-HR`ekUyTEz~0v_#4-haJufTj$b#cVSaV=Y`KSSEv6f#^R3e=l74y&Zg|$ z^Up~K^}`XAz|;9Hlc|uVe750 zcPbX&3L8y1<6jC24u9Rk`a{aA8vo@Q`1*IMt(94bGas(CcWYp{)~j7{yl_v|=j#a# z;o)HXF07vK_!6>Qx9u{bIauP8nRU}_nJXSUNUMNl#^gTqX9WIu6_0BFmf1%kx0>kP#~W9f+vuv?H;b^Nvx?gx)+ipe ze}yB`ANPn!Bif_lOV}s8aM)R8Xqt_3(3(+Tl_x*n{^hJ`_J1?~$RJp3RB2e|@ovOb zTK+y=NVcp1^vUl@)XH6$8u^)gyvQC`WM2a zvX(S^nR=d4=bg`jr8aUY3u!$AJa_s&f|UXqN=t5>(ZU03Gf;)em_4j{v?bX-Dy~g{ z2E1JM^aD?wXfN2VgC|eqDR&Pv3(faIxx-n5aIxAA_IGfa^OwE2bz!d)bt42$ z>R`&my2kRyvpTU{qJ@lOlfw#XPhNV6(&AHDdrv0c1ND5_1s@^(q(upp(IzOxzWah7 zsM_7wiktNqlU11Z_JDfvA9{h2E#n9f9pO_|R)B}o6k!O#biSm^#AwZ@RORoIThjY& z_G`enUc+i-Nl0<5Ph;pxVKbpHIb|*J*_zr^KS%3zM!$D5S4{zlp@|pzg>s;Jq-Q6+ zcZjKgWBFE1U#n^|Efg0?evVaxLlVO|?bB0!s5e8Wj9^3UY)jDu$4D`Qz!}{KoTp*i zKxl@6|64nqO{UF_r&wt5S#)Gd;6>m4#>+t`I<}qt*_3-Iq6j0Z@Lx!VU(ESLnxE|U za1FM!F9S`v$Zu<7d6XUDS8{~Je@W5Dw)e;Kt3rr!X2!K)s+ZL^f|asKJ{@wCU)?iV z4-r23^K46>tfx1NDcsT)4ToDXpbAfxkEy##m;+rU-rF7o&0D?=YPw6OI~>R-NdP4h zao4-Dl^?Yb?VsR*AGD4fR0%J=-J%dqGx;ddsAu&THXONv6K9aKx0N#buXKu%!8jkD z9nvhS)PNYu29YC#rv(fg=?oV^xY~Glu_^*s7Io@#xOb^kwC*jbfG)kqww{gM2>GFkPY#D=XEMoQK7}p1(M4|>b>pS$PG4`zJH3uS4-JAh89amU zz_9Am6}UbH)KLKr>{<|d*jRwUc?}-P8;}=KBtn9E-A|ETy2K_(HA2Q4hs3Z=U4H!J z7=uS!y+x`H1sdCw1t^B9-W*F~As%)60LDGt#OiM+#b9E#62elf73h zpP2}=Qb_44&8qBA3)BQ=Gt_kt@{5q!Te0t^m2S6vI(I+nAbd>UmAgjIyi>|a<)lE! zZXVt(cSc|Rz#pj{CgL9)u;mo3`M0Y18AMo%Cv`3Kb#o#!T|oycs9V`kN(+H9)qJwQ zuR=w5ou!NX_+PX9YAyO5RM-MqVg0e&R$5X6A<0uV4fVu&8@D(T#YYdXE3H`WilzB3 zOxk@wVmALS-JHuq-|rVy+4P{srqSROyZ=wL3!C+_kj_(W$Lw^qp3`oL!k(xsqWzV_ zCF8?-4}zl^*`*X_7+>et>$0Qqa183JqZOQ8kew+5dJVF9!FD>05}6=nh?62W*DLx9QZ! z_8j8de7;_5O`f|s34i1O*YqKTI!I+sv}G7O-=ax1@2z;)#iek&@hPw`^zZwQ(BE5FiLhB6VL(~_=v%uL`TgReG)1lG>j*5U zO=u?6G0@AMZ#+@uV2_CQCX#X^m9Gf3pW1a1v$Sq13?z`lT(jX~P-sln`%d}Mtb_4Y z3o|4a?oB9vt535iNNe0f&&MkV)BmVf(Otm57{oN2qPLiBxIjUY<#Ex=L8VQ9^uNIe zugyU4(gVanb-CKkMR$Eab`@O79gc&`oxVQ0{b}D)bUJHlI7coAPyY9A{AK@kvU}=D z>DNY9U~T5Nxc+wxw%iM5ib}!tYTUVB$c2j%lB|XVE7B7He3sJLzu43^wfU$)6mw|Q z6dz%YrU!_7?n`{aBjD9z7mk+{I-TaqXT2yhI$=9H6y`#1@wg}>x5}Hc1!mm-quuXt za|*F`E^4H=VpDhrbDz4R=FDcAZ1E|8=>G1t8S+)9mPPZsFC2DIW{(qnxESU5i=eAO zo-x-^A+Ri81dX=MbUS5I{6&bKk*B1pl0tJOG({((>y0vU(4DC%Lqkx0u0f_(Yv;a= z>3QSz3%r%{L7W&9j(IY74{NX5XZ{6cuuh3W5^1_IdFY?hTz-YyiIku51Y=}~`EVMH zaq)MDG6umx+`KRz`jtq>>&D4$m&p7^X-a2qKFxD;;K#PRNEjyqeAQt%CQ&zaUB7^Gou5xQ(9Xc@4fzbtfbA+AFvCrpju3>-^p|}FF z-AI(aUl)~|d;CAIBuck-m#zQ$Dl#6J#*6$yj@PS^r%Ry&q_PlAX?jsu(R6a`kNyJT z=rrJIsl1F2tK0^0MtRifvcpF-P2_@029JVa@Le=04W^6mWf}g$@7QEx+&s+pD%ZR9n{B@g6GATf?*)sTWBSnLiq!d|g(k`#8GE zA2?%%YeL7pxqJSS4-oX4oR(WJfWJ1qYOFZ{{=#i%31 zQepO^Qr{Ah;&@HY#PDC{7_=x+g9A3uTog9XKaSVms@TxsJq-paaZxX0@bzHWZfAYC8>PqGV}o#XWh?4 z>|~xLRUiNBj~v9;hBLj|Bg5@wzjg9U?Pk^{kB71rOuGm08O#3m3-8EWU)%v`;IkIZ zVDV>P`4ykGw#3-1m`%Ko=k?wDi)T0H#=E?Hcu`%uWa+>eNx3a(r=rn7Gn-prdz!YQ zD5X3ZJMv;)!V9Y#_xc{;5J%ZBhf2=Y&{t=Sm8$$`ZfbSfXlmDf(su#CZJ(SK_YVE$ z*d%mV@=c%TB|@EUh1kXC_MR?4~kT%4>A`z4}JqSbYQ58D)66m!&PmCb$ZT9FMsJ$>%Mf{AJJHTQG zW79d=(ugTgFuO8*)e79lMfGP1NlEYJ2=+{sreU%+W+pMyU?)M z;5~;-MrQBll!Y-cPB>*e>8|y71Afr2Txbqe1}nf?EfDs(UiEk0Z}pS0;i+p z=`Qz32#&lEoc%xRWxtqYI**>6<+u(xWV%flF4ly z8TES>vE77TMG^~uTa6*bl@NXhWa#tVdUJP^?P#o$?V>%T<`Dq!BTq=mQCl=ziXM4s zz*qOo#ZgB(7Q$o^E-F-vc>l~Ck4${c!JeTvkL+qj*nCHnb^Zx7XDK&6H={PQq8Csb z7jMBZavJ?Bkv?kRF`wM0TCQ^{BG@?aV%K(l4H!&?V06`&b0jqb$_Am3TP7=yPWZWn z+2^Vh$~b4-f+O}%_&opQyK3TrG$w%GHqWZJ(cea2FT)hJyjhC4RkU8IDKsy)fsMcT=|Ju1!o?rzH`_ zIcD7F^C05&{MTicxrptSfsKclxsJcF*mD;VX5GYi`ECeDfrz8uE6^jBF9`QPDG>s1 z*T}3#ENiWL%kB9B=4X~u`jcFZBdn0TNJ9-aYci8d9d{zPp~NH`lmTePmX(Lwo#BuU zrujH=3h=a%b(@uBg;Y1_G-1>Ns7m z+pZMFygL`FF}+@>Jmx=Jse3uD#*;20kbLG~KbW1yuOYs+MjZ=Amv~_QV3O%gGUcGO zXw<0hMQm;js}FwdpBz)3@?GCgJ~k!!f++Qs%#SWB#KSm66s@X)pctS(G?&}f)a<&* zm@8Ol*e>^r1^(H!M@>ErQ33%QaiGK>5aHI`ZlM(UEQA=6{b9M%)dJ&}aI`x^Hm$c%2cH z7$eeL_K7~};85o?*36~XcA+h>1pRB`3r7SucL_n+ud`+EH&2B-j{#@fl(0cWis_s| z@Eqm;PMIc8Pd6Bd>(fNa+%r-B1jf_71eg00Zv6vjXrD?r7wv`e&cAzbpQOg^qSux1;Zgd%`)MaHWNCbV>ch&*a7p4 zj3$CaKUxo6 z9NW>Q0>0{bsF}v()Lz>a2O{76gz_w#msB@^I$#GO14B@y-)ai4)Vc2OoeJ~YuYv3r zJJ+7?yLYto5QNMc-_eQl&KCy$dV(5l^tu$yyqnP}!B)695!_5rizlXPNnbB!>fQA2 z2YY2{P4&YM(E*_pktV*o4<^GCkSN@4puqi0jEm(kZd(TZQoQ$3$R7sE#-?L7p08OhvzwGB3|ZzUBkCWs3<_aPdgU??N|{A9~0zsuJ;GcG_<;5Oc`>9}|JzZT9F% zwVX{6!qeM;HtO_~E*%O=#4UGB-POVLhxHF?;LVgDPTx!4OKHN&=^Bav7K zIeZ1asvm;^E_7czrm-T^7}=sf!@DrBjEGExZa{Y5*X%naG%uE zR$kSe&Q3zFw@9b)*@o%?-$Oa&;U=;n=%tut219pCUt_6}WZ#^&D7M@TXo}-7Ro~`X zL#8wnN-EHJ+oKF4UcHz26!q(P zP$buCIla{c3z;V&UQ-|lLQoqYXo`L-NGp@Ea0sfGu=hT}tc z5aX1`W*kkavudmGMjz*7L$BdS2TskmC{EhZuM$`-?8kb{M{eedR9!d)VZ=}I6=Qvz zy*wT+DY@F~A4;0C`674!4Jn$H-Htr!H~yg30Kh$4?a&x=$o<3CavZ57H*TbZlQcMJYyOMtxhfl8iw#c~Q19h{E zB+9FwZ}-kxwy9$8Yr-W+jDP-am^q8RU-zBewv3^Fcp-KCDx;z7VWH_hNwyqa;*p(w z9L6i#q80A@xpb!o; zgDJo$)(KYDH7R!e;FtM~gq(y@}LHNTMd5Z7~N?1O3Nr*UD&*)~zoK zbsiG?wQO2`%j=8*BP;VR?>X?TxJcbz- z4PVa4#jjhf%-w~uM~b))Khkn`IkNv5EpoZw$r$U&Hft$nH@M$K#eX?T5a)|yjje41 zc_>l0hn-)ZE#IC!-WoFs@)=`mh}t?HE3X+A$D*q*3B{6@9em5uC*;euGv5xytzBUI zB>#igak9r^a+Szi8B&6N)KCv_RvdA+r;^4sD-Y$Z@rvGNdi#+@pkslz?!gT{me4Ke z_2tL-=c_Rr2)+Eb#@M__f^Lp{_U$c?J-UH+UBQfmY$0m=U!3nx!nW5^1QMHR%lolx zWCtSm3Glf?*^3$dXUc*b3PRCOR{3LDg5)r-)ESpNvgqJ-oYt?425g2(3;px$O?HXn z#Ihq8s<{Qh1JR^B7AHkUVL%njfp>Z-uN*esW=Gpp* zIY30!5Cd>^KjvdnJA9dz48ii-!-NXPt8J;rbz)prDD^v z6*D}mW-)`wzUp}3>~vqyQ^>|6B1G@1q=0REREjl!iT%D;zfBZduPe;{H%nKV$1u&_ z2gYTVVrX<|JknI)3KBm){x~&ddN?t?rec*Ut1s)g)v~eje)}ONGY;nzqOieeX{6FS_)Ex?aRUv z48kM6aQ*WG()0`Ow2%KRP+5}H3$-!&OMAi9o}OqRf7pUGfz~>1s=&7G?UID89}Pfh zP+FRg)t$!gTo47Xao0VJZisq2Z4j@&;1%52js15I4Rt)8e){qch*O5Kg&r$V{1K;} z$1ymgL0QVXp4$`epk<> z`s!+=R(O4RawGT)O7s_k&7W~(&Gp?r5Wwr)R|2$8xvq-je}T3h%p=nq22Zxy9iWJ8 zSEyNI)DJC3qQI%U|@nunWFQdDI3ltx9O0dn~7&DE1^BW8twWZ-oo}`)4 zz*KvE;q-c%R=^*1Zle!EHqY7#Cd@@&Yx`F7aM&_rQ;kS>pzf=U`pLQretTXM?nPcL zb!u3z;!@Y&$!P{UsFwxfT9E42J~ji5+ryP)mG#m?w}Bh6`zy+5jF&8Kxhgwy_32B0 zxO4wSU_p`RbtJqxy{%w~TbNKj40@JV`~OPo*4RZgq-INv_LTL>txXSx`_a2w`caEa zaC2+t)~ecqsDiC^Bn$HS}qW*<0>Z z^kI?X8)g*dS(EbZPlY|=PULv*skJKAjkCwak|@`^*6@!N+YhTRqg2piuDbg|F=Cho zq(Znc=kLNp`^@8F)o*gX>%fit>qyPw>#!)Mk}-okUE2muEBxk-equwfdC11)a9jY6 zD0mtTlK96e z4-jM$>mMiBl(KVguk8elHWxJ(N9m1L3)4kIEGZ zgm;Q>1g;ME-`?!e!B+A)86$pf76!ZP&or&|oM;+>m&JLZ7Oa-h>y}jv{iF0h3=9md zBerV}eD+9N{IqMiIg(}Siarxmozp#F^8GB7EL+{EHm3?{y#DH-c&oraME*ucYvsmi{k1l#f0heXm?*$+7qS7n#P@%QC3lR})OZi=Nr~>7MElNZ zblx528whkQv*Ugjhar_PV#G?&dVj|8a$yO6RycNgz9FlFTwP{|vPtL$%F+TPzjf6b z?%nqZfk*$o=5+PH;}m3k&E`O+(T0Lw0X2#rdbMdRjGN;94H+Yk`0~8;eWGZG%S`b^YfRIx`IJ|Blce=Nq2-+&H5}$J zljVZL@P*(C zgq@X_mc=sC@xzO0hj;McR3hJfkw#&fvZmcmyd+hx20Pu(QN^F<0of3kCK?%Bc*U-ksH2hKFUr?Kv6~oi2lV@=W8_$)umgw<+VGr?~!O_wqDW!SBMK@N8LNst#?;+8j@&czUIc?gM`cLeJMgA?MGyO45gyBWojJ` zqpz=5i|(YWfe7Tbs&GvD)d)nMblHU+HGtvUer2h(UOAAWfo)XZMnC14zF$wfDLRK5MF-&DGYRuV&Hlt-p+A-wz(JB zBdh1Lj*P`%$50H|?8F4Z5Xz?8Nfg)RZ=)vu-keVO6<1OTlc?U%1 ztc(lf+G2R9O?g&4M1*y{8P|$0Y3lVvO=*SK@5WGggvy6Ra_%3dlru!QycWlVzB303 zLQk?b=-EC+0@s5!tO>k}gJqkpeJn!y8YxPSxT=J43&-4wu9o_B=)(bbjrSjk|8n|(rSrk4DCc7B6k6&*Od^pQV3N7 z5Sa<|n2IF-mq1?#9(iHjio_^j|I4_{w^g-1?f%{S0Ms^ptxIeDECcq}vbV;ihP8#u@nqZ;v9a&Sid5TNBUq{ZP z6ogXcOd{Kxjr5&|qA3<{t`$cVZqr)h@g&Zk3d$~D92;L8JMtxN0yB3;deLQe?$G|k zpWEUD^d%w7MI@S_&^SB}qZhilg7vN8A$>Y*A_)-%zPJOX#e}Ba61zWtPpbrl2U~4@ zKv4zGU%srf6~jADS;?bBYkxbT!~^767$>>^A5T~P&~)4NX$2Ie8x;g;q?H!wuF){M zL%JD?fV6;gNq2XS?rs>}-7#Qn@9yV*-sd0K54*nCbcG6SOr43L4WUfIPFjNZ)0_?77U{0t0{L?p#}tS`jyEOaCoPB6XFM4|3()K%dApl@IJsTM`@Ec!-B

    Sj*_n=Vn9RJydcG+wafhE3T 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

    45A76 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

    $mSfQ2+Av+r!6C;YZJ2ynN>kq%~ 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⁢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

    6@S8ve4&L4KJvfXB6_mDuOO)+U=6PXz3bY;^?{e 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

    aQyVU+2y1 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�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 tl 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

    n3~PBcBxB0DYy1ch*}t-mmDj(c7MGLB$Gu)| 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

      fKM~>ER6^@J^rcF%HXn>4fUjVXv^V$# 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

      m@KR5DaS(3M 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 literal 0 HcmV?d00001 diff --git a/fractol.h b/fractol.h new file mode 100644 index 0000000..736fa41 --- /dev/null +++ b/fractol.h @@ -0,0 +1,96 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* fractol.h |o_o || | */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/11/29 03:25:46 by houtworm #+# #+# */ +/* Updated: 2022/12/29 06:29:04 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + + +#ifndef FRACTOL_H +# define FRACTOL_H + +# include +# include +# include "libft/libft.h" +# include "mlx/include/MLX42/MLX42.h" + +typedef struct s_cnbr +{ + long double re; //Real Number + long double im; //Imaginary Number +} t_cnbr; + +typedef struct s_varlist +{ + mlx_t *mlx; //mlx instance + mlx_image_t *img; //mlx img + mlx_image_t *font[30]; //mlx font image + int w; //actual window width used everywhere + int h; //actual window height used everywhere + int fontnbr; //number printed strings on the screen + char *fractal; //name of fractal used for title and info + int fractalid; //int id of the fractal to faster compare + char *cscheme; //name of current colorscheme to print + int cschemeid; //id of current colorscheme to compare + int cscale; //scale used to generate colorschemes + int cshi; //used for shifting colors by 1 + int csha; //total amount of colors/shades + int32_t colors[1530]; //colorscheme colors + int iter; //number of iterations to do + long long calc; //Number of calculations per frame + long double xmax; //max number shown on the horizontal numberplane + long double ymax; //max number shown on the vertical numberplane + long double xmin; //min number shown on the horizontal numberplane + long double ymin; //min number shown on the vertical numberplane + long double xscale; //scale of visible numbers horizontal numberplane + long double yscale; //scale of visible numbers vertical numberplane + long double julre; //adjustable c value for x axis + long double julim; //adjustable c value for y axis + int xcur; //current x position of the mouse + int ycur; //current y position of the mouse + int psycho; //psycho mode toggle + int help; //help screen toggle + int info; //info screen toggle + int redraw; //if true then redraw + long double power; //for the mandelpower +} t_varlist; + +typedef struct s_threads +{ + t_varlist *vl; + int x; + int y; +} t_threads; + +void mousehook(void *param); +void scrollhook(double xdelta, double ydelta, void *param); +void keyhook(mlx_key_data_t keydata, void *param); +void keyhookextra(void *param); +void keyhookmove(void *param); +void keyhookfractal(void *param); +void resizehook(int x, int y, void *param); +void setcolorscheme(t_varlist *vl); +void redrawimage(t_varlist *vl); +void resetfractal(t_varlist *vl); +void ft_error(int r); +void showinfo(t_varlist *vl); +void showhelp(t_varlist *vl); +void justmove(t_varlist *vl, char dir); +void zoomtomouse(t_varlist *vl); +void zoomfrommouse(t_varlist *vl); +void fractal(t_varlist *vl); +void mandelbrot(t_varlist *vl, int x, int y, t_cnbr c); +void mandelcloud(t_varlist *vl, int x, int y, t_cnbr c); +void mandelfeather(t_varlist *vl, int x, int y, t_cnbr c); +void julia(t_varlist *vl, int x, int y, t_cnbr z); +void mandelpower(t_varlist *vl, int x, int y, t_cnbr c); +void burningship(t_varlist *vl, int x, int y, t_cnbr c); +void tricorn(t_varlist *vl, int x, int y, t_cnbr c); +void rorschach(t_varlist *vl, int x, int y, t_cnbr c); +void powerflower(t_varlist *vl, int x, int y, t_cnbr c); +#endif diff --git a/libft/Makefile b/libft/Makefile new file mode 100644 index 0000000..bbb9e01 --- /dev/null +++ b/libft/Makefile @@ -0,0 +1,183 @@ +# **************************************************************************** # +# # +# :::::::: # +# Makefile :+: :+: :+: # +# +:+ # +# By: djonker +#+ # +# +#+ # +# Created: 2020/10/27 15:02:02 by djonker #+# #+# # +# Updated: 2023/02/07 00:49:35 by houtworm ### ########.fr # +# # +# **************************************************************************** # + +NAME =libft.a +CC =gcc +FC =-Wall -Werror -Wextra# -fsanitize=address +FAR =ar -rs +RM =rm -f +SRC =src/ft_atoi.c \ + src/ft_bzero.c \ + src/ft_calloc.c \ + src/ft_cntwrd.c \ + src/ft_intlen.c \ + src/ft_isalnum.c \ + src/ft_isalpha.c \ + src/ft_isascii.c \ + src/ft_isdigit.c \ + src/ft_isprint.c \ + src/ft_itoa.c \ + src/ft_malstr.c \ + src/ft_memccpy.c \ + src/ft_memchr.c \ + src/ft_memcmp.c \ + src/ft_memmove.c \ + src/ft_memcpy.c \ + src/ft_memset.c \ + src/ft_putchar_fd.c \ + src/ft_putendl_fd.c \ + src/ft_putnbr_fd.c \ + src/ft_putstr_fd.c \ + src/ft_split.c \ + src/ft_strchr.c \ + src/ft_strdup.c \ + src/ft_strjoin.c \ + src/ft_strlcat.c \ + src/ft_strlcpy.c \ + src/ft_strlen.c \ + src/ft_strmapi.c \ + src/ft_strncmp.c \ + src/ft_strnstr.c \ + src/ft_strrchr.c \ + src/ft_strtrim.c \ + src/ft_substr.c \ + src/ft_tolower.c \ + src/ft_toupper.c \ + src/ft_wrdlen.c \ + src/ft_frenarr.c \ + src/ft_btoi.c \ + src/ft_itob.c \ + src/ft_revstr.c \ + src/ft_frearr.c \ + src/ft_putznbr.c \ + src/ft_strupp.c \ + src/ft_strlow.c \ + src/ft_power.c \ + src/ft_sqrt.c \ + src/ft_factor.c \ + src/ft_fnprim.c \ + src/ft_isprim.c \ + src/ft_dtoh.c \ + src/ft_htod.c \ + src/ft_htoi.c \ + src/ft_itoh.c \ + src/ft_ddtoi.c \ + src/ft_itodd.c \ + src/ft_otoi.c \ + src/ft_itoo.c \ + src/ft_swap.c \ + src/ft_swaplong.c \ + src/ft_round.c \ + src/ft_putznbr_fd.c \ + src/ft_putzflo_fd.c \ + src/ft_putzflo.c \ + src/ft_putstr.c \ + src/ft_putnbr.c \ + src/ft_putnbr_base.c \ + src/ft_putflo.c \ + src/ft_putendl.c \ + src/ft_putchar.c \ + src/ft_linlen.c \ + src/ft_itof.c \ + src/ft_isneg.c \ + src/ft_iftof.c \ + src/ft_ftoi.c \ + src/ft_ftoa.c \ + src/ft_fround.c \ + src/ft_flolen.c \ + src/ft_declen.c \ + src/ft_atof.c \ + src/ft_putflo_fd.c \ + src/ft_arrlen.c \ + src/ft_chrstr.c \ + src/ft_cntwrds.c \ + src/ft_isodigit.c \ + src/ft_isxdigit.c \ + src/ft_malstrs.c \ + src/ft_min.c \ + src/ft_max.c \ + src/ft_lincpy.c \ + src/ft_linlcpy.c \ + src/ft_splits.c \ + src/ft_wrdlens.c \ + src/ft_vamin.c \ + src/ft_vamax.c \ + src/ft_islowc.c \ + src/ft_isuppc.c \ + src/ft_bitswap.c \ + src/ft_itozh.c \ + src/ft_itoba.c \ + src/ft_itohx.c \ + src/ft_cntchr.c \ + src/ft_cntarg.c \ + src/ft_around.c \ + src/ft_putzsci.c \ + src/ft_putull.c \ + src/ft_putlong.c \ + src/ft_ltoa.c \ + src/ft_utoa.c \ + src/ft_atou.c \ + src/ft_atol.c \ + src/ft_putzscih.c \ + src/ft_luilen.c \ + src/ft_itooa.c \ + src/ft_dtoa.c \ + src/ft_atodec.c \ + src/ft_fczero.c \ + src/ft_lftoi.c \ + src/ft_lftoa.c \ + src/ft_islneg.c \ + src/ft_ldeclen.c +BSRC =src/ft_lstadd_back.c \ + src/ft_lstadd_front.c \ + src/ft_lstclear.c \ + src/ft_lstdelone.c \ + src/ft_lstiter.c \ + src/ft_lstlast.c \ + src/ft_lstmap.c \ + src/ft_lstnew.c \ + src/ft_lstsize.c +OBJ =$(SRC:src/%.c=obj/%.o) +BOBJ =$(BSRC:src/%.c=obj/%.o) + +ifdef WITBON +COBJ =$(OBJ) $(BOBJ) +CSRC =$(SRC) $(BSRC) +else +COBJ =$(OBJ) +CSRC =$(SRC) +endif + +all: $(NAME) + +clean: + @$(RM) -r obj + @printf "\e[1;35mCleaned Object Files\n\e[0;00m" + +fclean: clean + @$(RM) $(NAME) + @printf "\e[1;31mCleaned Executables\n\e[0;00m" + +re: fclean all + +$(COBJ): $(CSRC) + @mkdir -p obj + @printf "\e[1;34mBuilding $@\n\e[0;00m" + @$(CC) $(CFLAGS) -c $(@:obj/%.o=src/%.c) -o $@ + +$(NAME): $(COBJ) + @printf "\e[1;36mCompiling $@\e[0;00m\n" + @$(FAR) $(NAME) $^ > /dev/null 2>&1 + @printf "\e[1;32mDone\e[0;00m\n" + +bonus: + @$(MAKE) WITBON=1 all diff --git a/libft/libft.h b/libft/libft.h new file mode 100644 index 0000000..1943df2 --- /dev/null +++ b/libft/libft.h @@ -0,0 +1,165 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* libft.h |o_o || | */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 16:02:53 by djonker #+# #+# */ +/* Updated: 2022/12/16 04:05:31 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#ifndef LIBFT_H +# define LIBFT_H + +# include +# include +# include + +typedef struct s_list +{ + void *content; + struct s_list *next; +} t_list; + +void *ft_memset(void *s, int c, size_t n); +void ft_bzero(void *s, size_t n); +void *ft_memcpy(void *dst, const void *src, size_t n); +void *ft_memccpy(void *dst, const void *src, int c, size_t n); +void *ft_memmove(void *dst, const void *src, size_t len); +void *ft_memchr(const void *s, int c, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +size_t ft_strlen(const char *str); +size_t ft_strlcpy(char *dst, const char *src, size_t dstsize); +size_t ft_strlcat(char *dst, const char *src, size_t dstsize); +char *ft_strchr(const char *s, int c); +char *ft_strrchr(const char *s, int c); +char *ft_strnstr(const char *h, const char *n, size_t len); +int ft_strncmp(char *s1, char *s2, unsigned int n); +int ft_atoi(char *str); +int ft_isalpha(int c); +int ft_isdigit(int c); +int ft_isalnum(int c); +int ft_isascii(int c); +int ft_isprint(int c); +int ft_toupper(int c); +int ft_tolower(int c); +void *ft_calloc(size_t count, size_t size); +char *ft_strdup(const char *s); + +char *ft_substr(char const *s, unsigned int start, size_t len); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s1, char const *set); +char **ft_split(char const *s, char c); +char *ft_itoa(int n); +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); +void ft_putchar_fd(char s, int fd); +void ft_putstr_fd(char *s, int fd); +void ft_putendl_fd(char *s, int fd); +void ft_putnbr_fd(int n, int fd); + +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **lst, t_list *new); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **lst, t_list *new); +void ft_lstdelone(t_list *lst, void (*del)(void*)); +void ft_lstclear(t_list **lst, void (*del)(void*)); +void ft_lstiter(t_list *lst, void (*f)(void *)); +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), \ + void (*del)(void *)); + +char *ft_bitswap(char *str); +void *ft_lincpy(char *dst, const char *src); +void *ft_linlcpy(char *dst, const char *src, size_t n); +int ft_linlen(char *str); +int ft_intlen(long long n); +int ft_luilen(unsigned long long n); +int ft_flolen(double n); +int ft_arrlen(char **s); +int ft_declen(double n); +int ft_wrdlen(char *s, char c, int i); +int ft_wrdlens(char *s, char *c, int i); +int ft_cntwrd(char *s, char c); +int ft_cntwrds(char *s, char *c); +char *ft_malstr(char *s, char c); +char *ft_malstrs(char *s, char *c); +void *ft_frenarr(char **s, int i); +void *ft_frearr(char **s); +char *ft_revstr(char *s); +char *ft_strupp(char *s); +char *ft_strlow(char *s); +int ft_isuppc(char c); +int ft_islowc(char c); +int ft_isneg(double n); +int ft_isxdigit(char *str); +int ft_isodigit(int n); +int ft_power(int n, int p); +unsigned long long ft_sqrt(unsigned long long n); +unsigned long long ft_factor(unsigned long long n); +unsigned long long ft_fnprim(unsigned long long n); +int ft_isprim(unsigned long long n); +void ft_putznbr_fd(int n, int e, int fd); +void ft_putflo_fd(double n, int fd); +void ft_putzflo_fd(double n, int e, int fd); +int ft_ftoi(double n); +double ft_itof(int n); +double ft_iftof(int n, int f); +char *ft_ltoa(long long n); +char *ft_utoa(unsigned long long n); +char *ft_ftoa(double n); +char *ft_ftoe(double n); +long long ft_atol(char *str); +unsigned long long ft_atou(char *str); +double ft_atof(char *str); +long double ft_atodec(char *str); +char *ft_itoa(int n); +char *ft_itoa(int n); +int ft_itob(int d); +char *ft_itoba(unsigned long long d, size_t e); +int ft_btoi(int i, int e); +int ft_dtoh(char c); +char ft_htod(long long n); +int ft_htoi(char *str); +char *ft_itoh(long double n); +char *ft_itohx(long double n); +char *ft_itozh(double n, int z); +int ft_ddtoi(char *str); +char *ft_itodd(double n); +int ft_otoi(int i); +unsigned long long ft_itoo(double n); +char *ft_itooa(long double n); +int ft_round(int n, int h); +double ft_fround(double n, int h); +int ft_around(char *n, int e); +void ft_swap(int *a, int *b); +void ft_swaplong(long *a, long *b); +void ft_putchar(char s); +void ft_putstr(char *s); +void ft_putendl(char *s); +void ft_putnbr(int n); +void ft_putnbr_base(unsigned long long number, int base); +void ft_putlong(long long n); +void ft_putull(unsigned long long n); +void ft_putznbr(int n, int e); +void ft_putflo(double n); +void ft_putzflo(double n, int e); +void ft_putzsci(long double n, int e, int cap); +void ft_putzscih(long double n, int e, int cap); +int ft_varlen(int c, ...); +int ft_max(int a, int b); +int ft_vamax(int n, ...); +int ft_min(int a, int b); +int ft_vamin(int n, ...); +int ft_chrstr(char c, char *s); +char **ft_splits(char *s, char *c); +int ft_cntchr(const char *str, char c, int s); +int ft_fczero(long double n); +long long ft_lftoi(long double n); +char *ft_lftoa(long double n); +int ft_ldeclen(long double n); +int ft_islneg(long long n); +char *ft_dtoa(long double n); + +#endif diff --git a/libft/src/ft_around.c b/libft/src/ft_around.c new file mode 100644 index 0000000..2eaa4bc --- /dev/null +++ b/libft/src/ft_around.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_around.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 07:26:00 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:42:07 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_around(char *n, int e) +{ + int i; + + i = 0; + while (n[i] == '0') + { + e++; + i++; + } + i = ft_strlen(n); + while (i >= e) + { + if (n[i] >= '5') + n[i - 1] = n[i - 1] + 1; + while (n[i - 1] > '9') + { + n[i - 1] = '0'; + n[i - 2] = n[i - 2] + 1; + i--; + if (i == 1 && n[0] > '9') + return (1); + } + i--; + } + return (0); +} diff --git a/libft/src/ft_arrlen.c b/libft/src/ft_arrlen.c new file mode 100644 index 0000000..49fd26b --- /dev/null +++ b/libft/src/ft_arrlen.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_arrlen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/06 17:38:27 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:42:08 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_arrlen(char **s) +{ + int l; + + l = 0; + while (s[l] != NULL) + l++; + return (l); +} diff --git a/libft/src/ft_atodec.c b/libft/src/ft_atodec.c new file mode 100644 index 0000000..b1ce456 --- /dev/null +++ b/libft/src/ft_atodec.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_atodec.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 05:48:34 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:42:08 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +long double ft_atodec(char *str) +{ + long double f; + int l; + + f = ft_atoi(str); + l = ft_intlen(f); + while (l > 0) + { + f = f / 10; + l--; + } + return (f); +} diff --git a/libft/src/ft_atof.c b/libft/src/ft_atof.c new file mode 100644 index 0000000..60a9404 --- /dev/null +++ b/libft/src/ft_atof.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_atof.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 05:48:34 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:42:08 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +double ft_atof(char *str) +{ + int i; + double f; + char **t; + int l; + + t = ft_split(str, '.'); + f = ft_atoi(t[1]); + l = ft_intlen(f); + i = ft_atoi(t[0]); + while (l > 0) + { + f = f / 10; + l--; + } + ft_frenarr(t, 2); + return (i + f); +} diff --git a/libft/src/ft_atoi.c b/libft/src/ft_atoi.c new file mode 100644 index 0000000..a2991df --- /dev/null +++ b/libft/src/ft_atoi.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:08:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:42:09 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_atoi(char *str) +{ + unsigned int r; + int c; + int n; + + r = 0; + c = 0; + n = 1; + while ((str[c] == 32) || (str[c] > 8 && str[c] < 14)) + c++; + if (str[c] == '-' || str[c] == '+') + { + if (str[c] == '-') + n = -1; + c++; + } + while (str[c] >= '0' && str[c] <= '9') + { + r = 10 * r + (str[c] - '0'); + if (r > 2147483647 && n == 1) + return (-1); + else if (r > 2147483648 && n == -1) + return (0); + c++; + } + return (n * r); +} diff --git a/libft/src/ft_atol.c b/libft/src/ft_atol.c new file mode 100644 index 0000000..e9b5bee --- /dev/null +++ b/libft/src/ft_atol.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_atol.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:08:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:36:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +long long ft_atol(char *str) +{ + unsigned long long r; + int c; + int n; + + r = 0; + c = 0; + n = 1; + while ((str[c] == 32) || (str[c] > 8 && str[c] < 14)) + c++; + if (str[c] == '-' || str[c] == '+') + { + if (str[c] == '-') + n = -1; + c++; + } + while (str[c] >= '0' && str[c] <= '9') + { + r = 10 * r + (str[c] - '0'); + if (r > 9223372036854775807 && n == 1) + return (-1); + else if (r > 9223372036854775807 && n == -1) + return (0); + c++; + } + return (n * r); +} diff --git a/libft/src/ft_atou.c b/libft/src/ft_atou.c new file mode 100644 index 0000000..bae6f30 --- /dev/null +++ b/libft/src/ft_atou.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_atou.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:08:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:36:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +unsigned long long ft_atou(char *str) +{ + unsigned long long r; + int c; + + r = 0; + c = 0; + while ((str[c] == 32) || (str[c] > 8 && str[c] < 14)) + c++; + while (str[c] >= '0' && str[c] <= '9') + { + r = 10 * r + (str[c] - '0'); + c++; + } + return (r); +} diff --git a/libft/src/ft_bitswap.c b/libft/src/ft_bitswap.c new file mode 100644 index 0000000..5610b22 --- /dev/null +++ b/libft/src/ft_bitswap.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_bitswap.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/05/17 06:29:44 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:18 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_bitswap(char *str) +{ + while (*str) + { + if (*str == '1') + *str = '0'; + else if (*str == '0') + *str = '1'; + str++; + } + return (str); +} diff --git a/libft/src/ft_btoi.c b/libft/src/ft_btoi.c new file mode 100644 index 0000000..b40a500 --- /dev/null +++ b/libft/src/ft_btoi.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_btoi.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/18 13:44:56 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:36:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_btoi(int i, int e) +{ + char *s; + int is; + int it; + int d; + int r; + + d = ft_intlen(i); + it = 128; + is = 0; + r = 0; + while (d < e) + { + it = it / 2; + d++; + } + s = ft_itoa(i); + while (s[is] != '\0') + { + if (s[is] == '1') + r = r + it; + it = it / 2; + is++; + } + free(s); + return (r); +} diff --git a/libft/src/ft_bzero.c b/libft/src/ft_bzero.c new file mode 100644 index 0000000..eebd4ea --- /dev/null +++ b/libft/src/ft_bzero.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_bzero.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:35:25 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:36:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_bzero(void *s, size_t n) +{ + char *p; + + p = s; + while (n) + { + *p = '\0'; + p++; + n--; + } +} diff --git a/libft/src/ft_calloc.c b/libft/src/ft_calloc.c new file mode 100644 index 0000000..b5666a9 --- /dev/null +++ b/libft/src/ft_calloc.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_calloc.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 21:20:32 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:36:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_calloc(size_t count, size_t size) +{ + void *p; + size_t i; + char *t; + + if (count == 0 || size == 0) + { + count = 1; + size = 1; + } + p = malloc(count * size); + if (p == NULL) + return (0x0); + if (p) + { + t = p; + i = 0; + while (count * size > i) + { + t[i] = '\0'; + i++; + } + } + return (p); +} diff --git a/libft/src/ft_chrstr.c b/libft/src/ft_chrstr.c new file mode 100644 index 0000000..cce7a7a --- /dev/null +++ b/libft/src/ft_chrstr.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_chrstr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/15 02:30:48 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:36:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_chrstr(char c, char *s) +{ + while (*s) + { + if (c == *s) + return (1); + s++; + } + if (c == *s) + return (1); + return (0); +} diff --git a/libft/src/ft_cntarg.c b/libft/src/ft_cntarg.c new file mode 100644 index 0000000..e8628bb --- /dev/null +++ b/libft/src/ft_cntarg.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_cntarg.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/02/07 00:38:26 by houtworm #+# #+# */ +/* Updated: 2023/02/07 00:38:34 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_cntarg(char **argv) +{ + int i; + + i = 0; + while (argv[i]) + i++; + return i; +} + diff --git a/libft/src/ft_cntchr.c b/libft/src/ft_cntchr.c new file mode 100644 index 0000000..681038a --- /dev/null +++ b/libft/src/ft_cntchr.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* .--. _ */ +/* ft_cntchr.c :+: :+: :+: */ +/* |:_/ || |_ _ ___ __ */ +/* By: djonker // \ \ __| | | \ \/ / */ +/* (| | )|_| |_| |> < */ +/* Created: 2021/06/11 17:23:36 by djonker /'\_ _/`\__|\__,_/_/\_\ */ +/* Updated: 2023/02/07 00:38:41 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_cntchr(const char *str, char c, int s) +{ + int i; + int t; + + i = 0; + while (*str) + { + if (*str == c) + { + i++; + str++; + } + t = s; + while (t > 0) + { + str++; + t--; + } + } + return (i); +} diff --git a/libft/src/ft_cntwrd.c b/libft/src/ft_cntwrd.c new file mode 100644 index 0000000..b58b459 --- /dev/null +++ b/libft/src/ft_cntwrd.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_cntwrd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/21 20:37:04 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:43 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_cntwrd(char *s, char c) +{ + int iw; + int is; + + is = 0; + iw = 0; + while (s[is] != '\0') + { + if (s[is] == c) + while (s[is] == c) + is++; + if (s[is] != c && s[is] != '\0') + { + while (s[is] != c && s[is] != '\0') + is++; + iw++; + } + } + return (iw); +} diff --git a/libft/src/ft_cntwrds.c b/libft/src/ft_cntwrds.c new file mode 100644 index 0000000..d27a8ba --- /dev/null +++ b/libft/src/ft_cntwrds.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_cntwrds.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/21 20:37:04 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:44 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_cntwrds(char *s, char *c) +{ + int iw; + int is; + + is = 0; + iw = 0; + while (s[is] != '\0') + { + if (ft_chrstr(s[is], c)) + while (ft_chrstr(s[is], c)) + is++; + if (!(ft_chrstr(s[is], c))) + { + while (!(ft_chrstr(s[is], c))) + is++; + iw++; + } + } + return (iw); +} diff --git a/libft/src/ft_ddtoi.c b/libft/src/ft_ddtoi.c new file mode 100644 index 0000000..d855ffc --- /dev/null +++ b/libft/src/ft_ddtoi.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_ddtoi.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 01:24:28 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:44 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_ddtoi(char *str) +{ + int r; + int p; + + r = 0; + p = ft_strlen(str) - 1; + while (p >= 0) + { + if (*str >= '0' && *str <= '9') + r = r + (*str - '0') * ft_power(12, p); + else if ((*str >= 'a' && *str <= 'b') || (*str >= 'A' && *str <= 'B')) + r = r + ft_dtoh(*str) * ft_power(12, p); + else + return (-0); + str++; + p--; + } + return (r); +} diff --git a/libft/src/ft_declen.c b/libft/src/ft_declen.c new file mode 100644 index 0000000..e50ce24 --- /dev/null +++ b/libft/src/ft_declen.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_declen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 04:29:09 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:45 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_declen(double n) +{ + double f; + int i; + int l; + + i = n; + f = n - i; + l = 0; + while (f != 0 && l < 10) + { + l++; + n = n * 10; + i = n; + f = n - i; + } + return (l); +} diff --git a/libft/src/ft_dtoa.c b/libft/src/ft_dtoa.c new file mode 100644 index 0000000..f805529 --- /dev/null +++ b/libft/src/ft_dtoa.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_dtoa.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 03:46:17 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_dtoa(long double n) +{ + char p[100]; + long double temp; + long long i; + char *t; + char *f; + + i = n; + temp = (long double)n - (long double)i; + i = 0; + while (temp * 10 < 1 && i < 49) + { + temp = temp * 10; + p[i] = '0'; + i++; + } + p[i] = '\0'; + i = ft_lftoi(n); + t = ft_ltoa(i); + f = ft_strjoin(p, t); + free(t); + return (f); +} diff --git a/libft/src/ft_dtoh.c b/libft/src/ft_dtoh.c new file mode 100644 index 0000000..64b240c --- /dev/null +++ b/libft/src/ft_dtoh.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_dtoh.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 02:22:34 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_dtoh(char c) +{ + int r; + int t; + + t = ft_tolower(c); + r = t - 87; + return (r); +} diff --git a/libft/src/ft_factor.c b/libft/src/ft_factor.c new file mode 100644 index 0000000..79dd8fd --- /dev/null +++ b/libft/src/ft_factor.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_factor.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/01 04:03:20 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:48 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +unsigned long long ft_factor(unsigned long long n) +{ + unsigned long long r; + + r = 1; + if (!(n >= 1 && n <= 20)) + return (0); + if (n > 1) + r = n * ft_factor(n - 1); + return (r); +} diff --git a/libft/src/ft_fczero.c b/libft/src/ft_fczero.c new file mode 100644 index 0000000..9948f8c --- /dev/null +++ b/libft/src/ft_fczero.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_fczero.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 04:29:09 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:49 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_fczero(long double n) +{ + long double f; + long long i; + int l; + + l = 0; + i = n; + f = n - i; + f = f * 10; + while (f < 1) + { + l++; + n = n * 10; + i = n; + f = n - i; + f = f * 10; + } + return (l); +} diff --git a/libft/src/ft_flolen.c b/libft/src/ft_flolen.c new file mode 100644 index 0000000..2eb7e82 --- /dev/null +++ b/libft/src/ft_flolen.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_flolen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 04:00:01 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:50 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_flolen(double n) +{ + int l; + + l = 1; + l = l + ft_declen(n); + l = l + ft_intlen(n); + return (l); +} diff --git a/libft/src/ft_fnprim.c b/libft/src/ft_fnprim.c new file mode 100644 index 0000000..2471a28 --- /dev/null +++ b/libft/src/ft_fnprim.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_fnprim.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/01 04:42:24 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:38:50 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +unsigned long long ft_fnprim(unsigned long long n) +{ + while (n < 1000000000000000000) + { + if (ft_isprim(n) == 1) + return (n); + n++; + } + return (0); +} diff --git a/libft/src/ft_frearr.c b/libft/src/ft_frearr.c new file mode 100644 index 0000000..d31d717 --- /dev/null +++ b/libft/src/ft_frearr.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_frearr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/12/11 21:54:13 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:42 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_frearr(char **s) +{ + int n; + + n = 1; + while (s[n] != NULL) + n++; + while (n > 0) + { + n--; + free(s[n]); + } + free(s); + return (NULL); +} diff --git a/libft/src/ft_frenarr.c b/libft/src/ft_frenarr.c new file mode 100644 index 0000000..c5fb93f --- /dev/null +++ b/libft/src/ft_frenarr.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_frenarr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/12/11 21:54:13 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_frenarr(char **s, int n) +{ + while (n > 0) + { + n--; + free(s[n]); + } + free(s); + return (NULL); +} diff --git a/libft/src/ft_fround.c b/libft/src/ft_fround.c new file mode 100644 index 0000000..696de90 --- /dev/null +++ b/libft/src/ft_fround.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_fround.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 07:42:16 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:49 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +double ft_fround(double n, int h) +{ + char *s; + char **t; + char *r; + + s = ft_ftoa(n); + t = ft_split(s, '.'); + t[0][ft_intlen(n)] = '.'; + t[0][ft_intlen(n) + 1] = '\0'; + if (h == 0) + { + if (t[1][0] > '5') + t[0][ft_intlen(n) - 1] = t[0][ft_intlen(n) - 1] + 1; + } + else if (t[1][h] > '5') + { + t[1][h - 1] = t[1][h - 1] + 1; + } + t[1][h] = '\0'; + r = ft_strjoin(t[0], t[1]); + n = ft_atof(r); + ft_frenarr(t, 2); + free(r); + free(s); + return (n); +} diff --git a/libft/src/ft_ftoa.c b/libft/src/ft_ftoa.c new file mode 100644 index 0000000..9ae11de --- /dev/null +++ b/libft/src/ft_ftoa.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_ftoa.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 03:46:17 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:49 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_ftoa(double n) +{ + char *ti; + char *tf; + int i; + char *r; + + ti = ft_itoa(n); + i = ft_ftoi(n); + r = ft_itoa(i); + tf = ft_strjoin(".", r); + free(r); + r = ft_strjoin(ti, tf); + free(ti); + free(tf); + return (r); +} diff --git a/libft/src/ft_ftoi.c b/libft/src/ft_ftoi.c new file mode 100644 index 0000000..20d3ea5 --- /dev/null +++ b/libft/src/ft_ftoi.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_ftoi.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:30:30 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:50 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_ftoi(double n) +{ + int r; + int l; + double f; + + if (ft_isneg(n)) + n = n * -1; + l = ft_declen(n); + r = n; + f = n - r; + while (l > 0) + { + f = f * 10; + l--; + } + r = f; + return (r); +} diff --git a/libft/src/ft_htod.c b/libft/src/ft_htod.c new file mode 100644 index 0000000..b77c4b1 --- /dev/null +++ b/libft/src/ft_htod.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_htod.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 03:18:45 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:51 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char ft_htod(long long n) +{ + char r; + + if (n > 9) + r = n + 87; + else + r = n + '0'; + return (r); +} diff --git a/libft/src/ft_htoi.c b/libft/src/ft_htoi.c new file mode 100644 index 0000000..fb473ae --- /dev/null +++ b/libft/src/ft_htoi.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_htoi.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 01:24:28 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:52 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_htoi(char *str) +{ + int r; + int p; + + r = 0; + p = ft_strlen(str) - 1; + while (p >= 0) + { + if (*str >= '0' && *str <= '9') + r = r + (*str - '0') * ft_power(16, p); + else if ((*str >= 'a' && *str <= 'f') || (*str >= 'A' && *str <= 'F')) + r = r + ft_dtoh(*str) * ft_power(16, p); + else + return (-0); + str++; + p--; + } + return (r); +} diff --git a/libft/src/ft_iftof.c b/libft/src/ft_iftof.c new file mode 100644 index 0000000..dfc2f76 --- /dev/null +++ b/libft/src/ft_iftof.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_iftof.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 22:27:51 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:52 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +double ft_iftof(int i, int f) +{ + double r; + + r = 0; + r = r + i + ft_itof(f); + return (r); +} diff --git a/libft/src/ft_intlen.c b/libft/src/ft_intlen.c new file mode 100644 index 0000000..b38457c --- /dev/null +++ b/libft/src/ft_intlen.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_intlen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 02:04:46 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:54 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_intlen(long long n) +{ + int l; + + l = 0; + if (n == 0) + return (1); + if (n <= 0) + l++; + while (n != 0) + { + n = n / 10 + (l * 0); + l++; + } + return (l); +} diff --git a/libft/src/ft_isalnum.c b/libft/src/ft_isalnum.c new file mode 100644 index 0000000..1380c16 --- /dev/null +++ b/libft/src/ft_isalnum.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isalnum.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 15:56:37 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:54 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isalnum(int c) +{ + if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z') && (c < '0' || c > '9')) + return (0); + return (1); +} diff --git a/libft/src/ft_isalpha.c b/libft/src/ft_isalpha.c new file mode 100644 index 0000000..e64df4c --- /dev/null +++ b/libft/src/ft_isalpha.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isalpha.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:10:41 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:55 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isalpha(int c) +{ + if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z')) + return (0); + return (1); +} diff --git a/libft/src/ft_isascii.c b/libft/src/ft_isascii.c new file mode 100644 index 0000000..04147d0 --- /dev/null +++ b/libft/src/ft_isascii.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isascii.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:10:41 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:56 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isascii(int c) +{ + if (c < 0 || c > 127) + return (0); + return (1); +} diff --git a/libft/src/ft_isdigit.c b/libft/src/ft_isdigit.c new file mode 100644 index 0000000..ef571e7 --- /dev/null +++ b/libft/src/ft_isdigit.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isdigit.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:10:41 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:56 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isdigit(int c) +{ + if (c < '0' || c > '9') + return (0); + return (1); +} diff --git a/libft/src/ft_islneg.c b/libft/src/ft_islneg.c new file mode 100644 index 0000000..99b591a --- /dev/null +++ b/libft/src/ft_islneg.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_islneg.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/25 11:39:27 by houtworm #+# #+# */ +/* Updated: 2023/02/07 00:39:57 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_islneg(long long n) +{ + if (n < 0) + return (1); + return (0); +} diff --git a/libft/src/ft_islowc.c b/libft/src/ft_islowc.c new file mode 100644 index 0000000..ec47179 --- /dev/null +++ b/libft/src/ft_islowc.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_islowc.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/04/13 17:57:31 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:58 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_islowc(char c) +{ + if (c >= 'a' && c <= 'z') + return (1); + return (0); +} diff --git a/libft/src/ft_isneg.c b/libft/src/ft_isneg.c new file mode 100644 index 0000000..a14dd3a --- /dev/null +++ b/libft/src/ft_isneg.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isneg.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 03:38:29 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:39:59 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isneg(double n) +{ + if (n < 0) + return (1); + return (0); +} diff --git a/libft/src/ft_isodigit.c b/libft/src/ft_isodigit.c new file mode 100644 index 0000000..39a191e --- /dev/null +++ b/libft/src/ft_isodigit.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isodigit.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/06 17:19:46 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:00 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isodigit(int n) +{ + char *s; + + s = ft_itoa(n); + while (*s != '\0') + { + if (*s >= '0' && *s <= '7') + s++; + else + { + free(s); + return (0); + } + } + free(s); + return (1); +} diff --git a/libft/src/ft_isprim.c b/libft/src/ft_isprim.c new file mode 100644 index 0000000..34eb70d --- /dev/null +++ b/libft/src/ft_isprim.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isprim.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/01 04:32:30 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:00 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isprim(unsigned long long n) +{ + unsigned long long c; + unsigned long long d; + + if (n < 2) + return (0); + c = 2; + while (c <= n / 2) + { + d = 1; + while (d <= n / 2) + { + if (c * d == n) + return (0); + d++; + } + c++; + } + return (1); +} diff --git a/libft/src/ft_isprint.c b/libft/src/ft_isprint.c new file mode 100644 index 0000000..deb1744 --- /dev/null +++ b/libft/src/ft_isprint.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isprint.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:10:41 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:01 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isprint(int c) +{ + if (c < 32 || c > 126) + return (0); + return (1); +} diff --git a/libft/src/ft_isuppc.c b/libft/src/ft_isuppc.c new file mode 100644 index 0000000..925aa18 --- /dev/null +++ b/libft/src/ft_isuppc.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isuppc.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/04/13 17:57:31 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:02 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isuppc(char c) +{ + if (c >= 'A' && c <= 'Z') + return (1); + return (0); +} diff --git a/libft/src/ft_isxdigit.c b/libft/src/ft_isxdigit.c new file mode 100644 index 0000000..2276a78 --- /dev/null +++ b/libft/src/ft_isxdigit.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_isxdigit.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/06 17:19:46 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:03 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_isxdigit(char *str) +{ + while (*str != '\0') + { + if ((*str >= 'a' && *str <= 'f') || (*str >= 'A' && *str <= 'F')) + str++; + else if (*str >= '0' && *str <= '9') + str++; + else + return (0); + } + return (1); +} diff --git a/libft/src/ft_itoa.c b/libft/src/ft_itoa.c new file mode 100644 index 0000000..c51a61f --- /dev/null +++ b/libft/src/ft_itoa.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itoa.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/12 23:20:24 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:04 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_itoa(int n) +{ + char *r; + int l; + + l = ft_intlen(n) - 1; + r = ft_calloc(l + 2, 1); + if (r == NULL) + return (NULL); + while ((n > 9 || n < 0) && n != -2147483648) + { + if (n >= 10) + { + r[l] = n % 10 + '0'; + l--; + n = (n / 10); + } + else + { + r[0] = '-'; + n = (n * -1); + } + } + r[l] = n + '0'; + if (n == -2147483648) + ft_strlcpy(r, "-2147483648", 12); + return (r); +} diff --git a/libft/src/ft_itob.c b/libft/src/ft_itob.c new file mode 100644 index 0000000..159c558 --- /dev/null +++ b/libft/src/ft_itob.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itob.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/04 04:42:54 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:06 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_itob(int d) +{ + char s[20]; + int i; + char *r; + + i = 0; + while (d != 0) + { + s[i] = d % 2 + '0'; + d = d / 2; + i++; + } + s[i] = '\0'; + r = ft_revstr(s); + i = ft_atoi(r); + return (i); +} diff --git a/libft/src/ft_itoba.c b/libft/src/ft_itoba.c new file mode 100644 index 0000000..cae6fbd --- /dev/null +++ b/libft/src/ft_itoba.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itoba.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/04 04:42:54 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:05 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_itoba(unsigned long long d, size_t e) +{ + char s[65]; + int i; + size_t j; + char *r; + + i = 0; + while (d != 0) + { + s[i] = d % 2 + '0'; + d = d / 2; + i++; + } + s[i] = '\0'; + j = ft_strlen(s); + while (e > j) + { + s[i] = '0'; + i++; + j++; + } + s[i] = '\0'; + r = ft_revstr(s); + return (r); +} diff --git a/libft/src/ft_itodd.c b/libft/src/ft_itodd.c new file mode 100644 index 0000000..7f0134a --- /dev/null +++ b/libft/src/ft_itodd.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itodd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 03:00:29 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:07 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_itodd(double n) +{ + char r[20]; + int c; + double tf; + int ti; + char *s; + + c = 0; + while (n != 0) + { + if (n < 12) + r[c] = ft_htod(n); + else if (n > 11) + { + tf = n / 12; + ti = n / 12; + tf = (tf - ti) * 12; + r[c] = ft_htod(tf); + } + ti = n / 12; + n = ti; + c++; + } + r[c] = '\0'; + s = ft_revstr(r); + return (s); +} diff --git a/libft/src/ft_itof.c b/libft/src/ft_itof.c new file mode 100644 index 0000000..8cd59f5 --- /dev/null +++ b/libft/src/ft_itof.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itof.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 22:18:50 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:07 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +double ft_itof(int n) +{ + double r; + int l; + + l = ft_intlen(n); + r = n; + while (l > 0) + { + r = r / 10; + l--; + } + return (r); +} diff --git a/libft/src/ft_itoh.c b/libft/src/ft_itoh.c new file mode 100644 index 0000000..cb875e9 --- /dev/null +++ b/libft/src/ft_itoh.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itoh.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 03:00:29 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:09 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_itoh(long double n) +{ + char r[30]; + int c; + long double tf; + long long ti; + char *s; + + c = 0; + while (n != 0) + { + if (n < 16) + r[c] = ft_htod(n); + else if (n > 15) + { + tf = n / 16; + ti = n / 16; + tf = (tf - ti) * 16; + r[c] = ft_htod(tf); + } + ti = n / 16; + n = ti; + c++; + } + r[c] = '\0'; + s = ft_revstr(r); + return (s); +} diff --git a/libft/src/ft_itohx.c b/libft/src/ft_itohx.c new file mode 100644 index 0000000..6ac0b3e --- /dev/null +++ b/libft/src/ft_itohx.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itohx.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 03:00:29 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:09 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_itohx(long double n) +{ + char r[30]; + long int c; + long double tf; + long int ti; + char *s; + + c = 0; + while (n != 0) + { + if (n < 16) + r[c] = ft_htod(n); + else if (n > 15) + { + tf = n / 16; + ti = n / 16; + tf = (tf - ti) * 16; + r[c] = ft_htod(tf); + } + ti = n / 16; + n = ti; + c++; + } + r[c] = '\0'; + s = ft_revstr(r); + return (s); +} diff --git a/libft/src/ft_itoo.c b/libft/src/ft_itoo.c new file mode 100644 index 0000000..1749df7 --- /dev/null +++ b/libft/src/ft_itoo.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itoo.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/01 01:30:17 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:25 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +unsigned long long ft_itoo(double n) +{ + char r[20]; + unsigned long long c; + double tf; + unsigned long long ti; + + c = 0; + while (n != 0) + { + if (n < 8) + r[c] = n + '0'; + else if (n > 7) + { + tf = n / 8; + ti = n / 8; + tf = (tf - ti) * 8; + r[c] = tf + '0'; + } + ti = n / 8; + n = ti; + c++; + } + r[c] = '\0'; + c = ft_atou(ft_revstr(r)); + return (c); +} diff --git a/libft/src/ft_itooa.c b/libft/src/ft_itooa.c new file mode 100644 index 0000000..4185b53 --- /dev/null +++ b/libft/src/ft_itooa.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itooa.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/01 01:30:17 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:25 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_itooa(long double n) +{ + char t[25]; + char *r; + unsigned long long c; + long double tf; + unsigned long long ti; + + c = 0; + while (n != 0) + { + if (n < 8) + t[c] = n + '0'; + else if (n > 7) + { + tf = n / 8; + ti = n / 8; + tf = (tf - ti) * 8; + t[c] = tf + '0'; + } + ti = n / 8; + n = ti; + c++; + } + t[c] = '\0'; + r = ft_revstr(t); + return (r); +} diff --git a/libft/src/ft_itozh.c b/libft/src/ft_itozh.c new file mode 100644 index 0000000..db469cd --- /dev/null +++ b/libft/src/ft_itozh.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_itozh.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 03:00:29 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:26 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_itozh(double n, int z) +{ + char *s; + int l; + int i; + char *r; + + r = ft_calloc(z + 1, 1); + i = 0; + s = ft_itoh(n); + l = ft_strlen(s); + while (l < z) + { + r[i] = '0'; + l++; + i++; + } + l = 0; + while (l < z) + { + r[i] = s[l]; + i++; + l++; + } + ft_strlcpy(s, (const char *)r, (size_t)z + 1); + free (r); + return (s); +} diff --git a/libft/src/ft_ldeclen.c b/libft/src/ft_ldeclen.c new file mode 100644 index 0000000..c6e4f98 --- /dev/null +++ b/libft/src/ft_ldeclen.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_ldeclen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/25 11:30:37 by houtworm #+# #+# */ +/* Updated: 2023/02/07 00:40:29 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_ldeclen(long double n) +{ + long double f; + long long i; + int l; + + i = n; + f = n - i; + l = 0; + while (f != 0 && l < 50) + { + l++; + n = n * 10; + i = n; + f = n - i; + } + return (l); +} diff --git a/libft/src/ft_lftoa.c b/libft/src/ft_lftoa.c new file mode 100644 index 0000000..60d4e92 --- /dev/null +++ b/libft/src/ft_lftoa.c @@ -0,0 +1,50 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lftoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/25 11:38:35 by houtworm #+# #+# */ +/* Updated: 2023/02/07 00:40:29 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_memsetfrom(void *s, int c, size_t n, int from) +{ + char *p; + + p = s; + while (from > 0 && *p) + { + p++; + from--; + } + while (n > 0 && *p) + { + *p = c; + p++; + n--; + } + return (s); +} + +char *ft_lftoa(long double n) +{ + char *ti; + char *tf; + char *rr; + int i; + + rr = ft_ltoa(n); + ti = ft_strjoin(rr, "."); + free(rr); + tf = ft_dtoa(n); + rr = ft_strjoin(ti, tf); + free(ti); + free(tf); + ft_memsetfrom(rr, '\0', ft_strlen(rr), 23); + return (rr); +} diff --git a/libft/src/ft_lftoi.c b/libft/src/ft_lftoi.c new file mode 100644 index 0000000..9837fb0 --- /dev/null +++ b/libft/src/ft_lftoi.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_lftoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/25 11:30:20 by houtworm #+# #+# */ +/* Updated: 2023/02/07 00:40:29 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +long long ft_lftoi(long double n) +{ + long long r; + long long l; + long double f; + + if (ft_islneg(n)) + n = n * -1; + l = ft_ldeclen(n); + r = n; + f = n - r; + while (l > 0 && f * 10 < 9223372036854775807) + { + f = f * 10; + l--; + } + r = f; + return (r); +} diff --git a/libft/src/ft_lincpy.c b/libft/src/ft_lincpy.c new file mode 100644 index 0000000..35eac07 --- /dev/null +++ b/libft/src/ft_lincpy.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lincpy.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/04 21:40:35 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:29 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_lincpy(char *dst, const char *src) +{ + char *d; + const char *s; + long unsigned int i; + + i = 0; + d = dst; + s = src; + if (dst != NULL || src != NULL) + { + while (s[i] != '\0' && s[i] != '\n') + { + d[i] = s[i]; + i++; + } + d[i] = '\0'; + } + return (dst); +} diff --git a/libft/src/ft_linlcpy.c b/libft/src/ft_linlcpy.c new file mode 100644 index 0000000..ed6a61b --- /dev/null +++ b/libft/src/ft_linlcpy.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_linlcpy.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/04 21:40:35 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:30 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_linlcpy(char *dst, const char *src, size_t n) +{ + char *d; + const char *s; + long unsigned int i; + + i = 0; + d = dst; + s = src; + if (dst != NULL || src != NULL) + { + while (s[i] != '\0' && s[i] != '\n' && n > 0) + { + d[i] = s[i]; + i++; + n--; + } + d[i] = '\0'; + } + return (dst); +} diff --git a/libft/src/ft_linlen.c b/libft/src/ft_linlen.c new file mode 100644 index 0000000..09e4092 --- /dev/null +++ b/libft/src/ft_linlen.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_linlen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/04 15:49:15 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:30 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_linlen(char *str) +{ + int l; + + l = 0; + while (*str != '\0' && *str != '\n') + { + l++; + str++; + } + return (l); +} diff --git a/libft/src/ft_lstadd_back.c b/libft/src/ft_lstadd_back.c new file mode 100644 index 0000000..902659a --- /dev/null +++ b/libft/src/ft_lstadd_back.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstadd_back.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 18:48:54 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:30 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_lstadd_back(t_list **lst, t_list *new) +{ + t_list *l; + + if (lst) + { + if (*lst) + { + l = ft_lstlast(*lst); + l->next = new; + } + else + *lst = new; + } +} diff --git a/libft/src/ft_lstadd_front.c b/libft/src/ft_lstadd_front.c new file mode 100644 index 0000000..f183240 --- /dev/null +++ b/libft/src/ft_lstadd_front.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstadd_front.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:38:37 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:30 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_lstadd_front(t_list **lst, t_list *new) +{ + if (lst) + { + if (*lst) + new->next = *lst; + *lst = new; + } +} diff --git a/libft/src/ft_lstclear.c b/libft/src/ft_lstclear.c new file mode 100644 index 0000000..426cb5b --- /dev/null +++ b/libft/src/ft_lstclear.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstclear.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 19:12:41 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:30 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_lstclear(t_list **lst, void (*del)(void*)) +{ + t_list *t; + int i; + + i = 0; + t = NULL; + if (!del) + { + while (t->next != NULL) + { + free(lst[i]); + i++; + } + free(t); + } + if (!del || !lst || !*lst) + return ; + while (lst && *lst) + { + t = (*lst)->next; + ft_lstdelone(*lst, del); + *lst = t; + } +} diff --git a/libft/src/ft_lstdelone.c b/libft/src/ft_lstdelone.c new file mode 100644 index 0000000..8688c36 --- /dev/null +++ b/libft/src/ft_lstdelone.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstdelone.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 19:06:46 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:31 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_lstdelone(t_list *lst, void (*del)(void*)) +{ + if (!del) + { + free (lst); + return ; + } + if (lst) + { + (*del)(lst->content); + free(lst); + } +} diff --git a/libft/src/ft_lstiter.c b/libft/src/ft_lstiter.c new file mode 100644 index 0000000..4ccfb63 --- /dev/null +++ b/libft/src/ft_lstiter.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstiter.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 19:15:47 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:34 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_lstiter(t_list *lst, void (*f)(void *)) +{ + if (!f) + return ; + while (lst) + { + (*f)(lst->content); + lst = lst->next; + } +} diff --git a/libft/src/ft_lstlast.c b/libft/src/ft_lstlast.c new file mode 100644 index 0000000..61730bd --- /dev/null +++ b/libft/src/ft_lstlast.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstlast.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 18:45:02 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:34 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +t_list *ft_lstlast(t_list *lst) +{ + while (lst) + { + if (!lst->next) + return (lst); + lst = lst->next; + } + return (lst); +} diff --git a/libft/src/ft_lstmap.c b/libft/src/ft_lstmap.c new file mode 100644 index 0000000..ea9df91 --- /dev/null +++ b/libft/src/ft_lstmap.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstmap.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 19:30:13 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:34 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)) +{ + void *s; + t_list *r; + t_list *t; + + r = NULL; + t = NULL; + while (lst) + { + if (f(lst->content)) + { + s = f(lst->content); + t = ft_lstnew(s); + if (!(t)) + { + ft_lstclear(&r, del); + lst = NULL; + return (NULL); + } + ft_lstadd_back(&r, t); + } + lst = lst->next; + } + return (r); +} diff --git a/libft/src/ft_lstnew.c b/libft/src/ft_lstnew.c new file mode 100644 index 0000000..d1af617 --- /dev/null +++ b/libft/src/ft_lstnew.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstnew.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:38:37 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:35 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +t_list *ft_lstnew(void *content) +{ + t_list *r; + + r = malloc(sizeof(t_list)); + if (r == NULL) + return (NULL); + r->content = content; + r->next = NULL; + return (r); +} diff --git a/libft/src/ft_lstsize.c b/libft/src/ft_lstsize.c new file mode 100644 index 0000000..ce587a5 --- /dev/null +++ b/libft/src/ft_lstsize.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_lstsize.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 18:27:52 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:35 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_lstsize(t_list *lst) +{ + size_t i; + + i = 0; + while (lst) + { + lst = lst->next; + i++; + } + return (i); +} diff --git a/libft/src/ft_ltoa.c b/libft/src/ft_ltoa.c new file mode 100644 index 0000000..afbf007 --- /dev/null +++ b/libft/src/ft_ltoa.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_ltoa.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/12 23:20:24 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:35 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_ltoa(long long n) +{ + char *r; + int l; + + l = ft_intlen(n) - 1; + r = ft_calloc(l + 2, 1); + if (r == NULL) + return (NULL); + while ((n > 9 || n < 0) && n >= -9223372036854775807) + { + if (n >= 10) + { + r[l] = n % 10 + '0'; + l--; + n = (n / 10); + } + else + { + r[0] = '-'; + n = (n * -1); + } + } + r[l] = n + '0'; + if (n < -9223372036854775807) + ft_strlcpy(r, "-9223372036854775808", 20); + return (r); +} diff --git a/libft/src/ft_luilen.c b/libft/src/ft_luilen.c new file mode 100644 index 0000000..2c00da3 --- /dev/null +++ b/libft/src/ft_luilen.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_luilen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 02:04:46 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:35 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_luilen(unsigned long long n) +{ + int l; + + l = 0; + if (n == 0) + return (1); + while (n != 0) + { + n = n / 10 + (l * 0); + l++; + } + return (l); +} diff --git a/libft/src/ft_malstr.c b/libft/src/ft_malstr.c new file mode 100644 index 0000000..e359eed --- /dev/null +++ b/libft/src/ft_malstr.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_malstr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/29 15:21:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:36 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_malstr(char *s, char c) +{ + char *r; + int l; + + r = ft_calloc(ft_wrdlen((char *)s, c, 0) + 1, 1); + if (!r) + return (NULL); + l = 0; + while (*s != '\0' && *s != c) + { + r[l] = *s; + l++; + s++; + } + return (r); +} diff --git a/libft/src/ft_malstrs.c b/libft/src/ft_malstrs.c new file mode 100644 index 0000000..bdeb114 --- /dev/null +++ b/libft/src/ft_malstrs.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_malstrs.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/29 15:21:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:36 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_malstrs(char *s, char *c) +{ + char *r; + int l; + + r = ft_calloc(ft_wrdlens((char *)s, c, 0) + 1, 1); + if (!r) + return (NULL); + l = 0; + while (*s != '\0' && !(ft_chrstr(*s, c))) + { + r[l] = *s; + l++; + s++; + } + return (r); +} diff --git a/libft/src/ft_max.c b/libft/src/ft_max.c new file mode 100644 index 0000000..304b05f --- /dev/null +++ b/libft/src/ft_max.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_max.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/08 04:26:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:36 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_max(int a, int b) +{ + if (a > b) + return (a); + return (b); +} diff --git a/libft/src/ft_memccpy.c b/libft/src/ft_memccpy.c new file mode 100644 index 0000000..8630c3c --- /dev/null +++ b/libft/src/ft_memccpy.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_memccpy.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:38:54 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:38 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_memccpy(void *dst, const void *src, int c, size_t n) +{ + unsigned char *d; + unsigned const char *s; + unsigned char u; + + d = dst; + s = src; + u = c; + while (n != 0) + { + *d = *s; + if (*d == u) + return (d + 1); + n--; + d++; + s++; + } + return (NULL); +} diff --git a/libft/src/ft_memchr.c b/libft/src/ft_memchr.c new file mode 100644 index 0000000..644cde5 --- /dev/null +++ b/libft/src/ft_memchr.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_memchr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:35:56 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:39 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_memchr(const void *s, int c, size_t n) +{ + unsigned char *p; + unsigned char t; + + t = (unsigned char)c; + p = (unsigned char *)s; + while (n > 0) + { + if (t == *p) + return ((void *)p); + n--; + ++p; + } + return (NULL); +} diff --git a/libft/src/ft_memcmp.c b/libft/src/ft_memcmp.c new file mode 100644 index 0000000..e3023dc --- /dev/null +++ b/libft/src/ft_memcmp.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_memcmp.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:41:32 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:39 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_memcmp(const void *s1, const void *s2, size_t n) +{ + const unsigned char *p1; + const unsigned char *p2; + + p1 = s1; + p2 = s2; + while (n) + { + if (*p1 != *p2) + return (*p1 - *p2); + p1++; + p2++; + n--; + } + return (0); +} diff --git a/libft/src/ft_memcpy.c b/libft/src/ft_memcpy.c new file mode 100644 index 0000000..c326f37 --- /dev/null +++ b/libft/src/ft_memcpy.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_memcpy.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 16:13:52 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:39 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_memcpy(void *dst, const void *src, size_t n) +{ + char *d; + const char *s; + long unsigned int i; + + i = 0; + d = dst; + s = src; + if (dst != NULL || src != NULL) + { + while (n > i) + { + d[i] = s[i]; + i++; + } + } + return (dst); +} diff --git a/libft/src/ft_memmove.c b/libft/src/ft_memmove.c new file mode 100644 index 0000000..e388e08 --- /dev/null +++ b/libft/src/ft_memmove.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_memmove.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:45:04 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:39 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_memmove(void *dst, const void *src, size_t len) +{ + char *d; + const char *s; + int i; + + if (dst == NULL && src == NULL) + return ((void *)dst); + i = 0; + d = dst; + s = src; + if (d >= s) + { + s = s + (len - 1); + d = d + (len - 1); + } + while (len) + { + len--; + d[i] = s[i]; + if (d < s) + i++; + else + i--; + } + return (dst); +} diff --git a/libft/src/ft_memset.c b/libft/src/ft_memset.c new file mode 100644 index 0000000..09151c0 --- /dev/null +++ b/libft/src/ft_memset.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_memset.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:42:45 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:39 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void *ft_memset(void *s, int c, size_t n) +{ + char *p; + + p = s; + while (n > 0) + { + *p = c; + p++; + n--; + } + return (s); +} diff --git a/libft/src/ft_min.c b/libft/src/ft_min.c new file mode 100644 index 0000000..0129ef6 --- /dev/null +++ b/libft/src/ft_min.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_min.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/08 04:26:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:40 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_min(int a, int b) +{ + if (a < b) + return (a); + return (b); +} diff --git a/libft/src/ft_otoi.c b/libft/src/ft_otoi.c new file mode 100644 index 0000000..b04484d --- /dev/null +++ b/libft/src/ft_otoi.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_otoi.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 16:54:01 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:40 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_otoi(int i) +{ + char *s; + int is; + int ir; + int r; + + is = ft_intlen(i) - 1; + ir = 0; + r = 0; + s = ft_itoa(i); + while (s[is] != '\0') + { + r = r + (s[is] - '0') * ft_power(8, ir); + is--; + ir++; + } + free(s); + return (r); +} diff --git a/libft/src/ft_power.c b/libft/src/ft_power.c new file mode 100644 index 0000000..6297e06 --- /dev/null +++ b/libft/src/ft_power.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_power.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 01:18:37 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:40 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_power(int n, int p) +{ + int r; + + if (p < 0) + return (0); + if (p == 0) + return (1); + else + r = n * ft_power(n, p - 1); + return (r); +} diff --git a/libft/src/ft_putchar.c b/libft/src/ft_putchar.c new file mode 100644 index 0000000..467f9d5 --- /dev/null +++ b/libft/src/ft_putchar.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putchar.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 03:47:51 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:40 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putchar(char c) +{ + write(1, &c, sizeof(c)); +} diff --git a/libft/src/ft_putchar_fd.c b/libft/src/ft_putchar_fd.c new file mode 100644 index 0000000..8e6f009 --- /dev/null +++ b/libft/src/ft_putchar_fd.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putchar_fd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 03:47:51 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:42 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putchar_fd(char c, int fd) +{ + write(fd, &c, sizeof(c)); +} diff --git a/libft/src/ft_putendl.c b/libft/src/ft_putendl.c new file mode 100644 index 0000000..9cd6059 --- /dev/null +++ b/libft/src/ft_putendl.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putendl.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:00:47 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:43 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putendl(char *s) +{ + if (!s) + return ((void) NULL); + while (*s) + { + write(1, s, 1); + s++; + } + write(1, "\n", 1); +} diff --git a/libft/src/ft_putendl_fd.c b/libft/src/ft_putendl_fd.c new file mode 100644 index 0000000..3573095 --- /dev/null +++ b/libft/src/ft_putendl_fd.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putendl_fd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:00:47 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:43 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putendl_fd(char *s, int fd) +{ + if (!s) + return ((void) NULL); + while (*s) + { + write(fd, s, 1); + s++; + } + write(fd, "\n", 1); +} diff --git a/libft/src/ft_putflo.c b/libft/src/ft_putflo.c new file mode 100644 index 0000000..16c154a --- /dev/null +++ b/libft/src/ft_putflo.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putflo.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:45:39 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:43 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putflo(double n) +{ + int i; + int f; + + i = n; + f = ft_ftoi(n); + ft_putnbr(i); + ft_putchar('.'); + ft_putnbr(f); +} diff --git a/libft/src/ft_putflo_fd.c b/libft/src/ft_putflo_fd.c new file mode 100644 index 0000000..24fb768 --- /dev/null +++ b/libft/src/ft_putflo_fd.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putflo_fd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:45:39 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:43 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putflo_fd(double n, int fd) +{ + int i; + int f; + + i = n; + f = ft_ftoi(n); + ft_putnbr_fd(i, fd); + ft_putchar_fd('.', fd); + ft_putnbr_fd(f, fd); +} diff --git a/libft/src/ft_putlong.c b/libft/src/ft_putlong.c new file mode 100644 index 0000000..fb98a5e --- /dev/null +++ b/libft/src/ft_putlong.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putlong.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:22:10 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:43 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putlong(long long n) +{ + if (n < -9223372036854775807) + return (ft_putstr("-9223372036854775808")); + if (n < 0) + { + ft_putchar('-'); + n = n * -1; + } + if (n >= 10) + { + ft_putlong(n / 10); + ft_putlong(n % 10); + } + else + ft_putchar(n + '0'); +} diff --git a/libft/src/ft_putnbr.c b/libft/src/ft_putnbr.c new file mode 100644 index 0000000..aeeb8f8 --- /dev/null +++ b/libft/src/ft_putnbr.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putnbr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:22:10 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:44 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putnbr(int n) +{ + if (n == -2147483648) + return (ft_putstr("-2147483648")); + if (n < 0) + { + ft_putchar('-'); + n = n * -1; + } + if (n >= 10) + { + ft_putnbr(n / 10); + ft_putnbr(n % 10); + } + else + ft_putchar(n + '0'); +} diff --git a/libft/src/ft_putnbr_base.c b/libft/src/ft_putnbr_base.c new file mode 100644 index 0000000..7f0e62e --- /dev/null +++ b/libft/src/ft_putnbr_base.c @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* .--. _ */ +/* ft_putnbr_base.c :+: :+: :+: */ +/* |:_/ || |_ _ ___ __ */ +/* By: djonker // \ \ __| | | \ \/ / */ +/* (| | )|_| |_| |> < */ +/* Created: 2021/08/04 06:48:59 by djonker /'\_ _/`\__|\__,_/_/\_\ */ +/* Updated: 2023/02/07 00:40:44 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putnbr_base(unsigned long long number, int base) +{ + if (number >= (unsigned long long)base) + ft_putnbr_base(number / base, base); + number %= base; + if (number >= 10) + number = number + 87; + else + number = number + 48; + ft_putchar(number); +} diff --git a/libft/src/ft_putnbr_fd.c b/libft/src/ft_putnbr_fd.c new file mode 100644 index 0000000..774bcb7 --- /dev/null +++ b/libft/src/ft_putnbr_fd.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putnbr_fd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:22:10 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:44 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putnbr_fd(int n, int fd) +{ + if (n == -2147483648) + return (ft_putstr_fd("-2147483648", fd)); + if (n < 0) + { + ft_putchar_fd('-', fd); + n = n * -1; + } + if (n >= 10) + { + ft_putnbr_fd(n / 10, fd); + ft_putnbr_fd(n % 10, fd); + } + else + ft_putchar_fd(n + '0', fd); +} diff --git a/libft/src/ft_putstr.c b/libft/src/ft_putstr.c new file mode 100644 index 0000000..fd4c986 --- /dev/null +++ b/libft/src/ft_putstr.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putstr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:00:47 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:44 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putstr(char *s) +{ + if (!s) + return ((void) NULL); + write(1, s, ft_strlen(s)); +} diff --git a/libft/src/ft_putstr_fd.c b/libft/src/ft_putstr_fd.c new file mode 100644 index 0000000..6652b71 --- /dev/null +++ b/libft/src/ft_putstr_fd.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putstr_fd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:00:47 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putstr_fd(char *s, int fd) +{ + if (!s) + return ((void) NULL); + write(fd, s, ft_strlen(s)); +} diff --git a/libft/src/ft_putull.c b/libft/src/ft_putull.c new file mode 100644 index 0000000..674b1e6 --- /dev/null +++ b/libft/src/ft_putull.c @@ -0,0 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putull.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:22:10 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putull(unsigned long long n) +{ + if (n >= 10) + { + ft_putull(n / 10); + ft_putull(n % 10); + } + else + ft_putchar(n + '0'); +} diff --git a/libft/src/ft_putzflo.c b/libft/src/ft_putzflo.c new file mode 100644 index 0000000..b5d8feb --- /dev/null +++ b/libft/src/ft_putzflo.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putzflo.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:45:39 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putzflo(double n, int e) +{ + long long i; + long long f; + char *t; + + i = n; + f = ft_ftoi(n); + t = ft_ltoa(f); + if (ft_around(t, e)) + i++; + ft_putnbr(i); + i = 0; + if (e > 0) + { + ft_putchar('.'); + while (e > i) + { + if (t[i] >= '0' && t[i] <= '9') + ft_putchar(t[i]); + else + ft_putchar('0'); + i++; + } + } + free (t); +} diff --git a/libft/src/ft_putzflo_fd.c b/libft/src/ft_putzflo_fd.c new file mode 100644 index 0000000..89c2eda --- /dev/null +++ b/libft/src/ft_putzflo_fd.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putzflo_fd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:45:39 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putzflo_fd(double n, int e, int fd) +{ + int i; + int f; + int l; + + i = n; + f = ft_ftoi(n); + l = ft_intlen(f) - e; + ft_putnbr_fd(i, fd); + ft_putchar_fd('.', fd); + ft_putnbr_fd(f, fd); + while (l != 0) + { + ft_putchar_fd('0', 1); + l++; + } +} diff --git a/libft/src/ft_putznbr.c b/libft/src/ft_putznbr.c new file mode 100644 index 0000000..1da75d6 --- /dev/null +++ b/libft/src/ft_putznbr.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putznbr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:22:10 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putznbr(int n, int e) +{ + int s; + + s = ft_intlen(n) - e; + while (s != 0) + { + ft_putchar('0'); + s++; + } + ft_putnbr(n); +} diff --git a/libft/src/ft_putznbr_fd.c b/libft/src/ft_putznbr_fd.c new file mode 100644 index 0000000..454d006 --- /dev/null +++ b/libft/src/ft_putznbr_fd.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putznbr_fd.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 04:22:10 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_putznbr_fd(int n, int e, int fd) +{ + int s; + + s = ft_intlen(n) - e; + while (s != 0) + { + ft_putchar_fd('0', fd); + s++; + } + ft_putnbr_fd(n, fd); +} diff --git a/libft/src/ft_putzsci.c b/libft/src/ft_putzsci.c new file mode 100644 index 0000000..b9be90c --- /dev/null +++ b/libft/src/ft_putzsci.c @@ -0,0 +1,130 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putzsci.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:45:39 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:47 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_converttostring(long double n, int j) +{ + int i; + char *r; + char *t1; + char *t2; + + i = ft_declen(n); + t1 = ft_calloc(i + 1, 1); + while (i > 0) + { + while (n < 1) + { + t1[j] = '0'; + j++; + n = n * 10; + i--; + } + n = n * 10; + i--; + } + t2 = ft_ltoa(n); + r = ft_strjoin(t1, t2); + free(t1); + free(t2); + return (r); +} + +int ft_putscientificnotation(char *temp, int decimals, int zeroes) +{ + int i; + + i = 1; + while (temp[0 + zeroes] == '0') + zeroes++; + ft_putchar(temp[0 + zeroes]); + if (decimals > 0) + { + ft_putchar('.'); + while (decimals >= i) + { + if (temp[i + zeroes] >= '0' && temp[i + zeroes] <= '9') + ft_putchar(temp[i + zeroes]); + else + ft_putchar('0'); + i++; + } + } + return (zeroes); +} + +void ft_putesignandnumber(long double num, int caps, int zeroes, int e) +{ + if (caps == 1) + ft_putstr("E"); + else + ft_putstr("e"); + if (zeroes > 0) + { + ft_putchar('-'); + ft_putznbr(zeroes, 2); + } + else if (e == 2) + { + ft_putchar('+'); + ft_putznbr(ft_intlen(num), 2); + } + else + { + ft_putchar('+'); + ft_putznbr(ft_intlen(num) - 1, 2); + } +} + +char *ft_ninetoten(char *temp) +{ + char *t1; + char *t2; + + t2 = ft_strdup(temp); + free (temp); + t2[0] = '0'; + t1 = ft_strdup("1\0"); + temp = ft_strjoin(t1, t2); + free (t1); + free (t2); + return (temp); +} + +void ft_putzsci(long double number, int decimals, int caps) +{ + int zeroes; + int round; + char *temp; + int extra; + + extra = 0; + temp = ft_converttostring(number, 0); + ft_around(temp, decimals); + if (temp[0] == ':') + extra++; + free (temp); + if (extra) + decimals++; + temp = ft_converttostring(number, 0); + round = ft_around(temp, decimals); + if (temp[0] == ':') + extra++; + if (extra == 2) + temp = ft_ninetoten(temp); + if (extra) + decimals--; + zeroes = ft_putscientificnotation(temp, decimals, 0); + free (temp); + ft_putesignandnumber(number, caps, zeroes, extra); +} diff --git a/libft/src/ft_putzscih.c b/libft/src/ft_putzscih.c new file mode 100644 index 0000000..7e060d5 --- /dev/null +++ b/libft/src/ft_putzscih.c @@ -0,0 +1,132 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_putzscih.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:45:39 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:48 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_converttostringh(long double n, int j) +{ + int i; + char *r; + char *t1; + char *t2; + + i = ft_declen(n); + t1 = ft_calloc(i + 1, 1); + while (i > 0) + { + while (n < 1) + { + t1[j] = '0'; + j++; + n = n * 10; + i--; + } + n = n * 10; + i--; + } + t2 = ft_ltoa(n); + r = ft_strjoin(t1, t2); + free(t1); + free(t2); + return (r); +} + +int ft_putscientificnotationh(char *temp, int decimals, int zeroes) +{ + int i; + char *t; + + t = ft_itoh(ft_atou(temp)); + i = 1; + while (temp[0 + zeroes] == '0') + zeroes++; + ft_putchar(t[0 + zeroes]); + if (decimals > 0) + { + ft_putchar('.'); + while (decimals >= i) + { + if (ft_chrstr(t[i + zeroes], "1234567890abcdf")) + ft_putchar(t[i + zeroes]); + else + ft_putchar('0'); + i++; + } + } + return (zeroes); +} + +void ft_putesignandnumberh(long double num, int caps, int zeroes, int e) +{ + if (caps == 1) + ft_putstr("P"); + else + ft_putstr("p"); + if (zeroes > 0) + { + ft_putchar('-'); + ft_putznbr(zeroes, 2); + } + else if (e == 2) + { + ft_putchar('+'); + ft_putznbr(ft_intlen(num), 2); + } + else + { + ft_putchar('+'); + ft_putznbr(ft_intlen(num) - 1, 2); + } +} + +char *ft_ninetotenh(char *temp) +{ + char *t1; + char *t2; + + t2 = ft_strdup(temp); + free (temp); + t2[0] = '0'; + t1 = ft_strdup("1\0"); + temp = ft_strjoin(t1, t2); + free (t1); + free (t2); + return (temp); +} + +void ft_putzscih(long double number, int decimals, int caps) +{ + int zeroes; + int round; + char *temp; + int extra; + + extra = 0; + temp = ft_converttostringh(number, 0); + ft_around(temp, decimals); + if (temp[0] == ':') + extra++; + free (temp); + if (extra) + decimals++; + temp = ft_converttostringh(number, 0); + round = ft_around(temp, decimals); + if (temp[0] == ':') + extra++; + if (extra == 2) + temp = ft_ninetotenh(temp); + if (extra) + decimals--; + zeroes = ft_putscientificnotationh(temp, decimals, 0); + free (temp); + ft_putesignandnumberh(number, caps, zeroes, extra); +} diff --git a/libft/src/ft_revstr.c b/libft/src/ft_revstr.c new file mode 100644 index 0000000..2069b51 --- /dev/null +++ b/libft/src/ft_revstr.c @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_revstr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/18 11:54:50 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:48 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_revstr(char *s) +{ + char r[1000]; + int is; + int ir; + + is = ft_strlen(s) - 1; + ir = 0; + while (is >= 0) + { + r[ir] = s[is]; + ir++; + is--; + } + r[ir] = '\0'; + s = r; + return (s); +} diff --git a/libft/src/ft_round.c b/libft/src/ft_round.c new file mode 100644 index 0000000..5c1c570 --- /dev/null +++ b/libft/src/ft_round.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_round.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 07:26:00 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:48 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_round(int n, int h) +{ + int ht; + + ht = h; + if ((n % 10) > 5) + n = n + 1; + while (ht > 0) + { + if ((n % 10) > 5) + { + n = n / 10; + n = n + 1; + } + else + n = n / 10; + ht--; + } + while (h > 0) + { + n = n * 10; + h--; + } + return (n); +} diff --git a/libft/src/ft_split.c b/libft/src/ft_split.c new file mode 100644 index 0000000..a1698f5 --- /dev/null +++ b/libft/src/ft_split.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_split.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/12 02:21:52 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:49 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char **ft_split(char const *s, char c) +{ + char **r; + int iw; + + if (!s) + return (NULL); + iw = 0; + r = ft_calloc(sizeof(r) * (ft_cntwrd((char *)s, c) + 1), 1); + if (!r) + return (NULL); + while (ft_cntwrd((char *)s, c) > 0) + { + while (*s == c) + s++; + r[iw] = ft_malstr((char *)s, c); + if (r[iw] == NULL) + return (ft_frenarr(r, iw)); + while (*s != c && *s != '\0') + s++; + iw++; + } + return (r); +} diff --git a/libft/src/ft_splits.c b/libft/src/ft_splits.c new file mode 100644 index 0000000..9e44d47 --- /dev/null +++ b/libft/src/ft_splits.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_splits.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/12 02:21:52 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:50 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char **ft_splits(char *s, char *c) +{ + char **r; + int iw; + + if (!s) + return (NULL); + iw = 0; + r = ft_calloc(sizeof(r) * (ft_cntwrds(s, c) + 1), 1); + if (!r) + return (NULL); + while (ft_cntwrds(s, c) > 0) + { + while (ft_chrstr(*s, c)) + s++; + r[iw] = ft_malstrs((char *)s, c); + if (r[iw] == NULL) + return (ft_frenarr(r, iw)); + while (!(ft_chrstr(*s, c)) && *s != '\0') + s++; + iw++; + } + return (r); +} diff --git a/libft/src/ft_sqrt.c b/libft/src/ft_sqrt.c new file mode 100644 index 0000000..b8a8bc6 --- /dev/null +++ b/libft/src/ft_sqrt.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_sqrt.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/01 04:16:25 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:03 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +unsigned long long ft_sqrt(unsigned long long n) +{ + unsigned long long r; + + r = 0; + while (r < 1000000000000000000 && r <= n / 2) + { + if (r * r == n) + return (r); + r++; + } + return (0); +} diff --git a/libft/src/ft_strchr.c b/libft/src/ft_strchr.c new file mode 100644 index 0000000..10127ea --- /dev/null +++ b/libft/src/ft_strchr.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* .--. _ */ +/* ft_strchr.c :+: :+: :+: */ +/* |:_/ || |_ _ ___ __ */ +/* By: djonker // \ \ __| | | \ \/ / */ +/* (| | )|_| |_| |> < */ +/* Created: 2022/11/22 13:34:05 by djonker /'\_ _/`\__|\__,_/_/\_\ */ +/* Updated: 2023/02/07 00:40:50 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strchr(const char *s, int c) +{ + while (*s) + { + if (c == *s) + return ((char *)s); + s++; + } + if (c == *s) + return ((char *)s); + return (0); +} diff --git a/libft/src/ft_strdup.c b/libft/src/ft_strdup.c new file mode 100644 index 0000000..7b93530 --- /dev/null +++ b/libft/src/ft_strdup.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strdup.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/03 09:00:38 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:50 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strdup(const char *s) +{ + int i; + char *p; + + i = ft_strlen((char *)s) + 1; + p = malloc(i); + if (p == NULL) + return (p); + ft_memcpy(p, s, i); + return (p); +} diff --git a/libft/src/ft_strjoin.c b/libft/src/ft_strjoin.c new file mode 100644 index 0000000..a2aa191 --- /dev/null +++ b/libft/src/ft_strjoin.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 16:17:34 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:50 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strjoin(char const *s1, char const *s2) +{ + int c1; + int c2; + char *r; + + c1 = 0; + c2 = 0; + if (s1 == NULL) + return (ft_malstr((char *)s2, '\0')); + if (s2 == NULL) + return (ft_malstr((char *)s1, '\0')); + r = ft_calloc(ft_strlen((char *)s1) + ft_strlen((char *)s2) + 1, 1); + if (r == NULL) + return (r); + while (c1 < (int)ft_strlen((char *)s1)) + { + r[c1] = s1[c1]; + c1++; + } + while (c2 < (int)ft_strlen((char *)s2)) + { + r[c1 + c2] = s2[c2]; + c2++; + } + r[c1 + c2] = '\0'; + return (r); +} diff --git a/libft/src/ft_strlcat.c b/libft/src/ft_strlcat.c new file mode 100644 index 0000000..d89e423 --- /dev/null +++ b/libft/src/ft_strlcat.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strlcat.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 09:55:53 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:51 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +size_t ft_strlcat(char *dst, const char *src, size_t dstsize) +{ + size_t dl; + size_t sl; + size_t r; + + dl = ft_strlen(dst); + r = ft_strlen((char *)src); + sl = 0; + if (dstsize == 0) + return (r); + if (dstsize < dl) + r = r + dstsize; + else + r = r + dl; + while (src[sl] != '\0' && dl < dstsize - 1) + { + dst[dl] = src[sl]; + sl++; + dl++; + } + if (dl < dstsize) + dst[dl] = '\0'; + return (r); +} diff --git a/libft/src/ft_strlcpy.c b/libft/src/ft_strlcpy.c new file mode 100644 index 0000000..5d39969 --- /dev/null +++ b/libft/src/ft_strlcpy.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strlcpy.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:22:27 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:51 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +size_t ft_strlcpy(char *dst, const char *src, size_t dstsize) +{ + size_t i; + + if (dst == NULL || src == NULL) + return (0); + i = ft_strlen((char *)src); + if (i + 1 < dstsize) + ft_memcpy(dst, src, i + 1); + else if (i != 0 && dstsize != 0) + { + ft_memcpy(dst, src, dstsize - 1); + dst[dstsize - 1] = '\0'; + } + return (i); +} diff --git a/libft/src/ft_strlen.c b/libft/src/ft_strlen.c new file mode 100644 index 0000000..90c1bf5 --- /dev/null +++ b/libft/src/ft_strlen.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 08:45:34 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:51 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +size_t ft_strlen(const char *str) +{ + size_t a; + + a = 0; + if (!str) + return (0); + while (*str != '\0') + { + a++; + str++; + } + return (a); +} diff --git a/libft/src/ft_strlow.c b/libft/src/ft_strlow.c new file mode 100644 index 0000000..9c55123 --- /dev/null +++ b/libft/src/ft_strlow.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strlow.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 05:49:38 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:40:51 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strlow(char *s) +{ + char r[5000]; + int i; + + i = 0; + while (s[i]) + { + r[i] = ft_tolower(s[i]); + i++; + } + r[i] = '\0'; + s = r; + return (s); +} diff --git a/libft/src/ft_strmapi.c b/libft/src/ft_strmapi.c new file mode 100644 index 0000000..a878154 --- /dev/null +++ b/libft/src/ft_strmapi.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strmapi.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/13 03:04:33 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:11 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) +{ + unsigned int i; + char *r; + + i = 0; + if (f == NULL || s == NULL) + return (0x0); + r = (char *)malloc(sizeof(char) * (ft_strlen((char *)s)) + 1); + if (r == NULL) + return (r); + while (s[i] != '\0') + { + r[i] = f(i, s[i]); + i++; + } + r[i] = '\0'; + return (r); +} diff --git a/libft/src/ft_strncmp.c b/libft/src/ft_strncmp.c new file mode 100644 index 0000000..cafdedc --- /dev/null +++ b/libft/src/ft_strncmp.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strncmp.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:09:01 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:12 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_strncmp(char *s1, char *s2, unsigned int n) +{ + if (n == 0) + return (0); + while (n) + { + if (*s1 != *s2) + return (*(unsigned char *)s1 - *(unsigned char *)s2); + if (*s1 == '\0') + break ; + s1++; + s2++; + n--; + } + return (0); +} diff --git a/libft/src/ft_strnstr.c b/libft/src/ft_strnstr.c new file mode 100644 index 0000000..a76fcc8 --- /dev/null +++ b/libft/src/ft_strnstr.c @@ -0,0 +1,36 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strnstr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 16:14:33 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:13 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strnstr(const char *h, const char *n, size_t len) +{ + long unsigned int ih; + int in; + + ih = 0; + if (!*n) + return ((char *)&h[ih]); + while (h[ih] != '\0' && len > ih) + { + if (h[ih] == n[0]) + { + in = 1; + while (n[in] != '\0' && h[ih + in] == n[in] && (ih + in) < len) + in++; + if (n[in] == '\0') + return ((char *)&h[ih]); + } + ih++; + } + return (NULL); +} diff --git a/libft/src/ft_strrchr.c b/libft/src/ft_strrchr.c new file mode 100644 index 0000000..cea8d6f --- /dev/null +++ b/libft/src/ft_strrchr.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strrchr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 16:14:50 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:13 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strrchr(const char *s, int c) +{ + char *p; + + p = (char *) 0; + while (1) + { + if (*s == c) + p = (char *)s; + if (*s == 0) + break ; + s++; + } + return (p); +} diff --git a/libft/src/ft_strtrim.c b/libft/src/ft_strtrim.c new file mode 100644 index 0000000..85ba4b7 --- /dev/null +++ b/libft/src/ft_strtrim.c @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strtrim.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 16:41:19 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:13 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strtrim(char const *str, char const *set) +{ + char *r; + int l; + + if (!str) + return (NULL); + if (!set) + return (ft_malstr((char *)str, '\0')); + while (*str && ft_strchr(set, *str)) + str++; + l = ft_strlen((char *)str); + while (ft_strchr(set, str[l]) && l) + l--; + r = ft_substr((char *)str, 0, l + 1); + return (r); +} diff --git a/libft/src/ft_strupp.c b/libft/src/ft_strupp.c new file mode 100644 index 0000000..99f765b --- /dev/null +++ b/libft/src/ft_strupp.c @@ -0,0 +1,29 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_strupp.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/01/31 05:49:38 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:13 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_strupp(char *s) +{ + char r[5000]; + int i; + + i = 0; + while (s[i]) + { + r[i] = ft_toupper(s[i]); + i++; + } + r[i] = '\0'; + s = r; + return (s); +} diff --git a/libft/src/ft_substr.c b/libft/src/ft_substr.c new file mode 100644 index 0000000..322e213 --- /dev/null +++ b/libft/src/ft_substr.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_substr.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 15:52:16 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:13 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_substr(char const *s, unsigned int start, size_t len) +{ + char *r; + long unsigned int i; + + if (s == NULL) + return (NULL); + i = 0; + if (len > ft_strlen((char *)s) && start < ft_strlen((char *)s)) + len = ft_strlen((char *)s) - start; + r = ft_calloc(len + 1, 1); + if (r == NULL) + return (NULL); + if (start >= ft_strlen((char *)s)) + { + r[i] = '\0'; + return (r); + } + while (len > i) + { + r[i] = s[i + start]; + i++; + } + return (r); +} diff --git a/libft/src/ft_swap.c b/libft/src/ft_swap.c new file mode 100644 index 0000000..96141d7 --- /dev/null +++ b/libft/src/ft_swap.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_swap.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/02 21:13:27 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:28 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_swap(int *a, int *b) +{ + int c; + + c = *a; + *a = *b; + *b = c; +} diff --git a/libft/src/ft_swaplong.c b/libft/src/ft_swaplong.c new file mode 100644 index 0000000..e7903d1 --- /dev/null +++ b/libft/src/ft_swaplong.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* .--. _ */ +/* ft_swaplong.c :+: :+: :+: */ +/* |:_/ || |_ _ ___ __ */ +/* By: djonker // \ \ __| | | \ \/ / */ +/* (| | )|_| |_| |> < */ +/* Created: 2022/11/22 15:26:28 by djonker /'\_ _/`\__|\__,_/_/\_\ */ +/* Updated: 2023/02/07 00:41:36 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +void ft_swaplong(long *a, long *b) +{ + long c; + + c = *a; + *a = *b; + *b = c; +} diff --git a/libft/src/ft_tolower.c b/libft/src/ft_tolower.c new file mode 100644 index 0000000..4301850 --- /dev/null +++ b/libft/src/ft_tolower.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_tolower.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/11 16:13:29 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:14 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_tolower(int c) +{ + if (ft_isuppc(c)) + return (c + 32); + return (c); +} diff --git a/libft/src/ft_toupper.c b/libft/src/ft_toupper.c new file mode 100644 index 0000000..f1781ba --- /dev/null +++ b/libft/src/ft_toupper.c @@ -0,0 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_toupper.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/01 19:10:41 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:14 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_toupper(int c) +{ + if (ft_islowc(c)) + return (c - 32); + return (c); +} diff --git a/libft/src/ft_utoa.c b/libft/src/ft_utoa.c new file mode 100644 index 0000000..03d245a --- /dev/null +++ b/libft/src/ft_utoa.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_utoa.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/12 23:20:24 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:45 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +char *ft_utoa(unsigned long long n) +{ + char *r; + int l; + + l = ft_intlen(n) - 1; + r = ft_calloc(l + 2, 1); + if (r == NULL) + return (NULL); + while (n > 9 || n < 0) + { + if (n >= 10) + { + r[l] = n % 10 + '0'; + l--; + n = (n / 10); + } + } + r[l] = n + '0'; + return (r); +} diff --git a/libft/src/ft_vamax.c b/libft/src/ft_vamax.c new file mode 100644 index 0000000..44b28f5 --- /dev/null +++ b/libft/src/ft_vamax.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_vamax.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/08 04:26:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_vamax(int n, ...) +{ + va_list va; + int i; + int t; + int r; + + i = 0; + va_start(va, n); + r = -2147483648; + while (n > i) + { + t = va_arg(va, int); + if (t > r) + r = t; + i++; + } + va_end(va); + return (r); +} diff --git a/libft/src/ft_vamin.c b/libft/src/ft_vamin.c new file mode 100644 index 0000000..b859e75 --- /dev/null +++ b/libft/src/ft_vamin.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_vamin.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2021/02/08 04:26:11 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_vamin(int n, ...) +{ + va_list va; + int i; + int t; + int r; + + i = 0; + va_start(va, n); + r = 2147483647; + while (n > i) + { + t = va_arg(va, int); + if (t < r) + r = t; + i++; + } + va_end(va); + return (r); +} diff --git a/libft/src/ft_wrdlen.c b/libft/src/ft_wrdlen.c new file mode 100644 index 0000000..444a25a --- /dev/null +++ b/libft/src/ft_wrdlen.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_wrdlen.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/22 12:00:13 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_wrdlen(char *s, char c, int i) +{ + int r; + int w; + int is; + + r = 0; + w = 0; + is = 0; + while (s[is] != '\0') + { + while (s[is] == c) + is++; + if (s[is] != c && s[is] != '\0') + { + r = 0; + while (s[is] != c && s[is] != '\0') + { + is++; + r++; + } + if (w == i) + return (r); + w++; + } + } + return (0); +} diff --git a/libft/src/ft_wrdlens.c b/libft/src/ft_wrdlens.c new file mode 100644 index 0000000..1c2fdca --- /dev/null +++ b/libft/src/ft_wrdlens.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* ft_wrdlens.c :+: :+: :+: */ +/* +:+ */ +/* By: djonker +#+ */ +/* +#+ */ +/* Created: 2020/11/22 12:00:13 by djonker #+# #+# */ +/* Updated: 2023/02/07 00:41:46 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../libft.h" + +int ft_wrdlens(char *s, char *c, int i) +{ + int r; + int w; + int is; + + r = 0; + w = 0; + is = 0; + while (s[is] != '\0') + { + while (ft_chrstr(s[is], c)) + is++; + if (!(ft_chrstr(s[is], c)) && s[is] != '\0') + { + r = 0; + while (!(ft_chrstr(s[is], c)) && s[is] != '\0') + { + is++; + r++; + } + if (w == i) + return (r); + w++; + } + } + return (0); +} diff --git a/mlx/.gitattributes b/mlx/.gitattributes new file mode 100644 index 0000000..ccbbc0d --- /dev/null +++ b/mlx/.gitattributes @@ -0,0 +1,8 @@ +# See https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings + +# Set the default behavior, in case people don't have core.autocrlf set +* text=auto + +# Declare files that will always have a certain EOL +*.sh text eol=lf +shaders/** text eol=lf diff --git a/mlx/.github/ISSUE_TEMPLATE/bug_report.md b/mlx/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..ec20278 --- /dev/null +++ b/mlx/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,34 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "[BUG]" +labels: '' +assignees: '' + +--- + +**NOTE** +Before creating a bug report! Make sure you git pull from master and check if the bug still exists! + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. MacOS] + - Version [e.g. BigSur] + +**Additional context** +Add any other context about the problem here. diff --git a/mlx/.github/ISSUE_TEMPLATE/feature_request.md b/mlx/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..d36cbc7 --- /dev/null +++ b/mlx/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[REQUEST]" +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/mlx/.github/workflows/ci.yml b/mlx/.github/workflows/ci.yml new file mode 100644 index 0000000..41025b5 --- /dev/null +++ b/mlx/.github/workflows/ci.yml @@ -0,0 +1,89 @@ +name: Build + +on: + workflow_dispatch: + pull_request: + branches: [ master ] + schedule: + - cron: '0 0 * * FRI' + +jobs: + + unit-test: + timeout-minutes: 10 + runs-on: ubuntu-latest + env: + DISPLAY: ":99" + + steps: + - name: Clone repository + uses: actions/checkout@v2 + + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install -y gcc make libglfw3-dev libglfw3 xorg build-essential cmake xorg-dev libx11-dev libglu1-mesa-dev freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libgl1-mesa-glx libgl1-mesa-dev xvfb + + - name: Install GLFW + uses: RpxdYTX/install-glfw-deps@v2 + + - name: Setup x11 + run: Xvfb $DISPLAY -screen 0 1280x1024x24 & + + - name: Run tests + run: make -C test + + build-unix: + timeout-minutes: 10 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + + steps: + - name: Clone repository + uses: actions/checkout@v2 + + - name: Install Dependencies + run: | + set -x + if [ "$RUNNER_OS" == "Linux" ]; then + sudo apt-get update -qq + sudo apt-get install -y -qq gcc make xorg build-essential cmake xorg-dev libx11-dev libglu1-mesa-dev freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libgl1-mesa-glx libgl1-mesa-dev libglfw3-dev libglfw3 + elif [ "$RUNNER_OS" == "macOS" ]; then + brew update + brew install glfw + else + echo "$RUNNER_OS not supported" + exit 1 + fi + + - name: Build + run: make + + build-win: + timeout-minutes: 20 + runs-on: windows-latest + + steps: + - name: Clone repository + uses: actions/checkout@v2 + + - name: Install MinGW + uses: egor-tensin/setup-mingw@v2 + + - name: Download GLFW binaries + uses: carlosperate/download-file-action@v1.1.1 + with: + file-url: 'https://github.com/glfw/glfw/releases/download/3.3.6/glfw-3.3.6.bin.WIN64.zip' + file-name: 'glfw.zip' + location: '${{ github.workspace }}\lib' + + - name: Unpack GLFW binaries + run: | + unzip 'lib/glfw.zip' -d 'lib' + rm 'lib\glfw.zip' + mv 'lib\glfw*' 'lib\glfw' + + - name: Build + run: make HEADERS="-I lib/glfw/include" WIN_UNIX=1 diff --git a/mlx/.gitignore b/mlx/.gitignore new file mode 100644 index 0000000..48b6e3e --- /dev/null +++ b/mlx/.gitignore @@ -0,0 +1,62 @@ +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd +.tmp_versions/ +modules.order +Module.symvers +Mkfile.old +dkms.conf + +# Misc +main.c +temp/ +.vscode/ +lib/glfw/ +.DS_Store + +# Special shader files +mlx_*_shader.c diff --git a/mlx/CODE_OF_CONDUCT.md b/mlx/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..2068080 --- /dev/null +++ b/mlx/CODE_OF_CONDUCT.md @@ -0,0 +1,116 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +main@w2wizard.dev. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 2. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 3. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/mlx/CONTRIBUTING.md b/mlx/CONTRIBUTING.md new file mode 100644 index 0000000..0a0b27b --- /dev/null +++ b/mlx/CONTRIBUTING.md @@ -0,0 +1,20 @@ +# How to contribute to MLX42 + +## Read the wiki for repo codestyle! + +For any questions, suggestions or help [Contact Me](mailto:lde-la-h@student.codam.nl) + +## **Found a bug?** + +* Avoid opening any new issues without having checked if your problem has already been reported. If there are no currently open issues that fit your problem's description, feel free to [add it](https://github.com/W2Codam/MLX42/issues/new/choose). + +* When writing an issue make sure to include a clear title and description as well as having filled out all the necessary information: System info, OS, OS-Version, ... + +* If possible add pictures of the issue. + +* Maybe fix it yourself :D ? + +## Contributing + +Before thinking of adding a contribution, think. Is it necessary? Will this actually be a useful/required feature? Is your implementation good? +Provide clear and documented explanation as to what was changed. diff --git a/mlx/LICENSE b/mlx/LICENSE new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/mlx/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/mlx/Makefile b/mlx/Makefile new file mode 100644 index 0000000..74c9ea3 --- /dev/null +++ b/mlx/Makefile @@ -0,0 +1,77 @@ +# **************************************************************************** # +# # +# :::::::: # +# Makefile :+: :+: # +# +:+ # +# By: W2Wizard +#+ # +# +#+ # +# Created: 2022/02/26 21:32:49 by W2Wizard #+# #+# # +# Updated: 2022/08/10 12:42:39 by lde-la-h ######## odam.nl # +# # +# **************************************************************************** # + +NAME := libmlx42.a +LIB_DIR := lib +SRC_DIR := src +SHADER_DIR := shaders +INCLUDE_DIR := include + +override HEADERS += -I $(INCLUDE_DIR) + +CFLAGS := -Wextra -Wall -Werror -Wunreachable-code -Wno-char-subscripts -Wno-sign-compare \ + -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS -DLODEPNG_NO_COMPILE_ENCODER +ifdef DEBUG + CFLAGS += -g +else + CFLAGS += -Ofast -D NDEBUG +endif + +# Recursive wildcard/find function, the subst is to guarantee unix file paths +rwildcard = $(subst \,/,$(sort $(foreach d,$(wildcard $1/*),$(call rwildcard,$d,$2) $(wildcard $1/$2)))) + +SHDR := $(call rwildcard,$(SHADER_DIR),default.*) +SHDR := $(SHDR:$(SHADER_DIR)/default.%=$(SRC_DIR)/mlx_%_shader.c) +LIB := $(call rwildcard,$(LIB_DIR),*.c) +SRCS := $(call rwildcard,$(SRC_DIR),*.c) +OBJS := $(sort $(patsubst %.c,%.o,$(SRCS) $(LIB) $(SHDR))) +HDRS := $(call rwildcard,$(INCLUDE_DIR),*.h) + +ifeq ($(OS), Windows_NT) + ifdef WIN_UNIX + include Makefile_Unix.mk + else + include Makefile_WindowsNT.mk + endif +else + UNAME_S := $(shell uname -s) + ifeq ($(UNAME_S), Linux) + include Makefile_Unix.mk + else ifeq ($(UNAME_S), Darwin) + # Default + DYLIB_EXISTS := test -e /usr/local/lib/libglfw.3.dylib || echo "false" + + # Generic Homebrew path + ifneq ($(DYLIB_EXISTS), false) + BREW_GLFW_PREFIX := $(shell brew --prefix glfw) + DYLIB_EXISTS := test -e $(BREW_GLFW_PREFIX)/lib/libglfw.3.dylib || echo "false" + ifneq ($(DYLIB_EXISTS), false) + override HEADERS += -I $(BREW_GLFW_PREFIX)/include + endif + endif + + include Makefile_Unix.mk + else +$(error OS: $(OS) - Is not supported!) + endif +endif + +#//= Make Rules =//# +all: $(SHDR) $(NAME) + +# Run make as part of the recipe to allow for multi-threading to be used (-j) +re: fclean + @$(MAKE) -e + +#//= Misc =//# +.DEFAULT_GOAL := all +.PHONY: all clean fclean re diff --git a/mlx/Makefile_Unix.mk b/mlx/Makefile_Unix.mk new file mode 100644 index 0000000..e6a8634 --- /dev/null +++ b/mlx/Makefile_Unix.mk @@ -0,0 +1,44 @@ +# **************************************************************************** # +# # +# :::::::: # +# Makefile_Unix.mk :+: :+: # +# +:+ # +# By: W2Wizard +#+ # +# +#+ # +# Created: 2022/02/26 21:36:38 by W2Wizard #+# #+# # +# Updated: 2022/07/05 14:53:23 by jobvan-d ######## odam.nl # +# # +# **************************************************************************** # + +#//= Colors =//# +BOLD := \033[1m +BLACK := \033[30;1m +RED := \033[31;1m +GREEN := \033[32;1m +YELLOW := \033[33;1m +BLUE := \033[34;1m +MAGENTA := \033[35;1m +CYAN := \033[36;1m +WHITE := \033[37;1m +RESET := \033[0m + +#//= Make Rules =//# +$(NAME): $(OBJS) + @ar rc $@ $^ + @echo "$(GREEN)$(BOLD)Done$(RESET)" + +%.o: %.c $(HDRS) + @echo "$(GREEN)$(BOLD)Compiling:$(RESET) $(notdir $<)" + @$(CC) $(CFLAGS) -o $@ -c $< $(HEADERS) + +# Convert shaders to .c files +$(SRC_DIR)/mlx_%_shader.c: $(SHADER_DIR)/default.% + @echo "$(GREEN)$(BOLD)Shader to C: $< -> $@$(RESET)" + @bash tools/compile_shader.sh $< > $@ + +clean: + @echo "$(RED)Cleaning$(RESET)" + @rm -f $(OBJS) $(SHDR) + +fclean: clean + @rm -f $(NAME) diff --git a/mlx/Makefile_WindowsNT.mk b/mlx/Makefile_WindowsNT.mk new file mode 100644 index 0000000..ec35ed2 --- /dev/null +++ b/mlx/Makefile_WindowsNT.mk @@ -0,0 +1,49 @@ +# **************************************************************************** # +# # +# :::::::: # +# Makefile_WindowsNT.mk :+: :+: # +# +:+ # +# By: W2Wizard +#+ # +# +#+ # +# Created: 2022/02/26 21:32:00 by W2Wizard #+# #+# # +# Updated: 2022/07/05 14:55:05 by jobvan-d ######## odam.nl # +# # +# **************************************************************************** # + +# While windows does have support for nmake it offers nowhere near the amount of +# features GnuWin does. + +#//= Colors =//# +# Nope :( + +CC := gcc # We need to explicitly mention GCC/CC here. +WINSTFU := > NUL 2>&1 # In some cases we want windows to just stfu + +# Switch file paths to windows \ delimiter +SHDR := $(subst /,\,$(SHDR)) +LIB := $(subst /,\,$(LIB)) +SRCS := $(subst /,\,$(SRCS)) +OBJS := $(subst /,\,$(OBJS)) +HDRS := $(subst /,\,$(HDRS)) + +#//= Make Rules =//# + +$(NAME): $(OBJS) + @ar rc $@ $^ + @echo Done + +%.o: %.c $(HDRS) + @echo Compiling: $(notdir $<) + @$(CC) $(CFLAGS) -o $@ -c $< $(HEADERS) + +# Convert shaders to .c files +$(SRC_DIR)\mlx_%_shader.c: $(SHADER_DIR)\default.% + @echo Shader to C: $< -^> $@ + @.\tools\compile_shader.bat $< > $@ + +clean: + @echo Cleaning + @del /F /Q $(OBJS) $(SHDR) $(WINSTFU) + +fclean: clean + @del /F /Q $(NAME) $(WINSTFU) diff --git a/mlx/README.md b/mlx/README.md new file mode 100644 index 0000000..87ff767 --- /dev/null +++ b/mlx/README.md @@ -0,0 +1,306 @@ +
      +

      + 42MLX_Logo +
      +
      + Written by W2.Wizard for the 42 Network +
      +
      + License GPL2.0 + Linux + MacOS + Windows + Build + Forks +
      +
      + +A recreation of the MiniLibX library used by 42, using GLFW & glad, running on OpenGL. +The goal of MLX42 is to replace the outdated and stale MiniLibX library. + +For information and documentation about MLX42 check the wiki. + +## Differences to MiniLibX + +#### Cross-Platform +The main idea of MLX42 is to be a cross-platform graphics interface. In 42 everything runs (currently) on MacOS, but it's +very useful to be able to work remotely on different machines. With MiniLibX this is not possible. + +#### Documented +Almost all functions and types are fully documented giving you a clue as to how to approach and use the library. +No more guessing and searching how something functions or is supposed to work. + +#### Custom XPM (XPM42) format +A custom simple to use XPM-like format which has some minor differences to the XPM3 format. + +#### Almost identical usage to MiniLibX +Switching to MLX42 from MiniLibX is not a lot of work, most features present in MiniLibX are also present in MLX42, albeit with different prototypes. + +--- + +## Installation + +In the very end a library is generated, compile your program with this library! + +### For MacOS: + +1. Download MLX42 +```bash +➜ ~ git clone https://github.com/codam-coding-college/MLX42.git +``` + +### Via [Homebrew](https://brew.sh/) / [Homebrew42](https://github.com/kube/42homebrew) by building from source. + +2. Install GLFW + +Through brew: +```bash +➜ ~ brew update +➜ ~ brew install glfw +``` + +If you're studying at Codam you can simply link GLFW normally since its now installed on the macs. + +3. [Download and build MLX42](#download-and-build---mlx42) + +4. Compile Program + +With the normal brew version you can now simply compile the program with: +```bash +➜ ~ gcc main.c libmlx42.a -lglfw ... +``` + +You might have to specify the location explicitly: +```bash +➜ ~ gcc main.c libmlx42.a -lglfw -L /opt/homebrew/Cellar/glfw/3.3.6/lib/ +``` + +However, with 42Homebrew you have additionally specify the location of the library like here: +```bash +➜ ~ gcc main.c libmlx42.a -I include -lglfw -L "/Users/$USER/.brew/opt/glfw/lib/" +``` + +Or, if studying at Codam, compile using the following flags: +```bash +➜ ~ gcc main.c libmlx42.a -I include -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit +``` + +5. Run! + +---- + +### Pre-compiled libraries (GLFW) + +2. Download the binaries directly [here](https://www.glfw.org/download.html). + +3. If possible move the contents of `lib` and `include` of GLFW to `/usr/local/lib` and `/usr/local/include` respectively. + If not possible, move the lib file to the root of MLX42 and move the GLFW directory in include to the include of MLX42. + NOTE: For the lib choose the appropriate `.a` & `.dylib` file depending on your architecture. + +4. [Download and build MLX42](#download-and-build---mlx42) + +When compiling with the static library, directly you should compile your program like this: +```bash +➜ ~ gcc main.c libmlx42.a libglfw3.a ... -framework Cocoa -framework OpenGL -framework IOKit +``` +Else, simply compile like this: +```bash +➜ ~ gcc main.c libmlx42.a -lglfw ... +``` + +5. Run + +In case of any security warnings or MacOS telling you it can't verify the author/developer, go to ```Settings > Security & Privacy```. +There will be a pop-up at the bottom telling you that an application tried to run, click the option to let it run. + +---- + +### For Linux: + +1. Install the necessary packages: + +For Debian like (Ubuntu, Mint, Pop OS...): +```bash +➜ ~ sudo apt update +➜ ~ sudo apt install build-essential libx11-dev libglfw3-dev libglfw3 xorg-dev +``` + +For Arch-linux (Manjaro, Endeavor, Garuda): +```bash +➜ ~ sudo pacman -S glfw-x11 +``` +OR (if you use sway/wlroots compositor or other wayland compositor) + +```bash +➜ ~ sudo pacman -S glfw-wayland +``` + +2. [Download and build MLX42](#download-and-build---mlx42) + +3. Create a ```main.c``` file, include ```MLX42/MLX42.h```, compile with ```-ldl -lglfw (or -lglfw3) -pthread -lm```, make sure to also do ```-I ```. + +4. Run. + +---- + +### For Windows (with Windows Subsystem for Linux 2 (WSL2)) + +1. Set these variables in your `.zshrc` or `.bashrc`: +```bash +export DISPLAY=$(ip route list default | awk '{print $3}'):0 +export LIBGL_ALWAYS_INDIRECT=0 +``` +(If the DISPLAY export command is failing, see this [StackOverflow](https://stackoverflow.com/a/61110604) post for alternatives) + +2. Download and install an XServer application with extended configuration (XMing does not qualify) +VcXsrv works: https://sourceforge.net/projects/vcxsrv/ + +3. Open Windows Defender Firewall, and follow these steps: +- Go to 'Allow an app or feature through Windows Defender Firewall' +- Change Settings +- Find the installed XServer, for VcXsrv that's 'VcXsrv windows server' +- Enable communication over Private **and** Public network +Optionally you might be able to provide these settings on first launch of the XServer application, +and they might not even show up in the list until the first time you start the app. + +4. Start the XLaunch application (for VcXsrv) and provide these configuration settings: +- Leave Display number on auto +- Start no client +- **UNTICK** `Native opengl` option +- **TICK** `Disable access control` +- Finish starting the server + +5. Probably all the other steps for Linux apply, just clone, build and run. + +---- + +### For Windows: + +1. Download & Install [MinGW](https://sourceforge.net/projects/mingw/) + +2. Simply click continue, select whatever your choice is. + Once reaching the MinGW Installation Manager select: + - mingw32-base + - mingw32-gcc-g++ + +3. Apply by going to `Installation > Apply Changes`, after it's done, you may close the window. + +4. Download & Install [CMake](https://cmake.org/download/). + - Use the installer and select all default options. + +5. For Windows we need to install an additional component to **make** the **make** command available. + + - Using the [chocolatey package manager](https://chocolatey.org/) + ```bash + ➜ ~ choco install make + ``` + + - Using [GnuWin](https://sourceforge.net/projects/gnuwin32/files/make/3.81/make-3.81.exe/download) (download & install) + +6. If you used all default options, add these paths to your SYSTEM Environment variables: + - C:\MinGW\bin + - C:\Program Files\CMake\bin + - C:\Program Files (x86)\GnuWin32\bin + +7. Download the [GLFW source package](https://www.glfw.org/download.html) and extract it somewhere. + +8. Open the terminal and type `cmake-gui`, select the downloaded/extracted + source folder, select any place you want the build output to be. + +9. Click on configure once and select the `MinGW Makefiles`, then finish. + +10. Set the CMAKE_INSTALL_PREFIX to `C:/GLFW` + +11. Click on configure again, and then generate. + +12. Go to the build directory and do: + - `make` + - `make install` + +13. Go to the directory you assigned in Step 10. Copy the GLFW folder in the include folder to `C:\MinGW\include` & copy the .a file in the lib folder to `C:\MinGW\lib`. + +14. [Download and build MLX42](#download-and-build---mlx42) + +15. Compile your program with these flags: + - `-lglfw3` + - `-lopengl32` + - `-lgdi32` + + In the end you should have something like: +```bash +➜ ~ gcc main.c libmlx42.a -lglfw3 -lopengl32 -lgdi32 +``` + +15. Run. + +## Download and build - MLX42 + +```bash +➜ ~ git clone https://github.com/codam-coding-college/MLX42.git +➜ ~ cd MLX42 +➜ ~ make +``` + +The output library file is called `libmlx42.a`. + +## Example + +![MLX42](https://user-images.githubusercontent.com/63303990/150696516-95b3cd7b-2740-43c5-bdcd-112193d59e14.gif) + +```c +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* main.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/01/31 00:40:08 by W2Wizard #+# #+# */ +/* Updated: 2022/01/31 00:41:56 by W2Wizard ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42.h" +#include +#include +#include +#include +#define WIDTH 256 +#define HEIGHT 256 + +mlx_image_t *g_img; + +void hook(void *param) +{ + mlx_t *mlx; + + mlx = param; + if (mlx_is_key_down(mlx, MLX_KEY_ESCAPE)) + mlx_close_window(mlx); + if (mlx_is_key_down(mlx, MLX_KEY_UP)) + g_img->instances[0].y -= 5; + if (mlx_is_key_down(mlx, MLX_KEY_DOWN)) + g_img->instances[0].y += 5; + if (mlx_is_key_down(mlx, MLX_KEY_LEFT)) + g_img->instances[0].x -= 5; + if (mlx_is_key_down(mlx, MLX_KEY_RIGHT)) + g_img->instances[0].x += 5; +} + +int32_t main(void) +{ + mlx_t *mlx; + + mlx = mlx_init(WIDTH, HEIGHT, "MLX42", true); + if (!mlx) + exit(EXIT_FAILURE); + g_img = mlx_new_image(mlx, 128, 128); + memset(g_img->pixels, 255, g_img->width * g_img->height * sizeof(int)); + mlx_image_to_window(mlx, g_img, 0, 0); + mlx_loop_hook(mlx, &hook, mlx); + mlx_loop(mlx); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} + +``` diff --git a/mlx/SECURITY.md b/mlx/SECURITY.md new file mode 100644 index 0000000..32525c3 --- /dev/null +++ b/mlx/SECURITY.md @@ -0,0 +1,13 @@ +# Security Policy + +## Supported Versions + +| Version | Supported | +| ------- | ------------------ | +| 2.x.x | ✅ | +| 1.0.x | ❌ | + +## Reporting a Vulnerability + +For security issues please refrain from opening an issue! +Instead write an email to [main@w2wizard.dev](mailto:main@w2wizard.dev) diff --git a/mlx/VERSION.md b/mlx/VERSION.md new file mode 100644 index 0000000..04d9a05 --- /dev/null +++ b/mlx/VERSION.md @@ -0,0 +1,7 @@ +# Version + +## Current Version: 2.2.1 + +--- + +## Latest: License GPL2.0 Build diff --git a/mlx/docs/Basics.md b/mlx/docs/Basics.md new file mode 100644 index 0000000..6c0689b --- /dev/null +++ b/mlx/docs/Basics.md @@ -0,0 +1,138 @@ + + +# Basics + +Before starting please read the [index page](./index.md). +Starting with MLX42 is very straightforward. Here we will make a simple program that will use a makefile and compile +MLX42. + +## Makefile Example + +If you're curious as to how to configure a makefile with MLX42 here is a Makefile example from a project. +Use this as a guide on how to compile MLX42 and use it in your application. + +First of all we need a makefile that can compile our program, below you can see a sample makefile: + +```makefile +NAME := Game +CFLAGS := -Wextra -Wall -Werror -Wunreachable-code -Ofast +LIBMLX := ./lib/MLX42 + +HEADERS := -I ./include -I $(LIBMLX)/include +LIBS := $(LIBMLX)/libmlx42.a -ldl -lglfw -pthread -lm +SRCS := $(shell find ./src -iname "*.c") +OBJS := ${SRCS:.c=.o} + +all: libmlx $(NAME) + +libmlx: + @$(MAKE) -C $(LIBMLX) + +%.o: %.c + @$(CC) $(CFLAGS) -o $@ -c $< $(HEADERS) && printf "Compiling: $(notdir $<)" + +$(NAME): $(OBJS) + @$(CC) $(OBJS) $(LIBS) $(HEADERS) -o $(NAME) + +clean: + @rm -f $(OBJS) + @$(MAKE) -C $(LIBMLX) clean + +fclean: clean + @rm -f $(NAME) + @$(MAKE) -C $(LIBMLX) fclean + +re: clean all + +.PHONY: all, clean, fclean, re, libmlx +``` + +## Main + +Below is a simple main into starting a window. MLX42 has several nice features that allow you to predefine how it should behave during runtime such as `MLX_HEADLESS` running it without opening a window or `MLX_STRETCH_IMAGE` which stretches the window content with the window size. + +The exact structure `mlx_init()` is basically a handle that stores important information +regarding the window and looks as follows: + +```c +/** + * Main MLX handle, carries important data in regards to the program. + * @param window The window itself. + * @param context Abstracted opengl data. + * @param width The width of the window. + * @param height The height of the window. + * @param delta_time The time difference between the previous frame and the current frame. + */ +typedef struct mlx +{ + void* window; + void* context; + int32_t width; + int32_t height; + double delta_time; +} mlx_t; +``` + +Between initializations you can do everything that is required such as drawing your image or opening files. +Once `mlx_loop()` is reached the program remains open until a shutdown is somehow requested, e.g: closing the window. + +Because we want programs to be interactive and do stuff it's very useful to hook into the looping process of `mlx_loop()`. +In order to achieve this we use [hooks](./Hooks.md). + +`NOTE: Compile MLX42 with DEBUG=1 to see assertions and to add debug flags. This can help you find critical mistakes during development!` + +```c +// Written by Bruh + +#include +#include +#include +#include "MLX42/MLX42.h" +#define WIDTH 256 +#define HEIGHT 256 + +// Exit the program as failure. +static void ft_error(void) +{ + fprintf(stderr, "%s", mlx_strerror(mlx_errno)); + exit(EXIT_FAILURE); +} + +// Print the window width and height. +static void ft_hook(void* param) +{ + const mlx_t* mlx = param; + + printf("WIDTH: %d | HEIGHT: %d\n", mlx->width, mlx->height); +} + +int32_t main(void) +{ + + // MLX allows you to define its core behaviour before startup. + mlx_set_setting(MLX_MAXIMIZED, true); + mlx_t* mlx = mlx_init(WIDTH, HEIGHT, "42Balls", true); + if (!mlx) + ft_error(); + + /* Do stuff */ + + // Create and display the image. + mlx_image_t* img = mlx_new_image(mlx, 256, 256); + if (!img || (mlx_image_to_window(mlx, img, 0, 0) < 0)) + ft_error(); + + // Even after the image is being displayed, we can still modify the buffer. + mlx_put_pixel(img, 0, 0, 0xFF0000FF); + + // Register a hook and pass mlx as an optional param. + // NOTE: Do this before calling mlx_loop! + mlx_loop_hook(mlx, ft_hook, mlx); + mlx_loop(mlx); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} +``` diff --git a/mlx/docs/Colors.md b/mlx/docs/Colors.md new file mode 100644 index 0000000..f3bbc84 --- /dev/null +++ b/mlx/docs/Colors.md @@ -0,0 +1,100 @@ + + +# Colors +Colors are a fundamental concept in graphics programming. A common color model is RGBA, which MLX uses for storing and displaying images. + +## Composition +Colors are commonly represented as `4-byte` integers. This 4-byte integer is a grouping of four individual channels: red, green, blue and alpha, with alpha representing transparency. Additionally, colors are usually shown in hexadecimal to make each channel value identifiable: + +Channel | Description | RGBA representation +:------:|:-------------:|:-------------------: +`R` | Red Channel | `0xFF000000` +`G` | Green Channel | `0x00FF0000` +`B` | Blue Channel | `0x0000FF00` +`A` | Alpha Channel | `0x000000FF` + +Combining these four channel values into one will result in a non-transparent, white color. + +## Encoding & Decoding + +In order to set each channel's byte we can use bit-shifting operations. + +A function that combines four individual channel bytes into a single integer using bit-shifting looks like this: + +```c +// 'Encodes' four individual bytes into an int. +int get_rgba(int r, int g, int b, int a) +{ + return (r << 24 | g << 16 | b << 8 | a); +} +``` + +We can also do this in reverse to retrieve each individual byte again: + +```c +// Get the red channel. +int get_r(int rgba) +{ + // Move 3 bytes to the right and mask out the first byte. + return ((rgba >> 24) & 0xFF); +} + +// Get the green channel. +int get_g(int rgba) +{ + // Move 2 bytes to the right and mask out the first byte. + return ((rgba >> 16) & 0xFF); +} + +// Get the blue channel. +int get_b(int rgba) +{ + // Move 1 byte to the right and mask out the first byte. + return ((rgba >> 8) & 0xFF); +} + +// Get the alpha channel. +int get_a(int rgba) +{ + // Move 0 bytes to the right and mask out the first byte. + return (rgba & 0xFF); +} +``` + +## Example + +In this small example we will create a white image: + +```c +#include "MLX42/MLX42.h" + +// Bytes Per Pixel. Since each pixel is represented as an integer, it will be four bytes for four channels. +#define BPP sizeof(int32_t) + +int32_t main(void) +{ + // Init mlx with a canvas size of 256x256 and the ability to resize the window. + mlx_t* mlx = mlx_init(256, 256, "MLX42", true); + + if (!mlx) exit(EXIT_FAILURE); + + // Create a 128x128 image. + mlx_image_t* img = mlx_new_image(mlx, 128, 128); + + // Set the channels of each pixel in our image to the maximum byte value of 255. + memset(img->pixels, 255, img->width * img->height * BPP); + + // Draw the image at coordinate (0, 0). + mlx_image_to_window(mlx, img, 0, 0); + + // Run the main loop and terminate on quit. + mlx_loop(mlx); + mlx_terminate(mlx); + + return (EXIT_SUCCESS); +} + +``` \ No newline at end of file diff --git a/mlx/docs/Functions.md b/mlx/docs/Functions.md new file mode 100644 index 0000000..1c9a254 --- /dev/null +++ b/mlx/docs/Functions.md @@ -0,0 +1,8 @@ + + +# Functions + +A list of all functions can be found here: [Functions](https://bit.ly/3aWZL7C) \ No newline at end of file diff --git a/mlx/docs/Hooks.md b/mlx/docs/Hooks.md new file mode 100644 index 0000000..152b74c --- /dev/null +++ b/mlx/docs/Hooks.md @@ -0,0 +1,229 @@ + + +# Hooks in MLX42 + +Hooks allow you to add your own functions to the main loop execution of the program, aka these functions get executed every frame. +They also serve to intercept certain keypresses such as scrolling or pressing enter. + +Only one hook can be set at a time! You cannot attach/have multiple hooks for specialized hooks. +You can however have multiple generic hooks. + +## Specialized Hooks + +### Scroll hook +```c + +/** + * Callback function used to handle scrolling. + * + * @param[in] x The mouse x delta. + * @param[in] y The mouse y delta. + * @param[in] param Additional parameter to pass to the function. + */ +typedef void (*mlx_scrollfunc)(double xdelta, double ydelta, void* param); + +/** + * This function sets the scroll callback, which is called when a scrolling + * device is used, such as a mouse wheel. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The scroll wheel callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_scroll_hook(mlx_t* mlx, mlx_scrollfunc func, void* param); +``` + +### Close Hook + +```c + +/** + * Callback function used to handle window closing which is called when the user attempts + * to close the window, for example by clicking the close widget in the title bar. + * + * @param[in] param Additional parameter to pass to the function. + */ +typedef void (*mlx_closefunc)(void* param); + +/** + * This function sets the close callback, which is called in attempt to close + * the window device such as a close window widget used in the window bar. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The close callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_close_hook(mlx_t* mlx, mlx_closefunc func, void* param); +``` + +### Resize Hook + +```c + +/** + * Callback function used to handle window resizing. + * + * @param[in] width The new width of the window. + * @param[in] height The new height of the window. + * @param[in] param Additional parameter to pass to the function. + */ +typedef void (*mlx_resizefunc)(int32_t width, int32_t height, void* param); + +/** + * This function sets the resize callback, which is called when the window is + * resized + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The resize callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_resize_hook(mlx_t* mlx, mlx_resizefunc func, void* param); +``` + +### Key hook + +Use a key hook if you want single keypress detection or more precision as to how a key is pressed, such as checking for modifier keys or getting the raw os keycode. + +```c + +/** + * Key function callback data. + * Data related to the mlx_key_hook function + * + * @param key The key that was pressed. + * @param action The action that was done with the key. + * @param os_key The os_key is unique for every key, and will have a + * different value/keycode depending on the platform. + * They may be consistent on different platforms. + * @param modifier The modifier key that was pressed, 0 if none. + */ +typedef struct mlx_key_data +{ + keys_t key; + action_t action; + int32_t os_key; + modifier_key_t modifier; +} mlx_key_data_t; + + +/** + * Callback function used to handle keypresses. + * + * @param[in] keydata The callback data, contains info on key, action, ... + * @param[in] param Additional parameter to pass to the function. + */ +typedef void (*mlx_keyfunc)(mlx_key_data_t keydata, void* param); + +/** + * This function sets the key callback, which is called when a key is pressed + * on the keyboard. Useful for single key press detection. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The key press callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_key_hook(mlx_t* mlx, mlx_keyfunc func, void* param); +``` + +## Generic Hook + +Generic hooks execute each frame and are useful for stuff that needs to be updated every frame. + +```c +/** + * Generic loop hook for any custom hooks to add to the main loop. + * Executes a function per frame, so be careful. + * + * @param[in] mlx The MLX instance handle. + * @param[in] f The function. + * @param[in] param The parameter to pass onto the function. + * @returns Wether the hook was added successfuly. + */ +bool mlx_loop_hook(mlx_t* mlx, void (*f)(void*), void* param); +``` + +# Examples + +Here are some simple examples on how to implement each one of the hooks in a simple fashion. + +## Key Hook + +```c + +#include +#include +#include +#include "MLX42/MLX42.h" +#define WIDTH 720 +#define HEIGHT 480 + +void my_keyhook(mlx_key_data_t keydata, void* param) +{ + // If we PRESS the 'J' key, print "Hello". + if (keydata.key == MLX_KEY_J && keydata.action == MLX_PRESS) + puts("Hello "); + + // If we RELEASE the 'K' key, print "World". + if (keydata.key == MLX_KEY_K && keydata.action == MLX_RELEASE) + puts("World"); + + // If we HOLD the 'L' key, print "!". + if (keydata.key == MLX_KEY_L && keydata.action == MLX_REPEAT) + puts("!"); +} + +int32_t main(void) +{ + mlx_t* mlx; + + if (!(mlx = mlx_init(WIDTH, HEIGHT, "MLX42", true))) + return (EXIT_FAILURE); + + mlx_key_hook(mlx, &my_keyhook, NULL); + mlx_loop(mlx); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} +``` + +## Scroll Example + +```c +#include +#include +#include +#include "MLX42/MLX42.h" +#define WIDTH 720 +#define HEIGHT 480 + +void my_scrollhook(double xdelta, double ydelta, void* param) +{ + // Simple up or down detection. + if (ydelta > 0) + puts("Up!"); + else if (ydelta < 0) + puts("Down!"); + + // Can also detect a mousewheel that go along the X (e.g: MX Master 3) + if (xdelta < 0) + puts("Sliiiide to the left!"); + else if (xdelta > 0) + puts("Sliiiide to the right!"); +} + +int32_t main(void) +{ + mlx_t* mlx; + + if (!(mlx = mlx_init(WIDTH, HEIGHT, "MLX42", true))) + return (EXIT_FAILURE); + + mlx_scroll_hook(mlx, &my_scrollhook, NULL); + mlx_loop(mlx); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} +``` diff --git a/mlx/docs/Images.md b/mlx/docs/Images.md new file mode 100644 index 0000000..bdf0eaf --- /dev/null +++ b/mlx/docs/Images.md @@ -0,0 +1,122 @@ + + +# Images + +Images are like a canvas for a painting, they are used to display pixel information onto the window and work with something called instances. +Instances are copies of the canvas and let you display an image multiple times throughout the window. The idea behind it is that you already +have the pixel information in memory and you can simply create duplicates everywhere. + +Each instance has an X, Y and Z parameter to determine their position and depth. +A change in the image's buffer results in a change for all currently displayed instances. + +An image on its own is very simple: +```c +/** + * An image with an individual buffer that can be rendered. + * Any value can be modified except the width/height and context. + * + * @param width The width of the image. + * @param height The height of the image. + * @param pixels The literal pixel data. + * @param instances An instance carries the X, Y, Z location data. + * @param count The element count of the instances array. + * @param enabled If true the image is drawn onto the screen, else it's not. + * @param context Abstracted OpenGL data. + */ +typedef struct mlx_image +{ + const uint32_t width; + const uint32_t height; + uint8_t* pixels; + mlx_instance_t* instances; + int32_t count; + bool enabled; + void* context; +} mlx_image_t; +``` + +To display the image all that is needed is to call the `mlx_image_to_window` function to create a new copy/instance: +```c +#include +#include +#include +#include +#include "MLX42/MLX42.h" +#define WIDTH 5120 +#define HEIGHT 2880 + +static void error(void) +{ + puts(mlx_strerror(mlx_errno)); + exit(EXIT_FAILURE); +} + +int32_t main(void) +{ + // Start mlx + mlx_t* mlx = mlx_init(WIDTH, HEIGHT, "Test", true); + if (!mlx) + error(); + + // Create a new image + mlx_image_t* img = mlx_new_image(mlx, 512, 512); + if (!img) + error(); + + // Set every pixel to white + memset(img->pixels, 255, img->width * img->height * sizeof(int32_t)); + + // Display an instance of the image + if (mlx_image_to_window(mlx, img, 0, 0) < 0) + error(); + + mlx_loop(mlx); + + // Optional, terminate will clean up any left overs, this is just to demonstrate. + mlx_delete_image(mlx, img); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} +``` + +After we have put an instance of an image onto the window we can simply change the position of the image at any time +we want it to be moved: +```c +// Modify the x & y position of an already existing instance. +img->instances[0].x += 5; +img->instances[0].y += 5; +``` + +## Transparency +In regards to transparency, aka the `z` value, use `mlx_set_instance_depth` to set the z/depth value of the image. +The z value determines the depth of the image, as in, is it in the foreground or background. + +If two instances are on the same z layer and are transparent, the transparency breaks and the instances cut off each other. +To prevent this by default any new instances put onto window will be on their own layer. + +## Internals +A noticeable feature of MLX42 is that it partly takes care of the rendering for you, that is, after you created your image you just display it +and after that feel free to modify it without having to re-put it onto the window. In short MLX takes care of updating your images at all times. + +Internally this is done via a render queue, anytime the `mlx_image_to_window` function is used, a new entry is added to a linked list. +Every frame MLX will iterate over this linked list and execute a drawcall to draw that image onto the window. + +## Common functions + +```c +// Creates a whole new image. +mlx_image_t* mlx_new_image(mlx_t* mlx, uint16_t width, uint16_t height) +``` + +```c +// Creates a new instance/copy of an already existing image. +void mlx_image_to_window(mlx_image_t* img, int32_t x, int32_t y) +``` + +```c +// Deletes an image and removes it from the render queue. +void mlx_delete_image(mlx* mlx, mlx_image_t* image) +``` diff --git a/mlx/docs/Input.md b/mlx/docs/Input.md new file mode 100644 index 0000000..3b7fa8d --- /dev/null +++ b/mlx/docs/Input.md @@ -0,0 +1,47 @@ + + +# Input methods + +MLX42 provides various ways of detecting input, you can read about all the available hooks on the hooks page. + +## Key Detection + +### Generic Hook + function + +The easiest way of detecting continuous keypressing is via a generic hook and then checking if the specific key is down. +This is the 'traditional' way of detecting if a key is down even in modern game engines. It provides the quickest feedback and if it's used to, say, move a character, the smoothest result. + +```c +void hook(void *param) +{ + mlx_t *mlx; + + mlx = param; + if (mlx_is_key_down(param, MLX_KEY_ESCAPE)) + mlx_close_window(param); + if (mlx_is_key_down(param, MLX_KEY_UP)) + g_img->instances[0].y -= 5; + if (mlx_is_key_down(param, MLX_KEY_DOWN)) + g_img->instances[0].y += 5; + if (mlx_is_key_down(param, MLX_KEY_LEFT)) + g_img->instances[0].x -= 5; + if (mlx_is_key_down(param, MLX_KEY_RIGHT)) + g_img->instances[0].x += 5; +} +``` + +### Hook Function + +For more exact input detection such as checking if the key was pressed with `Alt` or `ctrl` you should use the actual Key hook. +Keep in mind that using a keyhook results in a slower feedback compared to using a generic hook but grants you more control in key detection. + +```c +void key_hook(mlx_key_data_t keydata, void* param) +{ + if (keydata.key == MLX_KEY_A && keydata.action == MLX_RELEASE && keydata.modifier == MLX_CONTROL) + puts("Gotta grab it all!"); +} +``` \ No newline at end of file diff --git a/mlx/docs/Shaders.md b/mlx/docs/Shaders.md new file mode 100644 index 0000000..6df4339 --- /dev/null +++ b/mlx/docs/Shaders.md @@ -0,0 +1,37 @@ + + +# Shaders + +In computer graphics, a shader is a type of computer program used for shading in 3D/2D scenes (the production of appropriate levels of light, darkness, and color in a rendered image). MLX42 exposes the shaders and compiles them into the library for portability. + +```glsl + +// Example of shader code, GLSL is similar to C but not quite. + +#version 330 core + +layout(location = 0) in vec3 aPos; +layout(location = 1) in vec2 aTexCoord; + +out vec2 TexCoord; +uniform mat4 ProjMatrix; + +void main() +{ + gl_Position = ProjMatrix * vec4(aPos, 1.0); + TexCoord = aTexCoord; +} + +``` + +## Beware + +Shaders aren't really meant to be used by students but are more there for the convenience of developers. (though some advanced students might make some use of them) + +# Compiliation + +Shaders are converted into a `.c` appropriate format and then compiled into the library and referenced via a `extern` global variable appropriately named `vert_shader` & `frag_shader`. The reason this is done is to keep the final game/executable portable, that is being able to use it at any given location within a filesystem, while still being easy to work on the shaders instead of having to mess with it in the `.c` files directly. + diff --git a/mlx/docs/Textures.md b/mlx/docs/Textures.md new file mode 100644 index 0000000..ce3ea30 --- /dev/null +++ b/mlx/docs/Textures.md @@ -0,0 +1,82 @@ + + +# Textures + +Textures are disk loaded images stored in memory and hold a buffer of pixel data along with information +about the image such as width, height, and bytes per pixel. + +Textures on their own are not displayed to the screen but have to be displayed using [Images](./Images.md). +To do so you can use the `mlx_texture_to_image` function that creates an image large enough to store the +texture which then can be displayed. + +## Textures vs Images + +There might be a bit of confusion at first between what an image and a texture is. + +Textures: +* Can be interpreted as a painter's "color palette". +* Created by loading an image file FROM disk. +* Simply contain the pixels, width, height and bytes per pixel information. +* Do not get displayed on the window directly. + +Images: +* Can be interpreted as a painter's "canvas". +* Can be created FROM a texture or an empty buffer! +* Carries more information besides what the image buffer is such as instance count. +* Also holds pixel data but is shared among its instances, it is not loaded from disk but stored in memory. + +## Example + +To summarize, in order to display a sprite image onto our window we would first load the texture from +disk into our memory and store the information in a `mlx_texture_t*`. After that we create a new `mlx_image_t*` +based on the information given by the texture and then we can display our image onto the window. + +Below is a small code example of how this would be achieved: + +```C +#include +#include +#include +#include "MLX42/MLX42.h" +#define WIDTH 512 +#define HEIGHT 512 + +static void error(void) +{ + puts(mlx_strerror(mlx_errno)); + exit(EXIT_FAILURE); +} + +int32_t main(void) +{ + // Start mlx + mlx_t* mlx = mlx_init(WIDTH, HEIGHT, "Test", true); + if (!mlx) + error(); + + // Try to load the file + mlx_texture_t* texture = mlx_load_png("./temp/sus.png"); + if (!texture) + error(); + + // Convert texture to a displayable image + mlx_image_t* img = mlx_texture_to_image(mlx, texture); + if (!img) + error(); + + // Display the image + if (mlx_image_to_window(mlx, img, 0, 0) < 0) + error(); + + mlx_loop(mlx); + + // Optional, terminate will clean up any left overs, this is just to demonstrate. + mlx_delete_image(mlx, img); + mlx_delete_texture(texture); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} +``` diff --git a/mlx/docs/XPM42.md b/mlx/docs/XPM42.md new file mode 100644 index 0000000..954d666 --- /dev/null +++ b/mlx/docs/XPM42.md @@ -0,0 +1,92 @@ + + +# XPM42 + +XPM42 is a custom file format made for MLX42 to provide a easy to use and understand image file format to learn how +images can be stored. The format is based on the actual [XPM3](https://en.wikipedia.org/wiki/X_PixMap) format. + +A XPM file basically stores a look-up table inside of it to fetch which character corresponds to which color. Additionally in the +header there is a character per pixel count, this is due to the limitation of the amount of characters. Each 'Pixel' in the XPM data can +be represented by multiple characters. + +For example `*.` would be viewed as a single pixel if the characters per pixel count was 2. + +## Layout + +The file format looks as follows: + +``` +!XPM42 <- File declaration +16 7 2 1 c <- Width | Height | Color count | Characters per Pixel | Mode (C: Color or M: Monochrome) +* #FF0000FF <- Entry always: Colors MUST have all four channels (RGBA) +. #00000000 +**..*........... <- Literal pixel data +*.*.*........... +**..*..**.**..** +*.*.*.*.*.*..*.* +**..*..**.*...** +...............* +.............**. +``` + +## Inner workings + +Reading a XPM42 does a whole bunch of stuff but in essence it reads the file header and inserts each color entry into a hash table for fast lookups of the color value, the hash used is FNV-1a. Why, because it's an easy to use hash and also my favourite. After the header is read and the color values are inserted into the table each line is then read and each character is processed and inserted into the pixel buffer of the XPM. There is no collision checking for the look-up table, so artefacts may be present. + +## Tools + +In the root of the repository is a tools directory in which a python script can convert an existing XPM3 file to XPM42. +Use this script if you wish to use the XPM42 file format. + +## Example + +```C +#include +#include +#include +#include "MLX42/MLX42.h" +#define WIDTH 5120 +#define HEIGHT 2880 + +static void error(void) +{ + puts(mlx_strerror(mlx_errno)); + exit(EXIT_FAILURE); +} + +int32_t main(void) +{ + // Start mlx + mlx_t* mlx = mlx_init(WIDTH, HEIGHT, "Test", true); + if (!mlx) + error(); + + // Try to load the file + xpm_t* xpm = mlx_load_xpm42("./temp/42.xpm42"); + if (!xpm) + error(); + + // Convert texture to a displayable image + mlx_image_t* img = mlx_texture_to_image(mlx, &xpm->texture); + if (!img) + error(); + + // Display the image + if (mlx_image_to_window(mlx, img, 0, 0) < 0) + error(); + + mlx_loop(mlx); + + // Optional, terminate will clean up any left overs, this is just to demonstrate. + mlx_delete_image(mlx, img); + mlx_delete_xpm42(xpm); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} +``` + + +![Example](./assets/XPM_Demo.png) diff --git a/mlx/docs/assets/XPM_Demo.png b/mlx/docs/assets/XPM_Demo.png new file mode 100644 index 0000000000000000000000000000000000000000..0be29f77485fa8c5e96b144d4cf0eadeefecd74a GIT binary patch literal 356244 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

      a_mNNqS)A5j%KJMg3H?I>-Y|1a!A|iI@?R}(X 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 literal 0 HcmV?d00001 diff --git a/mlx/docs/index.md b/mlx/docs/index.md new file mode 100644 index 0000000..166b50a --- /dev/null +++ b/mlx/docs/index.md @@ -0,0 +1,131 @@ + + +
      +

      + 42MLX_Logo +
      +
      + Written by W2.Wizard for the 42 Network +
      +
      + +
      +

      Welcome to the MLX42 documentation

      +
      + +# Introduction + +MLX42 is a performant, easy to use, cross-platform windowing library to create +graphical applications without having to work directly with the native Windowing +Framework of the given operating system. + +Additionally it provides primitive tools for drawing onto the window such as +displaying images from disk or creating a drawing surface to draw pixels on. + +--- + +## Toc + +* [Basics](./Basics.md) +* [Colors](./Colors.md) +* [Hooks](./Hooks.md) +* [Images](./Images.md) +* [Input](./Input.md) +* [Shaders](./Shaders.md) +* [Textures](./Textures.md) +* [XPM42](./XPM42.md) + +--- + +## Support + +Currently supported operating systems: +| Operating system | Version | +|------------------ |--------------------------------------------- | +| `Windows NT` | Windows 7 - Windows 11 | +| `MacOS` | Mojave - Monterey (Including Apple Silicon) | +| `Linux` | Anything running X11 / Wayland | + +## Initialization + +The very first step for initialization is to execute the mlx_init function. +It is responsible for setting up the GLFW windowing library which +creates a connection between your software and the display. It also loads the +OpenGL function pointers, compiling the shaders and more. + +It returns a mlx_t* which is a structure containing the current window instance. +With this instance you can manipulate, hook onto and control what happens inside +your window instance. For example you would use it to send graphical orders such as +creating an image, which is used to display pixel data. You can also detect key +interactions such as checking if the W, A, S or D key is currently being pressed. + +| Function | Description | +|-------------------|--------------------------------------------------------------| +| `mlx_init()` | Initialize and run a new window instance. | +| `mlx_loop()` | Keep the window open as long as a shutdown is not requested. | +| `mlx_terminate()` | Destroy and cleanup all images and mlx resources. | + +If mlx_init() fails to set up the connection to the graphical system, it will +return NULL, otherwise a non-null pointer is returned as a handle for the window. + +## Linking + +In order to use the functions in MLX, you'll need to link it with your application. + +To do this, simply add the following arguments at the linking stage: +| Operating System | Flags | +|------------------|---------------------------------------------------------------| +| `Windows NT` | -lglfw3 -lopengl32 -lgdi32 | +| `MacOS` | -lglfw(3) -framework Cocoa -framework OpenGL -framework IOKit | +| `Linux` | -ldl -lglfw(3) -pthread -lm | + +**NOTE: For some UNIX systems the flag for glfw might be with or without a 3 at the end.** + +## Debugging + +MLX was designed with ease of debugging in mind, therefore if the project is built with +**make DEBUG=1** it will keep in the assertion macros and notify you of any bad input +given to functions. Additionally it comes with its own runtime error checking via +**mlx_errno** and **mlx_strerror** to properly identify what went wrong during the runtime +of the library. + +## Notes + +Keep in mind that while technically MLX42 +does support multiple window instances it currently has no functional support for +it. That is, no proper way of handling multiple windows. + +--- + +## F.A.Q + +Q: **_"ItS NoT In ThE SuBjeCt!"_** + +A: So what? Subjects can change and so if something is not working correctly it should be replaced. Sure you can argue this point but you can also be the reason that it CAN be in the subject instead. Have an open mind :) + +Q: **_"Ok, so, can I use it ?"_** + +A: Officially, _no_. However, ask your head of studies first about using it, see what they think. Some students might be evangelical enthusiasts about what is stated in the subject and are technically in every right to fail you as long as this library is not endorsed, if you were to ask me (W2) then yes why not? + +Q: **_"Is it faster?"_** + +A: From my personal projects there was a considerable peformance gain, especially when compiled with `-Ofast`. Projects such as FDF could rotate their maps mindblowingly smooth and even larger maps with a width and height of 1000+ points moved/rotated relatively smooth, in short, yes. + +Q: **_"Can I just drag and drop it into my old project and just not do anything?"_** + +A: Well, um uh, no ?? That's not how libraries work. Sure they target and do sort of the same thing but the functions each library provides are too different, even a little bit in terms of behavior. And no there is no easy way to convert from the "old" to the "new" it will be somewhat tedious work. + +Q: **_"We should be able to deal with the fact that MiniLibX is not perfect, it is by design and makes us better programmers."_** + +A: Struggle does bring out the best in most people but it is also not ideal in this case. I think so at least, that it's really expected that libraries that are publicly available should be usable, stable, easy to use and well documented. Nobody uses a library because it is annoying to work with and afterwards think to themselves they have learned something after they are done struggling. The only thing people learn from this is how to navigate around the shortcomings instead. + +Q: **_"Why not use some other library? Why this one and not any other library."_** + +A: It is your choice what to use! I wrote this in my free time in an attempt to introduce some good change and to improve the learning experience at 42. If you don't like my library at least let me know what it is so I can improve on it. + +Q: **_"Do you hate MiniLibX? Is this some personal vendetta, do you work for the CIA ?"_** + +A: No, I just want to improve 42, that's it. diff --git a/mlx/include/KHR/khrplatform.h b/mlx/include/KHR/khrplatform.h new file mode 100644 index 0000000..0164644 --- /dev/null +++ b/mlx/include/KHR/khrplatform.h @@ -0,0 +1,311 @@ +#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 + * 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 + */ +#include +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 + */ +#include +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 +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/mlx/include/MLX42/MLX42.h b/mlx/include/MLX42/MLX42.h new file mode 100644 index 0000000..e78eb4c --- /dev/null +++ b/mlx/include/MLX42/MLX42.h @@ -0,0 +1,727 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* MLX42.h :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 00:33:01 by W2Wizard #+# #+# */ +/* Updated: 2022/08/10 13:00:48 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +/** + * A cross-platform OpenGL graphics library based on the idea on what MiniLibX + * provides. Just quite a bit better, in terms of code quality & performance. + * + * As for the few void* present in some structs and functions and + * why MLX is split into two different headers, so to speak, + * is mainly for abstraction. Most users won't have a need for the inner + * workings of MLX (shaders, ...) and it also helps keep MLX nice and tidy. + */ + +#ifndef MLX42_H +# define MLX42_H +# include +# include +# include "MLX42_Input.h" +# ifdef __cplusplus +extern "C" { +# endif + +/** + * Base object for disk loaded textures. + * It contains rudementary information about the texture. + * + * @param width The width of the texture. + * @param height The height of the texture. + * @param pixels The literal pixel data. + * @param bytes_per_pixel The amounst of bytes in a pixel, always 4. + */ +typedef struct mlx_texture +{ + uint32_t width; + uint32_t height; + uint8_t bytes_per_pixel; + uint8_t* pixels; +} mlx_texture_t; + +/** + * Struct containing data regarding an XPM image. + * + * @param texture The texture data of the XPM. + * @param color_count The amount of colors available. + * @param cpp The amount of characters per pixel. + * @param mode The color mode, either (c)olor or (m)onochrome. + */ +typedef struct xpm +{ + mlx_texture_t texture; + int32_t color_count; + int32_t cpp; + char mode; +} xpm_t; + +/** + * An image instance can be summarized as just a simple + * x, y & z coordinate. + * + * Coordinates start from the top left of the screen at 0,0 and increase + * towards the bottom right. + * + * NOTE: To change the z value, use mlx_set_instance_depth! + * + * @param x The x location. + * @param y The y location. + * @param z The z depth, controls if the image is on the fore or background. + * @param enabled If true, the instance is drawn else its not. + */ +typedef struct mlx_instance +{ + int32_t x; + int32_t y; + int32_t z; + bool enabled; +} mlx_instance_t; + +/** + * Key function callback data. + * Data related the mlx_key_hook function + * + * @param key The key that was pressed. + * @param action The action that was done with the key. + * @param os_key The os_key is unique for every key, and will have a + * different value/keycode depending on the platform. + * They may be consistent on different platforms. + * @param modifier The modifier key that was pressed, 0 if none. + */ +typedef struct mlx_key_data +{ + keys_t key; + action_t action; + int32_t os_key; + modifier_key_t modifier; +} mlx_key_data_t; + +/** + * An image with an individual buffer that can be rendered. + * Any value can be modified except the width/height and context. + * + * @param width The width of the image. + * @param height The height of the image. + * @param pixels The literal pixel data. + * @param instances An instance carries the X, Y, Z location data. + * @param count The element count of the instances array. + * @param enabled If true the image is drawn onto the screen, else its not. + * @param context Abstracted OpenGL data. + */ +typedef struct mlx_image +{ + const uint32_t width; + const uint32_t height; + uint8_t* pixels; + mlx_instance_t* instances; + int32_t count; + bool enabled; + void* context; +} mlx_image_t; + +/** + * Main MLX handle, carries important data in regards to the program. + * @param window The window itself. + * @param context Abstracted opengl data. + * @param width The width of the window. + * @param height The height of the window. + * @param delta_time The time difference between the previous frame + * and the current frame. + */ +typedef struct mlx +{ + void* window; + void* context; + int32_t width; + int32_t height; + double delta_time; +} mlx_t; + +// The error codes used to idenfity the correct error message. +typedef enum mlx_errno +{ + MLX_SUCCESS = 0, // No Errors + MLX_INVEXT, // File has an invalid extension + MLX_INVFILE, // File was invalid / does not exist. + MLX_INVPNG, // Something is wrong the given PNG file. + MLX_INVXPM, // Something is wrong the given XPM file. + MLX_INVPOS, // The specified X/Y positions are out of bounds. + MLX_INVDIM, // The specified W/H dimensions are out of bounds. + MLX_INVIMG, // The provided image is invalid, might indicate mismanagement of images. + MLX_VERTFAIL, // Failed to compile the vertex shader. + MLX_FRAGFAIL, // Failed to compile the fragment shader. + MLX_SHDRFAIL, // Failed to compile the shaders. + MLX_MEMFAIL, // Dynamic memory allocation has failed. + MLX_GLADFAIL, // OpenGL loader has failed. + MLX_GLFWFAIL, // GLFW failed to initialize. + MLX_WINFAIL, // Failed to create a window. + MLX_STRTOBIG, // The string is too big to be drawn. + MLX_ERRMAX, // Error count +} mlx_errno_t; + +// Global error code from the MLX42 library, 0 on no error. +extern mlx_errno_t mlx_errno; + +//= Global Settings =// + +// Set these values, if necessary, before calling `mlx_init` as they define the behaviour of MLX42. +typedef enum mlx_settings +{ + MLX_STRETCH_IMAGE = 0, // Should images resize with the window as its being resized or not. Default: false + MLX_FULLSCREEN, // Should the window be in Fullscreen, note it will fullscreen at the given resolution. Default: false + MLX_MAXIMIZED, // Start the window in a maximized state, overwrites the fullscreen state if this is true. Default: false + MLX_DECORATED, // Have the window be decorated with a window bar. Default: true + MLX_HEADLESS, // Run in headless mode, no window is created. (NOTE: Still requires some form of window manager such as xvfb) + MLX_SETTINGS_MAX, // Setting count. +} mlx_settings_t; + +/** + * Callback function used to handle scrolling. + * + * @param[in] xdelta The mouse x delta. + * @param[in] ydelta The mouse y delta. + * @param[in] param Additional parameter to pass onto the function. + */ +typedef void (*mlx_scrollfunc)(double xdelta, double ydelta, void* param); + +/** + * Callback function used to handle mouse actions. + * + * @param[in] button The mouse button/key pressed. + * @param[in] action The mouse action that took place. + * @param[in] mods The modifier keys pressed during the mouse key. + * @param[in] param Additional parameter to pass onto the function. + */ +typedef void (*mlx_mousefunc)(mouse_key_t button, action_t action, modifier_key_t mods, void* param); + +/** + * Callback function used to handle raw mouse movement. + * + * @param[in] xdelta The mouse x position. + * @param[in] ydelta The mouse y position. + * @param[in] param Additional parameter to pass onto the function. + */ +typedef void (*mlx_cursorfunc)(double xpos, double ypos, void* param); + +/** + * Callback function used to handle key presses. + * + * @param[in] keydata The callback data, contains info on key, action, ... + * @param[in] param Additional parameter to pass onto the function. + */ +typedef void (*mlx_keyfunc)(mlx_key_data_t keydata, void* param); + +/** + * Callback function used to handle window resizing. + * + * WARNING: The function is called every frame during which the window is being + * resized, be aware! + * + * @param[in] width The new width of the window. + * @param[in] height The new height of the window. + * @param[in] param Additional parameter to pass onto the function. + */ +typedef void (*mlx_resizefunc)(int32_t width, int32_t height, void* param); + +/** + * Callback function used to handle window closing which is called when + * the user attempts to close the window, for example by clicking the + * close widget in the title bar. + * + * @param[in] param Additional parameter to pass onto the function. + */ +typedef void (*mlx_closefunc)(void* param); + +//= Error Functions =// + +/** + * Gets the english description of the error code. + * + * @param[in] val The error code. + * @return The error string that describes the error code. + */ +const char* mlx_strerror(mlx_errno_t val); + +//= Generic Functions =// + +/** + * Initilizes a new MLX42 Instance. + * + * @param[in] width The width of the window. + * @param[in] height The height of the window. + * @param[in] title The title of the window. + * @param[in] resize Enable window resizing. + * @returns Ptr to the MLX handle or null on failure. + */ +mlx_t* mlx_init(int32_t width, int32_t height, const char* title, bool resize); + +/** + * Set a setting for MLX42. + * Settings can manipulate the core behaviour of the engine. + * + * @param[in] setting The settings value, See mlx_settings_t type. + * @param[in] value Settings value to determine the state of the setting. Can be a boolean or a enum / macro. + */ +void mlx_set_setting(mlx_settings_t setting, int32_t value); + +/** + * Notifies MLX that it should stop rendering and exit the main loop. + * This is not the same as terminate, this simply tells MLX to close the window. + * + * @param[in] mlx The MLX instance handle. + */ +void mlx_close_window(mlx_t* mlx); + +/** + * Initializes the rendering of MLX, this function won't return until + * mlx_close_window is called, meaning it will loop until the user requests that + * the window should close. + * + * @param[in] mlx The MLX instance handle. + */ +void mlx_loop(mlx_t* mlx); + +/** + * Lets you set a custom image as the program icon. + * + * NOTE: In MacOS this function does nothing, you should use the bundles icon to set the dock bar icon. + * @see: https://9to5mac.com/2021/11/08/change-mac-icons/ + * @see: https://github.com/glfw/glfw/issues/2041 + * + * @param[in] mlx The MLX instance handle. + * @param[in] image The image to use as icon. + */ +void mlx_set_icon(mlx_t* mlx, mlx_texture_t* image); + +/** + * Terminates MLX and cleans up any of its used resources. + * Using any functions that require mlx afterwards will + * be considered undefined behaviour, beware of segfaults. + * + * @param[in] mlx The MLX instance handle. + */ +void mlx_terminate(mlx_t* mlx); + +/** + * Gets the elapsed time since MLX was initialized. + * + * @return The amount of time elapsed in seconds. + */ +double mlx_get_time(void); + +//= Window/Monitor Functions + +/** + * This function brings the specified window to front and sets input focus. + * + * Do not use this function to steal focus from other applications unless + * you are certain that is what the user wants. Focus stealing can be + * extremely disruptive. + * + * @param[in] mlx The MLX instance handle. + */ +void mlx_focus(mlx_t* mlx); + +/** + * Gets the size of the specified monitor. + * + * @param[in] index Normally 0, incase of multiple windows, can be specified + * @param[in] width The width of the window. + * @param[in] height The height of the window. + */ +void mlx_get_monitor_size(int32_t index, int32_t* width, int32_t* height); + +/** + * Sets the windows position. + * + * Do not use this function to move an already visible window unless you + * have very good reasons for doing so, as it will confuse and annoy the user. + * + * @param[in] mlx The MLX instance handle. + * @param[in] xpos The x position. + * @param[in] ypos The y position. + */ +void mlx_set_window_pos(mlx_t* mlx, int32_t xpos, int32_t ypos); + +/** + * Gets the windows position. + * + * @param[in] mlx The MLX instance handle. + * @param[out] xpos The x position. + * @param[out] ypos The y position. + */ +void mlx_get_window_pos(mlx_t* mlx, int32_t* xpos, int32_t* ypos); + +/** + * Changes the window size to the newly specified values. + * Use this to update the the window width and heigth values in the mlx ptr. + * + * @param[in] mlx The MLX instance handle. + * @param[in] new_width The new desired width. + * @param[in] new_height The new desired height. + */ +void mlx_set_window_size(mlx_t* mlx, int32_t new_width, int32_t new_height); + +/** + * Sets the size limits of the specified window. + * Will force the window to not be resizable past or below the given values. + * + * @param[in] mlx The MLX instance handle. + * @param[in] min_w The min width of the window. + * @param[in] max_w The max width of the window. + * @param[in] min_h The min height of the window. + * @param[in] max_h The max height of the window. + */ +void mlx_set_window_limit(mlx_t* mlx, int32_t min_w, int32_t min_h, int32_t max_w, int32_t max_h); + +/** + * Sets the title of the window. + * + * @param[in] mlx The MLX instance handle. + * @param[in] title The window title. + */ +void mlx_set_window_title(mlx_t* mlx, const char* title); + +//= Input Functions =// + +/** + * Returns true or false if the key is down or not. + * + * @param[in] mlx The MLX instance handle. + * @param[in] key The keycode to check, use MLX_KEY_... to specify! + * @returns True or false if the key is down or not. + */ +bool mlx_is_key_down(mlx_t* mlx, keys_t key); + +/** + * Checks whether a mouse button is pressed or not. + * + * @param[in] mlx The MLX instance handle. + * @param[in] key A specific mouse key. e.g MLX_MOUSE_BUTTON_0 + * @returns True or false if the mouse key is down or not. + */ +bool mlx_is_mouse_down(mlx_t* mlx, mouse_key_t key); + +/** + * Returns the current, relative, mouse cursor position on the window, starting + * from the top left corner. + * + * Negative values or values greater than window width or height + * indicate that it is outside the window. + * + * @param[in] mlx The MLX instance handle. + * @param[out] x The position. + * @param[out] x The position. + */ +void mlx_get_mouse_pos(mlx_t* mlx, int32_t* x, int32_t* y); + +/** + * Sets the mouse position. + * + * @param[in] mlx The MLX instance handle. + * @param[in] pos The position. + */ +void mlx_set_mouse_pos(mlx_t* mlx, int32_t x, int32_t y); + +/** + * Defines the state for the cursor, which can be: + * - Normal + * - Hidden + * - Disabled + * + * @param[in] mlx The MLX instance handle. + * @param[in] mode A specified mouse mode. + */ +void mlx_set_cursor_mode(mlx_t* mlx, mouse_mode_t mode); + +/** + * Retrieves the system standart cursor. + * + * @param[in] type The standart cursor type to create. + * @return The cursor object or null on failure. + */ +void* mlx_create_std_cursor(cursor_t type); + +/** + * Allows for the creation of custom cursors with a given texture. + * + * Use mlx_set_cursor to select the specific cursor. + * Cursors are destroyed at mlx_terminate(). + * + * @param[in] texture The texture to use as cursor. + * @returns The cursor object or null on failure. + */ +void* mlx_create_cursor(mlx_texture_t* texture); + +/** + * Sets the current cursor to the given custom cursor. + * + * @param[in] mlx The MLX instance handle. + * @param[in] cursor The cursor object to display, if null default cursor is selected. + */ +void mlx_set_cursor(mlx_t* mlx, void* cursor); + +//= Hooks =// + +/** + * This function sets the scroll callback, which is called when a scrolling + * device is used, such as a mouse wheel. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The scroll wheel callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_scroll_hook(mlx_t* mlx, mlx_scrollfunc func, void* param); + +/** + * This function sets the mouse callback, which is called when a mouse + * does any sort of action such as pressing a key. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The mouse callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_mouse_hook(mlx_t* mlx, mlx_mousefunc func, void* param); + +/** + * This function sets the cursor callback, which is called when a the + * mouse position changes. Position is relative to the window. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The cursor callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_cursor_hook(mlx_t* mlx, mlx_cursorfunc func, void* param); + +/** + * This function sets the key callback, which is called when a key is pressed + * on the keyboard. Useful for single key press detection. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The key press callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_key_hook(mlx_t* mlx, mlx_keyfunc func, void* param); + +/** + * This function sets the close callback, which is called in attempt to close + * the window device such as a close window widget used in the window bar. + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The close callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_close_hook(mlx_t* mlx, mlx_closefunc func, void* param); + +/** + * This function sets the resize callback, which is called when the window is + * resized + * + * @param[in] mlx The MLX instance handle. + * @param[in] func The resize callback function. + * @param[in] param An additional optional parameter. + */ +void mlx_resize_hook(mlx_t* mlx, mlx_resizefunc func, void* param); + +/** + * Generic loop hook for any custom hooks to add to the main loop. + * Executes a function per frame, so be careful. + * + * @param[in] mlx The MLX instance handle. + * @param[in] f The function. + * @param[in] param The parameter to pass onto the function. + * @returns Wether the hook was added successfuly. + */ +bool mlx_loop_hook(mlx_t* mlx, void (*f)(void*), void* param); + +//= Texture Functions =// + +/** + * Decode/load a PNG file onto a buffer. + * + * @param[in] path Path to the PNG file. + * @return If successful the texture data is returned, else NULL. + */ +mlx_texture_t* mlx_load_png(const char* path); + +/** + * Loads an XPM42 texture from the given file path. + * + * @param[in] path The file path to the XPM image. + * @returns The XPM texture struct containing its information. + */ +xpm_t* mlx_load_xpm42(const char* path); + +/** + * Deletes a texture by freeing its allocated data. + * + * @param[in] texture The texture to free. + */ +void mlx_delete_texture(mlx_texture_t* texture); + +/** + * Deletes an XPM42 texture by freeing its allocated data. + * + * This will not remove any already drawn XPMs, it simply + * deletes the XPM buffer. + * + * @param[in] xpm The xpm texture to delete. + */ +void mlx_delete_xpm42(xpm_t* xpm); + +/** + * Converts a given texture to an image. + * + * @param[in] mlx The MLX instance handle. + * @param[in] texture The texture to use to create the image from. + * @return mlx_image_t* The image created from the texture. + */ +mlx_image_t* mlx_texture_to_image(mlx_t* mlx, mlx_texture_t* texture); + +/** + * Given an X & Y coordinate and a Width and Height from a section of a + * texture a new image is created, useful for texture atlases. + * + * Basically a cropping tool. + * + * @param[in] mlx The MLX instance handle. + * @param[in] texture The texture to use to create the image from. + * @param[in] xy The X & Y location. + * @param[in] wh The Width & Height. + * @return mlx_image_t* The image created from the texture area. + */ +mlx_image_t* mlx_texture_area_to_image(mlx_t* mlx, mlx_texture_t* texture, uint32_t xy[2], uint32_t wh[2]); + +/** + * Draws the texture on an already existing image. + * + * @param[in] image The image to draw on. + * @param[in] texture The texture to use to draw on the image. + * @param[in] x X position relative to the image. + * @param[in] y Y position relative to the image. + * @return In-case of any issues, false else true. + */ +bool mlx_draw_texture(mlx_image_t* image, mlx_texture_t* texture, uint32_t x, uint32_t y); + +//= Image Functions =// + +/** + * Sets / puts a pixel onto an image. + * + * NOTE: It is considered undefined behaviour when putting a pixel + * beyond the bounds of an image. + * + * @param[in] image The MLX instance handle. + * @param[in] x The X coordinate position. + * @param[in] y The Y coordinate position. + * @param[in] color The color value to put. + */ +void mlx_put_pixel(mlx_image_t* image, uint32_t x, uint32_t y, uint32_t color); + +/** + * Creates and allocates a new image buffer. + * + * @param[in] mlx The MLX instance handle. + * @param[in] width The desired width of the image. + * @param[in] height The desired height of the image. + * @return Pointer to the image buffer, if it failed to allocate then NULL. + */ +mlx_image_t* mlx_new_image(mlx_t* mlx, uint32_t width, uint32_t height); + +/** + * Draws a new instance of an image, it will then share the same + * pixel buffer as the image. + * + * NOTE: Keep in mind that the instance array gets reallocated, try to + * to store the return value to the instance! + * NOT the pointer! It will become invalid! + * + * WARNING: Try to display as few images onto the window as possible, + * drawing too many images will cause a loss in peformance! + * + * @param[in] mlx The MLX instance handle. + * @param[in] img The image to draw onto the screen. + * @param[in] x The X position. + * @param[in] y The Y position. + * @return Index to the instance, or -1 on failure. + */ +int32_t mlx_image_to_window(mlx_t* mlx, mlx_image_t* img, int32_t x, int32_t y); + +/** + * Deleting an image will remove it from the render queue as well as any and all + * instances it might have. Additionally, just as extra measures sets all the + * data to NULL. + * + * If you simply wish to stop rendering an image without de-allocation + * set the 'enabled' boolean in the image struct. + * + * @param[in] mlx The MLX instance handle. + * @param[in] image The image to delete. + */ +void mlx_delete_image(mlx_t* mlx, mlx_image_t* image); + +/** + * Allows you to resize an image to a new size, the pixel buffer is re-allocated + * to fit & the previous data is copied over. New pixels are zeroed. + * + * @param[in] img The image to resize. + * @param[in] nwidth The new width. + * @param[in] nheight The new height. + * @return True if image was resize or false on error. + */ +bool mlx_resize_image(mlx_image_t* img, uint32_t nwidth, uint32_t nheight); + +/** + * Sets the depth / Z axis value of an instance. + * + * NOTE: Keep in mind that images that are on the same Z layer, cut each other off. + * so if you don't see your image anymore make sure its not conflicting by being on + * the same layer as another image. + * + * @param[in] instance The instane on which to change the depth. + * @param[in] zdepth The new depth value. + */ +void mlx_set_instance_depth(mlx_instance_t* instance, int32_t zdepth); + +//= String Functions =// + +/** + * Draws a string onto an image and then outputs it onto the window. + * + * @param[in] mlx The MLX instance handle. + * @param[in] str The string to draw. + * @param[in] x The X location. + * @param[in] y The Y location. + * @return Image ptr to the string. + */ +mlx_image_t* mlx_put_string(mlx_t* mlx, const char* str, int32_t x, int32_t y); + +/** + * Retrieve the texture data for the built-in font. + * + * @return Pointer to the built-in font texture. + */ +const mlx_texture_t* mlx_get_font(void); + +/** + * This function lets you retrieve the X offset + * of the given char in the font texture. + * + * NOTE: A single character is 10 * 20 in pixels! + * + * @param[in] c The character to get the offset from. + * @return Non-negative if found or -1 if not found. + */ +int32_t mlx_get_texoffset(char c); + +# ifdef __cplusplus +} +# endif +#endif diff --git a/mlx/include/MLX42/MLX42.h.gch b/mlx/include/MLX42/MLX42.h.gch new file mode 100644 index 0000000000000000000000000000000000000000..29ace78acea5aa747219672159a4f6b5f7919073 GIT binary patch literal 2172268 zcmeFa33yyrc|Ja24W$7G0)$;81RO$)G?HbB)v^{_M3xjSi9><0ERCeGN76(yvgMS; z>?VZZ7AR(SSi>H6vzwN-=>j#o*$rheYfXXT(uLpqo$tNpp7Y&1N$BtY{GR{QM@}^F zeZRAPXW#Fgt4+`MwzhR#w*T6V58raCxZ&+jy!W1$?0RK^|DJZ1KHTnhoAKbtSrn0~ zdHCzhSGzhd?d%A}_F28TeI&l4V?KZ!2GLo!6S-KzA3-Flo_oq8k*}e%*qw79*-d=3 z7+X5)P8svqLTa4I74bV)UMw$HrXxiXONGKZxV#(wN~Q7f(bD+D*vRnKQmLi=K9Jqr z$@{hpm9`HKm-=^%!eITSZLP(&i|-Gk^PKVI;P6CgsJ~}?qOG&Ey=MpPw64zL-+f^$ zzLZJ>Lt?hAXS{UzX{hXKG<98>4o`Ne@pRxklxEXEp|D7 z+ghnYM|XR%6Q*}fY&iAc;fA(N8#}r?+Bdd#6^q5LO&eP`b$51cYVX|Gz6pY2$HvaC z@}=!v1EQAtzqPlwG}zx;+PJa1)H||$bf|wvOYs62+sJj5CaxOohuSNP^~&60d8TE0 zerj1fk!T?G2A|YFGJvR#^h|WMO7uF#i$8LPNFqs@-u2TLw@kNOcwx(sB>5jZv)*kz zW2G&F6L8WcUY+BllBybQP0n*6)$AB|4z3*Ro7g5!&WC||bfsiOm;sUrlVUE8T`sg2 z+2sY4Gm6A4E2}#hx-OKmx}Ej5Ak70EHhz9IP!0DNCH#+uXI`_ z+H6t_vk!&2ByOoB>AtP!ivH60Rl~h5<$K2ZOFhGVrSU6!MoYz(w%csC;}5Xg)zbDr zgfFF6bzsSJ+76BMURD|y>qh~Uq}GT81*D}YMf%>(EsAt|aYw1IzjttZ&rqpvP%2H^ zCMgg1Oe~c8uYl3^{)ufPeK2j6)bXXdvm@hJlKH{Tu>=}uhHOI>OSM}MOB#x+d;_R^ z@GePgrnQI3A<190KMpwIU$Xm|Uu5d)G$E>$CA!D!F>66*bjHYL;u_x=Oy{UF?HPTfke)1<3)espH$m z(wZuDquUz|xh!z4D4Mgb?oI7&9o-w-H*PAnw{7a&h^DvL34PmJ+grOgft4?j)^I3l zFgrVTxWeEgFIFUVwD7qg2FG2q*V!r!UrAeBDW9&H5Dzk~wU`Elj>(Z0y4-rTWn^S1 zEV=z&3+WTkurqh1e<`(eZs^#w5p8%|8yfMh)*>ESyNexo?%s$NeN$&g=f;iYOFOzd zI|txcS`zI)BnLzjmg(x!;#}HJqlDiDHt&qTQmI;5Tv=^tlgRkOfP&UPIzBiw;(De2 zOFR1pT44Sl=Ky*}^>|{u)YjG6*;Z@8Ww8Q(B_Fgm6_up9by=w$qSVOA zZLpD6wkZ1R*Uv1i?5dV8?%2@X(b~DOvtwgdM_Un*?&y%rM_1Ne?CL~Hw4pykM^@|@ zavia+eUhS4SBOVHe@jx^+@A%r{4gOJ8QzBbnRVE{-~JY4L2qNgFj^Nzm6P zwWO_6bkmkpJFX-_HqAj4f$fyX0=vmpHZ8Us@`KeaodSZ5N9tlEbd@ zq6!AxYzxGik3o|Q*jVgpZSCsp?nchFl`n1U9_Z{?l@iBJe4-Ei-^lnxzw``oag;_R7;d$9 z6)%<|rK25b9+*TM(@x4Yyp(rJW1^wBvYVFd4Q<^;)F)IX42-(kiW^(A|H_wc8W1%( zB$S3K%}dE^NvUKkVatMT#$1lIZ)oo*(#M9 z&6r7`$%%my3KJ42ZHgrUY`D^$Yf(Yd?kipQhHm$-zZ(@gYIr0Iqng*g0d=jd8x3t+ zS68uPQ%5HnpJG=>>&EW(_D-}$ZQWg{aA=9!Bp)-CLK@4#Vb?iIm+10S6^dJdWE>Rb z9Acu%$EAoRLtA(yO_LU4H5ng4 z?}!!^u8OT~n_4@EL@OPyO5+8!v?7TkEl=@ir|7(tGJ(-=7#PRVqW|MzD!Q^;2`Wx; zL$Qe3(%IV4je^+T*52BMnzRYMo1}PGTPIpTBzapW59iV(Zg+L+E{NH+`6@Ye4^Ad zG`Mwmdp{c9#M}>|IGFM2g&az&p)}b#-Sg%hJqSK+rL>{y7*x}j?$;d@YYxA*43mACF9$nR4Hj2Y*m!B zVuc81Xozix47H_%l;B1tBBTAilS4fdgBS*k_YCxxFnFKr*HNeDKO2{zZSL-Hosaqt zT}LOzd?oGdh{~trzSXS-p=)xdL&zYeNem~`v72k?)uVJ=EK@k`yprTX)`UYLjDXT) zkaBe8Aja?G0Ez)@Z*3#DToJwaSCH_T?vFioe`Y-L?*f$`tWm_Vv z3K$%v69rLG&9sA0`knUTqrI2f(P`0Y-_X%o?85Z4Q%1zauC9&UU2Rg3+PYB2(4Kdq zWkHGR8fbS53R-KBiPBUAJ$V16?d^STj+Bmu&?HAQyP&T{vdOT{&A!{xWf0D)wxOnt z^~>NGMW?;3byM*|A1#!QzQKV37j2ojGf2uwBEfZEhu#DEslG0aAxRl7_cH*MU7A= ztQY=ho5I56rtn%W|A1+&jI|`CRV5bLWb}@~PMUv1qsS-pU};O4^aat1V-!Cb=BLfT zZ6A-c7gy6UL()ua8SEM-nG{?zc5zcP zsUCjHp6H^Z$)X#D>NuW_o_K*o!VDLK@xCGPU2|!yf9oLTB4ee|vHpQU8D~h9O((KJ zy^*FQ&66aR(;g$u0pFd3BjZd{t}5N;mD~2BRMAwk{AF3G@H!HaRzuUHGaW?^k6^Su zG&pSfKcrGL)yMFw+Xt2;p_|VqQwyD7t!}*M6nLzhZ}^lxDC?DVuv@ zq;X(-h+Mg#4aIar>jjcK=|~*~ES>UB4oPq>f!v@RIoj7hP}x^qd_o=Yty zKABZ$Q7G^b({mIX-#N*Cgsc{*+I}jcYg_4L1WhQ~Ow-Y0C?Ervyz+|-gYI#*bW5$) z(g$N{Avtwx7olH-fIH2Rv>|{$$fvZuK`m_C*w>fVa!rEKzR`5;y&bDRY1ESv7(^Xq ztmszo(|qM<+4NcKp`DIy(vc=AHEq@BmzEpRf|;yo-2s2PswE?3?L&3Epc^5XRW=#v zq%~8TJ+t_g3`Zt|F}qX?J8!!b9!Z9x49dg^0|{(M?7;Bc4bEk)e%$RMZSQZn0BZzT z2pj6ZAj%mTz-Z32bx9KY5rA(mf=!%s*wsHYAPuCXxs-9%f${Cw*6G<=8kw9Joy7Vd zY)CE9VF}myn38^T2t)3)y^%PM_4K)hwJ6n4%fGLNHYectF|eiWhHD&xa&uc3oLm}f z10p&~UWBcLWE5AUF%L+_vq`>}N_((XB7;j+)s-6VGlWGejPK)M+gA;@hUVJ#+dhuL zIDJ(nWJ!1Lwv)7bn_&>%dcrR63@RmZdY}MwIYl3U_i;wFJ(k7q3K+PF$np9Y%krqcP}=vdFz?LC-!W3VFw zyZ#*$!#(I9+R|>p^<8Nw>EuC{HU_Y?A5N@2!G9G->;MsglW~HcZHBq+c}WYs1<|Td}(f(>}};vC!VS z2`m5DHNr+(J9YrN+dA9YQ3E!j%}sM7*d0#Nsl6x#M#J&_m8q2IuB7~G+Yd`N$6zia z2$QsVJ#jaz`If||{U4CDqK9^yu1!xz&a%Ya)|!rulk*x9C#+wjjjJ}GQhc>>?RHBL z+Rh}U6`O1v*=(AXBH?>I84#*b?ku-!<0fn<6gxX*a|pY)x_O&yW%~4!Rm3!aB*PVl zWE=C2_~S;V3~sb_*0wj(f=Qtci;0;=wr{#Pts$-;`GM2MG*Ob3tE5zP1_|amzF@no zvm@%sP*&^;VU%QUsmY~gZj$Bicgw;+6bj0U4ds!Dcy=V=xBzTMnMR;RIjo_9il<>gjEkWh z_DS1~q+TGe(-M*$W!zG0CUXaA`l7U*a61%oCJ4iQj5_2zO-oxkG?qRtXo7G1f^bxJ z(01CgBj!G%k`kH>w$O!1InklDMBUa^G0~}@tE7^dl2*QcXPZxH8a3G^O5z^_E4tZ> z)?b|&fQ@apJUB03x)Gx!)3fEDJkj#YE+|k=P7|c1gPSMVm+9Hj-`CPABW|s3 zQf1P4L$vmOn>MG1E{-}g*Z;eS{sE^Rr2kKP^^z=Px3o!9p)H6s!(E)XOLf+P2=aqv zi|qu?*-2h&L*er}tu?4tX~)FON+!%0{z%<|+|3|HdnS6Z<8=k5 z)tEa*tNxM{L9NT}+?$VwHX|Hgf1yw0({0^IMqNr*a*$-AQf7Q4-KcMwrGVSkJn8s` z9^`eB1eR%Y-Vin_53cL@gUbU3H|apcrL!(j_$BMqR11PcDxFV04tn}xf+CQXZ)C!4 zI|0;QjDq0kDh)zRwHQbR!ayfF1S^4SX>xkYDITbSW-Ki|X$mHdQLvdauw#5otV={R zYl8L%^4olpKo*n+;7Qs&2Ia_C_S^2Co=i}cwp@jCu(z^oElrptl@4n9Fq$zdCz6J$ z91=tdUXmI*z)qL=k$%DAog|E}9ZAk}bLTcs{3Mrj^#Wlh(-zs376Xl=8{4KTrK81B z9M(rKo3liaHaVFkf-Ue@3k|a~$c)>b2a>1h>Z>deq(O!)RVPBzAsRwsrM~S0#9(ni zw);`&B)xq*kp_u|RpO-ejSZ_maO2hi(~Qbay)vT(*H-)iE2cWxGF?2hOERs!DBXfq zMi#NKX@~YQGF25(ja~oc2Lae!*cdgSvZ$MBK*h0^VRo~!L^vr+FCx_>bB!3HKO*%y zSa3+10W>g)#+~lKc-k3-O>)u{CpbA27D?I7D@xZMjai~)kw0K}9>q+mE|Z3bRl>o~ zW|(Sm)}>!PrmnT{4>(WgZh~lEkJLayXgv=Kpd7730hGo>(>a-qo1DyK#CZSZrQY$0 zmW@(hqC~MJ5oi3RA5`y?nP2FAShHGTQfp%58#^Lo!;>w!;;os71W(r~h+frgNd-jI#{#G=(LH;{lA%U%AwjDM&bR zB!`+>Ix;57QK$CZAA;}rcj0txrEuZG)bxC1v0S*YzQ5imFBBfpSZG-;&()@u7YaSK zTD3Ag)u=2j)(Zm#-2`^q3Q1z(W*@d13UYQ;_i$xH1`E1bNvXHEBajYE4)>0$O|41= ztx`z;g^dFmzt?$WEi(DowHK!Jq5ko4XKir!ioQV& z8IMwVCEj=(7#va!@jSSFYa$*UP9I0S7duAPi_7}2Dz!SR^3>*^ivFqHKXv%0jsB_A zKW*|)UH+-tKlP+fqqv+gHZr2L3zb%?S3s2&d%kNJ(_8bjU(jL*?@O6 zkS5?jTbir`ZJ|6(+JUw-aR=JceIDQjK;xY$U{ZX-lVEg3I#Ng=ARiP`45+}xbdebyX3+hn+Kp+P3?WClWn3lG{ z>1F-K76uKz;q*4gw+&j~#wSOEN|LrHxb`sVRYdPMIqq3n?}jJ0$CY=)TN+KDdbakL zqUt&-lF87<9vDKR$_Cx_kApV8r-@qO@uLFQCg|QCYDNVYN<3% zF3O_xN)rVNjtuE_POs5;KQ8W%U=W>3qJ}YU6jR+NdeY`J&4eJquJ9gS>7RD^r?hB2 z$;r@j4Q@x@r)j#qf4lFMwvQm;OIs!d1LBgd>?Fqr?O)YSkM_FnCgEh6l zQJq-u12`cv23Jf1NXBa-g^cF%l-Q8xGzb}ACnoZonz#|IPU>732{$$Z-JK0TBoz&u zBv3x##t$8WdIw<~qLH(+;YO*@EAYdKLPZjRwG*o1>_n-lVFk)KD_)zS0!D}h-A#}r z;}c4TK51ZXsTaNG#1qT>_jsNCU_)TlgN!4U#1Nx+#tw-@~*CcCBn)k>pK z8bDhxiFQKtaH%meFd!S>5?4sDvpG0$mG^a^x-`{rekM=QN*_D?~lQW#F5^%HZK>71;HeNgm!O?X?IE&rsgV( zQ_K4cIEFd46^FEjBuf&Qx*(4Fl>{Exi=9YW@#M9F|hGY$FCYM^&(SU>W@z$RmK}r4IGM?s@KcQ zpcC81Fu!p(13^%rm@gCa%jKz=Qgvy13gu&RabIO|rZiTruPl^39p62)8?w0y7DJX} z>Et5TMJV4fGTM*3hm1_fWK9FZesn#h68^`mod(>o4mV-N4VLk&iis?BJ}{1AVs-`X7-Fq3lVsf?|gww5ZakdN|-I6I>*(vnE$&-Ca>{A5EGpZ+ng|f2{v1K8RxwVgVM#lQ>`y5WJyFuO(;I?b56^|E{$GDXifNmtcw#rzh0 zcTKKanT!0;#gkBkq!(*apfwv@Ldh)vX_As#J7OxbG>wNR#igskYKRvZVH`Y$>-fTP zvk*Jw788REq zmoHVIAUH+eyA2IE4b@s|iOtx^5NZ_^aW4m=3vy|mlhzL7y1`y~SC(t^+$w_)&Mg+p z%@$V!9mC02tPYh*DQSzDt9V8vr^(p@0GiNk!s_mi4lGMl`OvF z9;bNI-y`K!0A2iq)6cc*XxLGqxKZXVAB>Djt;Eo|RN6j*`yM{7vg?h;C23EP(AF)S zs7m-977x&IhM5BzWDX70TI#QaFEa@3yCsXgM98T8ZId{Sh6Q4DyVM#K!-S62 zBnym_N0-ncSFOEqqJAjwZiWW8hjAJM4 z%pWgIOBg#Mrr}j+%rTjE3GaiTaMG3VB(*7&>|k#h4NXe3D~r>zn*voZNWr=>(NzU$ zSVFyo2fedUdMb~pvXg0vnM}*YWLjb-!)o9Z4y@VYGZ_}2B)NjX(9P)#0J^(AFEg5^ zfsBL3hS?8DSrXg9VA&NrC*yG09ZsS>bQyfok!(P^H-@A;AUk$oSyaREgH+3XsM`m} zF=%y4xv^;YjMvNH{S!0mG5?F$XYhPTM3goWOMETQhPv$nIsp;u*z3zg>?#tYw%n(a_q7>tD zl?1$Axu#6IZ)$(NR9VD1-Li8UaJ8}AsLWQTD^oZCE*9#TmCCO&HyJHW&CHZ$%Z=%I zF)|{o>gEY0(=%3GjI4VZ5M*phJ|@DdQyJ0RQ<_~ayI9Z<%tNeNi6~Ml6^3egX{eSL zhH80Xpw@J?Jhhx^IgM%a)N;90Ud8_M;#{DmH3>D#ngt4G3zRc6b}Q{1eL(s%L^PMTJUikfvjb#&TuXN<%Z3&m06L%()K-TkzJoflP*B>98v`FvBZvFpa}u4degx zQft!Tf83k(=qiboEcP-WRw^g9NZ>ly^k)rG#>-xA-sWvK$Zb~O63FV?~ zAd=Vj1eALy-bJb8hM=WsoJ4fm)2C8twuTgJ%$BC-_k`|I3KphOz;eV3OMA&!7 zXbCdbn*>^4Y-Z3*-pCEL-l#3+X@lZ|>XFe##5r+=c(IA~T;KOLOUu1YwBOq_zI*HW zPRed;%xCM=F1)EG$hN6nu1GO+F&`|UM$VM?qR@x7rnTgGYfE*RDJG?B3dS;di+ILD z)!2wQrhq6U%d^#`eWA5LT&hI|yI0V@&6MlY%at1Xv#eQTd1|4y#EGfbY;F$QMQHCZ zXT?NDS^|vsQDLK0kf|^lnxsAVj-_Rq3PW;&l4}FqtofGATpzbEwHn&NNnY&drRgSI z8q7$WdPN3IUJ1}BX~Cnk7oM>Yr8R8Cyp9HU*VOWIMK;%hkYo=|`y*|BlI(9xMH+#+ zRwytoMjD8PC`1UXg(wa%kK-T$>qE$QO)rGSW0!PwK~!7=>Gpbk>{KM9gCu30#4U?N z61P<3CD)XfmjXA_as3e*Mof69CK}VIA~_yAFjdLfh|)qO8DC=odOlYw>$(SvMT4ji zVXIY#DoMPiQRt#*EziYjEziXPpbSO!!D9zf46O|l53!Q*H5MS>BTr1hL0gN0VQrXT zY}s*+qF{DKP2x0Y6c_Nwy2(S($hyrz;Ta3o!-$tFmPYPjJR2A0X(tK`vy()HnUb*m zaiXYvQ(`T}>a2!UZMwW#i?v&=Rl*#Bc_m}PdKmHfr6mk~;4W;9OIH?{>i@QS~L8FL*M;^*JdTOx|^~soWpa*a4 zEl6S?2BA!a41Wm+oQBS3LmgDHEYF9^52s>%p z2E^l`ObYY-*xcV2M8h;D7#_YK_mOpV;J*T zC9z;VjCoW)8=3mqi0db4=zL~+uH0ypSHldN$q_B%W>}hq7{)Gy(GVW_ia9D~ZL{GB zcE-u-wbJxbb!8z;l$rgDQ#dJDTH3W6722&m1Ywou;Q|vNT-sSFhvfqXvzUQK14+ng zn5Acg$tg5n2w_oWr5SYWc*c%Y80c~sJxms4u_b8{gj(Y;_Aocbk?CrAI>W;mP+2U5 z{hkQ+hT#jhF80PQq8f+(EplFqIvbeAeT@^uD%QeLH_W3!w{T+}`51>N8S93LXfbw8 z?W$BOjd0WqFQOz{tr-s&WM9H(z-n!w&DdXPi(NFzSm(`rE9Dq&p~ z8fgn2IY(*42BF`2BpaZt0Otg_QbQ|HHh#~Bjm_+A-3)vniINF4;?nDdl@u#$5ZL0R!Z_bm z7H6}QMcL#eQHa&0XmJ7y97|C%rUFwCouz2Nqt;@ToGnupoh;UpqHvJoe2dgv2z!Ou zg{df3phiKFgwqXi5i92eQJ9d#iaCL?Vw5tbt46KWtX>cq#a1(#i6rB*)om5pT1&BZ z(G++Vi%GF|;5OAn6l({GNjE2n1BS?G=Oorrtlg4ZG3J~H3+*$pc1tsn^`+%-F?Y5$ z&B;^P4(kGAR)TeJtS0P<)`(_nD~+&wcD$Lzs7}LSJ=Y@E^ROC~S*_!t4c{Q4Q4Bj) z7{}e16GU-G=hv+3sZYm4!`XeyrU7w+JbmY;7NSb!cq#1IoFvQ@6=dy%+B!Sc*iL4! zI6qa#u?y}V1sOKKf?XPn*>Xgo9*H$mep7K+hP^Z@$AL5~rd}MC=RlfgIZxfN@0{OX zTM9=ujz{qk3!yKSDIAhQQNps<^8VG*N~F3qj8shwYhms3!muDG!g`*~XuVl&mg_U+ z>A1lN3{V~QvWg#3B!<{P&UXca=B_FWO*2x`*QO>QX8O-?x2gDZz^xfWQ)*!!@_hT99nD;b zNv@lE6Bm%@#!lq9v1pocVvw6sXmRqBTnzGEG)r7f^?beRO`?JZEH^GQmA%;lE5c0r zL72@T5oT4axK>z_3&tdda=4Jr|U9)s5qNQ zv#a%~XpxYU@sBOM4gUdvcUed7kf!Xz*>?!}rBTrZrJ%wtzW#ZkUTXV-#mQFT|^J z<{z+}lTHw3W3rM{;uavxvzg=PN;T`}(sDLdkY#+VVHGyqj&;>hgqcDu!c6tAO-=8q z*Jql_bJ9hf?8^yMyxO;`iIWu=*}N97M4szpW+ulzgiS2x#CK-KEQ>O6(8^>rfv}0s zdFeYdQ*Wk7ULwQ#z9zn}BY~mo-dcI{jHkN6vYkH|7YO6(-8yu$5 z*|dc)*D_9_W-afX%gJ{LbA8x5mlHb(^DIwSQ75m?&t^Aq&W5YvT+d{>o-K3EL2k-8 zldQ5TZW6*=BUdGen>xr}5S{6LqS=etOAeXlI$`7Y92>#keP zmJf7W=!Wy1tW@Wh^HhR-B_|!6I5%vV4sh_fjoM~rg9gES{RNOOFsR&%UEm>WIF zGXt#}wi{IUwkmvf{Oz*s0UT%`hkmvc`ESF)uNlq+Rb8;EN{OITAGHf?Vt-MOI zoZmjwAWUT+Xp+k58%|BF%}jic8sf&$5_g z)1$s?SKfB36KCUB&t0vN{y#gvchbxZ-|3g>)$=3MG%hYGxt`=iu#vlH=Pu#qtbI9o z&U%oO=d6J^dCsC6<=ObJ?8-?h2=i=amp!D(%-CF!n^W2C5+}~?mZ&(h`QgOby%H7Y z+s@f3an|$pZfMX%oxI%}x@e+O-u?|;ANX@eQ5#FpL+lr)S(E-aiypCJ&vn$_EIZIdCo3lA00jgmW zZPc(UKWSvytW=+^WLEygTe*3;FvOUFjydV+4ZE5f)^E`%Oq;mfhjq@TPSx-hTs99?oaTqRZx<3X)9AY6R?Ry^ zbl2HhC&H)-$t|a_r+2rWtRS-C4orqN^gL!p5;?-%pJ>b~JUo_E5kcevt07ot4t-t3 zQQU|}9xTquOhxTuII zNLSSMDbl=%;ZnJYDqaN>C6K%t#*FjpB8$tt6B*@UD^?zYSb3bI!AmWo z;M_^tSR(Hrj3jk*RB07k*&W?i*&UXV-BC90 zj`Fw~H`-Oxzc?Ni5+?{%k_#8%)X(wAg;F7_GvSf$80Jp7Ta%$5PKaA^8CezQuQNhix{j{8Vy2My+LTZn zUC~D06!<9}T-@o2Bvn zN@CF}pUR^ccySz!Kpd&*<#Cn;;#})d)MW7@e&xs_L{qczkkrfK*wLc(u(5>8%wa_m z=PI=BRT_D)BzKtbLcY1BMtJ8q|N8S1?irRF?rpir{uf@)8sDB(fw`Zk!Z2V;BGFQ9 z8XZhn{c99i?a7lsJ|;ngc)F;szZ2P?57{iutdWCqu%%{;!KmY5A~->$kGQCY`K?x>u?R&OcNu3{SJBu4{=_!0Cd}87W?x-^ zZXg~Bs{r>&F$qM>gJy;%fR%8lFZ))r(Q+0gSdWg+mb()!(P9rJW~`G)qf(p*qq0h2 zl=gCrrV`zj6kGBVcZ>zY=%iBXo|dDWh%QTGg$M7%i98cQ?2kx{7sf)kqy;adceDsM zt|JzL%F`=VeEteAQ>;(Tx;wWk;q;=OYr(z3Ht9i{SqaumP8efGTzC}EfBnXG@fhnZKPq+$$Loa z<#=wZFDEs&qUo^Mh^E6Th^NCMi>A6FsMn%)v$2e;9&t$W@?IlpROF*=egFc0s!=Zu z0p5?A6AgK5YV2?^qqj&hipy(Njl+zhxVdQ*t?i0lcL24P<7EU$G6?`#7*dm>5{RRz zcYS|-Z_WZhB94~;5~*1PNW^v-Aby>dd7G7anU&D64hjz|1$ad5l3_zv1A~-MN$dzO zehwSwrrl>_$?keImh4(`W67=vWBQi0lvy{%j!#%(@mA%<@X(FpQA&sf(;TU#Xq2d; zs6k3Z;m}KEQInL2GS;HB!^@)USSG^vJ{lElb47({rOCKVj0fW zzE}7JBi<5iHsx0IOOCP`6%-aqWk^OfJr_g|e8MD%)Sr&P|LQR`xtiZ*~ z4k{?gp@2ZkKw63$kL(g2Byr`1z|>nvY?V#k{2T^4Yx^U<1v<2ov68$HI#>rRn|QcFF!|yJUZ~U9vxHWcNoy=>4uunMNsHcCS3giz)aHc70ly z+U?HX163v?wpK#vB6mjxPss;zA;e>slo-CdU%WQ&_Xm|vJ;{5s z@#dNIdkHGvAAV&me(U)x_PK*M<0sUm*DQ9ktLaDE+t~BC92+MAlK!sFWymDS7(U3x}68n;!RLW6vWYcGh zmsTr#%I@{w>TqFddU>fN-x1K)(&k8|CaM_AlJd;}%O!`@f}3@q>5>93v$jBrax4zK>9%m>xzN<>H! zdDD)!tUPt1JawqtJI4W@#3#&+qQ~Gn4tU3oGm`3xqFC0?R3PM87nv%Smz{a=EezeV z;&%u@WVX#*wboJltz;P9={IUuQR{|~snSCu++_8$}F_L2_Anly$S5M-QmC%u_u7=+OS*}(V zsJ1-1be3MDj$=yhHHGrv7QRqvlCPji$ zvxd(#+-pRg*>ZXB(jIB297D;(PP1DIQeMGv9j;odfKG9@RT{23)3=^*jre{v@-h;} zf|UOpP(34bt0{S6SwYE>OYfH>?#LH+c`=m8DiR6d*a88nlG*1$Vs<|yIBIa-K3M-36@=po`9MfAFm zNel?{6mjAlMMR#Xh=_9(5wTaqO@5ZkGG1}*tF(WiEL9_xdMzTcS0a*n9U^J0g86=% zOAlu~G%(7XnG3UIi)3866^Fs)P}HEn>M>BNlr-VsWYn$}7f#i#m&Or3No1ZQ6h3 znWdWMn|g(FjlJHvre6JAQy&Ydk(uO-gsGB7?6r&KUaeT{^@+u*2-bG63sJ8wVNs>w z8b_6^c!@5+!bn!=IjE9HXI&n2u7V{~O#0l%&^cfgCxH-)NYiB*WQRgDLQ|{mRI+^O z&Yg^K>#N zVouHEk@1p8osh{>G@(lcfwO2zm)c0ZNG5f`_Xnf#D2RSO5$k+dT}&1e1BM`E-GD2D zrG}dbqhyIJUJTj0B-@5=aUywisTh9{&VB~YeEdxo5irMhddW&FKSn5GS(`zqTxM`y z?^}Tc=Ypm%d2v%L{5T5*%;K?lJ5|t+#>pY)_yckJ`EUramn%QB?sr~)Nve*?uk3~r zQ0z27cO1!oYR!F>N`3u-`p1=WmH_)h1u$!0zM4dK;rD$k8Z4l6taa^{9-2--Ah$;~0IA5=ys*+y_q)pOqO1WQzDGO6D zzy#I(;2>P`#V18IgGJcDGd_=kbi%h1$4lt|oY;G*T9MO_jX8ULIbAcduDxT4`ohL&Ue zIurSEDUBn91^q&j{6btqM!PQ}xnJleMC2=lX}3b;ejyhExhv@SfkcbB{F11#{Nm_< z{)&k^M=*_&UXUM1w9v~h37ml8cV)RQWy1klz4XgI$>)M`yMGD|bV0xJN|*sw@dX^W zpN_2rY%t+%-uod1Tk-RUE{WAB5u& zKFR~?I^On;5;Fsw5j%2G4Ij&qziIcQk5zegkMe}gh=Thhj{d?E{XUL<703Om3}3); zoru&w{Gn30Uw9-0Ug0w}?#D^czCz$0-4i}A11_JHao}VUa6|sEuThvS$j*iPafhIU z$uVz-C|ZJQ$8GF7ifO4sT5~5!oFK6;r$$6j#jhmLES3=6_gVC-Eb*D}r+RU7wIdP6D^mOvx`Y*!{xDT`ZEOi%&>DClZhNfCO_-;v*j@ zf|vLVg8QO~{5Wp};R!&zZ~)staqhrT=hQvnyC0D2*FN;YId@<7a9o;x_nv~2 zexN7QuXDIx)d2O~sQ`33I21qd;QVl?0`UW1)6j2d$S(woI`F`*Pyv5?()xg+>>iM=(#0VsFiVunuobz>s=uz`bX;0aeQ@qzL)-zxo!f;FL{UR> z)%E6Pa{sh~#b!o;cTFMD8>V>Bd!=|tl;<5%ND_5;Ulfug0NxFSM9=@=ftNlj_2gkM zdc*>5e#(7Mx#fwwox9On$URQn-jq9=a#IugZSp4{l@qMHALO~ao{0Gt(nD`x^4_I` zY5_SmThN=11k{h@ek9RLVBOUzsY9}nil0UNXb^fmF1diH2nW1u=&u;^0VWuO;t##0 z`-K*IVNjsv2s%keoZX^49b^#05Y3bprP&PZ*Mh13&kSa;U-_mTb4ScuTQF zj_(&-^bmv)1fu;_a&JXm}I%NAe@T#M63dVM#Rf5@#&6Rg4ot z*Ft@wgZLDe*O8ZMDB$AAku+g3CP683@}*kpT!Zz#IqLmeEbj}l5B)J`<>HMnY?#Un zPbd~yWLMUEM4qOb3cT0&YW)&c?7V&Dsj+O}>&!uXM;RwYI-%=JWED)wQo;mBIjiC9 zWnxETm}I^9gg?yVRBz$TYwTcSeIjvY3P51b9Xm1B8n`du)e_IOpfM!unXA7IoUoCJ zgSb`^T3%FDR5z6cRfClPBdIc`K}$hKBqoUut~v!)Tnfq6T%;8yEb@!SX9;r~`MiDd zAf+lIqS4X}6n7<2O{GjqaT6nXh6QNqA4QJuZ0)KLTDZOkI#+PZ1JcLh&-Ji^=wAiU zy8>q2j|_-}U^FVAHr$*Xz(Q;wQwK)ZxnpwsKWuIH8 zm9kZECqHosb7}#P_^kurZ*3YMtzE`+dudwk&bjqC00s*((l6j5P#po|T4qW6GkKE0 zWo6D?w$$JB%B8GR;16B8`<+#&3br#_#kCXZe>`79q=ui$E=Fj);FrV|GU5Si%8qgyk5nsJhL7RyOX?han zwG|bip6lV+5qp3q;f;M2lnXS{a@o-hROAQY%dgZAedts~t#DkXlI{U@fv5tgCD-Zn z*Ihq!+}$rsh3c_b)QgAk-4h8SAn?{R2`nIi5rc)=VxD?0EryB`Z(XaQqQpBiAoQwQ zs2A|5`E>bNwuo?;RxYSu@Pre6a#>Y`yYzQf0q#VG%Xh>?j@HOYXn^KSsS`UkjSw;K zLotDjy^e14xL-G<)Td}nDaWH^t(@o@&*T|VO&$?NJ|bjwf?(Y7L_&)z)*?!7uLaNQ z$lp}M>1wQ$ekR$=n>tnymFX<DpP0Y0w#T zH4h~&!&QJB*9T;I^03M$WV(tZ*WDB1gS}Mu)56UkM`YEOyR5QR=?<#OgIjcv2e;lJ z53_x)hX2g)Ul_jb&2jkmF#J5j?``<`hTqTd2N?b!!&?n6 z8s1@er{P_OKicreD);&Mc*92xA2WQy@GA`W9`j*`n)~wdB*UL<_*0F4I}P7u_>AGR zhR+*r_1mrHUcaj0i-sRC{Mm*-*YM{n_rV@C{941WGw!c9{3gTSXZQyU|B&HF4gaX& zA2kAY={&>lZTR_y-_P&|82%u`TMWOz@P``yFvHgy{s_Y#Y4`@iHyggi@IJ!_ z4Buw>6O|{)Sr{^W*zlU+%Z4`$_a5_MubTV(S~dI{!=GmSdxqf$41c!a&o%t{hFkp( zs=3$iTEnk1{CeZx5yRhL_?rxWi{UpKZuNV+ntT1;Y52PhKW6;_Qv*CYl zxYh3;)!gg%Im1sH{yoFLZ}<-lKc(CU`xC=|X811*FT6EwPi|-U9h7_h?`Zg)48ODC zXB&PO!~e+eyBhw-hWm)};T&Urcf%iI_=Sc))bNW8f0*G9H+;R}7aM+w;g=fzD8n}! z-edR{!+Qke-4Iegq#PCtWFIVo>95;N@@GA|! z%J4ri{3(W)48Pj&x^iDX8iubJzSr=*?X@)=D@MjqQOvB%6`1=k2pmLv{A2$3W zhJVbs|G43wF#MB-f6DOVhJW7hFB<-3!@p|y*9`xL;oma+JBEMP@P9V^2ZsO1@E;rg zQ^S95_`eu_?v3&M@1BO=%kcXceqY1yZ}XG5kWqFEae$hF@&>C5B&W_@fN( zF}zo~FQ5H}Z#8_-@XHL}Zn*cD4+`b=e~#hLGyM66zrgT=hQHA8YYl&q;nx}d zV#95Gt~cf{G5nC>e`feg4S%`euTbuTeWl^AHvF}Qzuxfo8ty&j!~50T=g$WX|FGd7 zG5lkOf5Pxj8UA_YUX3pr{$<0zYTSR#@UI*G4a2`___qx|ZTP<${%gbk&G0jZ|IYCL zH2l8}U-!0nym$}8&olhqhM#Zv{S5aB&4&l5xzFzh8NS)@Er$0QK4ADZ} zKUeP6e3{{YVfbOgUuF1f41b;B#|{62;a^hj{@aG1H2iypf8X#Q z8h*;~pBVl#zPZ5ghZ_Dc z!`B=B2*V#~_y)sUmHTKF4ev0#)9^0CA8okzm=BLN=8rdgr{TK{pD}#a@Oi^`8(uYh zQMu2*1BO4_@aG!-e8UeKey!ox8GgOtM+|?1;cqhhEr#D{_}dMCr{V85{3gTSXZQyU z|B&HF4gaX&A24gYt; z|HJVAGW_?-eKmT>JL2)ig@#|G+?VHv8-B6jml%Gj;g2%B$M9am`wib}_@LpJ8NS`{ z5yPhppEkT~_?+Pt!}l1zVEB^ZR~ue8e8up6hVM80PnG-peY)Y#H2l4WzhAk}?++UO zVZ%RS_{Ws{@IPV9KV{6nYxqAK{sY5*q}=QGW5a)H_|Fah7sJnbXWU=j-tapberM%A zes?kEcQyPR!|!g~pKHwTY52VizmMVfHT?d{y?zfg<_|XJmmBkOV?JrjuQcXY8S_6e z{3*tM$(TzTYzD-!c4`hX2a&-x&T| z!~fmz|1kW&4FA31=e{eh|MxWfUWVVt@cSBmf5RVW_=608u;HzSw;5hEyxs5)!#5h< zY4|3?yA1C({LzL##_-1){y4)QZ}<}oA2s}P!^aFCH+;hINyD!+{3^qrq}-R^CmZvp z82(hlONJjX{8@%STe%PKxyJnYhQGk@gNDD*@M{f!k>S@F{$j(gH~b}rA2R&U4F7Y( zUuyWv41c+DpB}F;{FTQ3s|SMK%yg5h5>{40i^F#PMvy}sWt{9A^9+qf^hJ8nO3XZY=vdwuU{_?->E zi{W=Q{2asYuH5Ut&hT>$zlY)HDfjx_+wk)Zzn|d`F#JKvy*{nRyl8lb;hlze8UASH z-v7rK{#e5wXZYg{e}dsV4WBZ6+VHaBvxd(bUNL;P;d>0P8oproqTx%1*9^Z}xzF#q zF>e^Y*YJIYuNuDJ@N1O&@SbMOpJDhj4L@S|4TitL@HZO%Cd1!s_*)Ert8%aJ+l=|^ z_1v&8f5#2~g5jSx{ELQv$?z{5{uRT&YWNAmUu*d54F8(p-!S~^hQGta|DA@v%cR$P z4FA00Uo`y7hJV%YuNnRg!@p(tcML!4J@NX^?G3-9;deItE{5OL@N*2myWtN}?#s&s zhF@s-Lk;%@vB|?l#{R<$f4Jf64Zqm%M;LyI;omgn!>aWyWBzT!zhn3#jsKS#zQOQE z8NS)@9>cd7-fMWD;r)gW7{1l;ZH5mT{zStsGknPK?S>B@KwY28-9)9e`@&C41c=e&oKO%h95BeS%yE`@aGu*T*IGd`11{af#C-Yf1%;m z8vY`~uQU9`hF@>^OAJ3^_zi}?!SFX4{wBlUZ1`IYf2-j)8vZuJ-){Ij41cHL?=t+| zhQG(~n+$)i;qNp2{f2+Q@DCdPA;Ujx_))_@V)#c5|Cr$)H~bTZf70+z8GhXG&l~;) z!@p?wmkj^1;a@TQtA?L2{A-4P-SBT1{!PQbW%#!Z|Bm4&4gap;-!uH54gbF3KQR1< zhX2U$Q-=T8@Shm|Q^S8|_|Fahh2j5V__~|o`RBQY-^1{G8h)PP_cHw6hTq5V^9{eR z;rBEA{)Rum@CO?HAj2PQc&p)Uh8GQQH@w5}jfQs`zRB<|!@CWCwBe62{IP~V&hW<@ z{shA}8{T917Q=fD?=!sL@BzcO8otf&LBpSD_+^F<8NS`{VZ%oZ-)Z=i;kyi5e!%c&8UAd;pJVuQ4S$~D&o}%9h95Nig@#{i z_=^m`&hQr-e!bx@G5m<(HyHi~!{2E5n+$)m;cqegt%l!d_}dJByWw`e^#7W_L-qN8 z9qd|oYbmgn0&6L-mI7-ju$BUADX^9TYbmgn0&6L-mI7-ju$BUADX^9TYbmgn0&6L- zmI7-ju$BUADX^9TYbmgn0&6L7t0{2WoG1NP!+&k~zZrhU@LwAKE5mkBOW9kAs!_jC!Qh}E@u3Rt;B7_oy1k*A>xh1W5g50)5NnM z!T1xqh@-@L;sN4e;!VVxi6@C?i0dw4{E3^1JBT&nLE;hOQQ~o;EpKalEd|z6U@ZmK zQeZ6w!W7u?x7yzvAl^tkPCP?wxmoRPBi4wAiN}bii0l4N?ROD(5)Tq@BAy@?{+|6F zag?}9JVLygc$#?rKd8IS#ChT&;!)yB;@SVG_FIWNhzE!_5|0zl5L-U0?zRzY#KXj6 z#8bp|pHur?#GS;0#G8mGh=qSr`|F9L#8u)E;?2au5gn(lCyo+ViARVx6HgP*zd_w? zCe9NN5swm263>2v+HWQ9ARZvzNIXtFLu`4Yy4yyq5f2lO5l<1FD(eyiGVCGH>|Al^tkPCP?wxl!G1 zBi4wAiN}bii0j^__PdBXi3f={5l;{cZ&&;4iD8|V=S%U|I{pDSr+FlvABw+YXCHUh z8#gzR?`$H!@tImStv?5v*gvpI!xbGQ+%GZQo0`Z^(w~fdhHK@8iG2SH?|H9_?*eR2n9hY`s>jJD@|)<7 zwSTOM{CE?2;R$hk&t|x-P2}sY$hW_a?vnT>{!OfwdIKq`;92&nv8hv_?EmOe}6DUuWcr`TrDm-titT+-C0Ay|{3T z=FQx#$=6a~Ed|z6U@Zmycc;MUOCAvQ4?7>C{aAt6+M@l-&6nKG**o@k+Mk?G?9u$> zpqd|Pq5E4&wqtbH%v#H5HJn4Vcci5L9-+LMyEXY*3aq8TS_-VC!2iw^IQGMMK6BFW zOsszt+qdQ|G#}lq{a4G)vHi_7-+3$kSbx{}S_=ICA_XowI~w1$d``>v$z&Wwek|cl zl)klb*8#fUN!)xZ{w2X2-J|ucP$kl!^;Xt33RmAzlX?{8RIPps2lZfA@ zy&3X3;w8jI;`52u5?@SwGVx`^R}h~|d>!$P#J3XPPW(9W{lpIue@FZz@zcb=B7TPW zPsG0^-b{SJ?KNNjk^CevNvH3V|A_cV+W$HEY2u?PKSTbX#Q!G#o;Xc=XAy5lY!L5A zybtld#QPH;M0^PGLgGclhZB2=+lbqVNxUv6zmoVT#GS-4u|nKKTqM?riGR!FE5v=o z{lsSwpG|xL@kPW##Kgasksl_$hIj+%>9Cy3uBexLXw;!lV_C!Qw$iuhaN?}-0JO!O_>LCfWxi02URNxV1lzQhL* zA56S}coFduVjFQ2@zKP`5+6_8Ox!~3BMuO^5fgo%NIpdTGTY}7^2>?i#7W|n#H)x; zB0ib;RN_wJF5)z?Oq?U`CN2_d#5!?>xJrB)@c{AJ#7Esp)Bkzo?;yU1_ zg7_)oG2&kmKSTU$;@=Ygf%s3vFA~2({5tX5#P1S+K>RWB=fqzUe?vS&{7+(m`SZub zbBR~qS>t^^`2&b8#D@~s6E7iNN_-Ttjo41?Aa)Wz!*B-4w-YZXP7<#oK7}|%Ov+uE z{6)l<5MN4sIq?<5R}o)Bd>!!!@eRZ`5tDGiv51_Yprp{1EY@#E%m{NjygUOX8P_UnPEx_)X%si6@EQCH^z<2gDx}e@;A2{5A0m z@r`Wve@}iM=a2Ux-j{ek;sb~eBDN4OAYMp(IPqfQCB#P&+liZqk0CyuxP>@Dyn?uc zcop$ah)*FtmAI2wC+;KuDe(aDxx|CS>xhSlFC!i%zJ_=M@y*1y5#L38FY$xKj}SjW z{50{eiGN4@N8)kfkBC1e{*+i?yLmg}?TL3F-idf$;{AyaB(@MQAYMd#7;!!E(Zt6R zA5VM&v4_}8>?3X^K9M*~93x&qd=l{~#3^E#xSLodE)uUM)`=^`RpQf#&mbNkKAZSF z;tPn^60alnF`fU6{H4T~6Au$#MSKnMb;KjYw-Vn*dlAl{XD z4sjjv9>jYR??t>1@qFU_hz}q>koaKYLx>j;A4+^UaXs-;;-iRd#3HeS*h%arK9=}+ zVh^#G*iRfFP7tpk?jZgNaVK#Xu}qvL&J%YN_YfC|OT-%SYT`1nPHYhO6891J6aSR> zG~&~V&mcaN_$=ZJiPsSi5noFD3*sw@uOhyN_k+ z#N)&-5Wh(LGV!a#uMxjN{1)*$#P1USnfL?ZDdJCwzaajS_-o?76Ys?Fz+H%UC7wgP zJMmoNJ&5-to=3bF@!rHo5nGAv#EryGVmI+I#K#gJM|=WtGqH!bh1f?NAPy0SiDSe` z;tt}Ih)*U?5od|>#AgzpMSKqNdBlUnYl+tpuP45g_|I&g@62}SF2u8me?+`1@f_ma zh<7KhBYv0ueUEr9<@Y4sgZK)D|4QPkiLWQVkN5%NhlodsA0>XA_(|fYiQgoCk9dms z3*xVd|3N&9ru!#2#WVv7fk=I7qyVxScpm93_qsCx}-NcMvPYJ;Vj#67gzc zgSeNtf%BsMbj}UJlzJd5A;+u(YA-apFKO-i^49cn{)v#Cs9%L%c8X{=^3oA544*@j~K7#D^0vCUz0KiH{~ehWJ?GZi?!~?`<6Q4_bKJg&&THxqYme@=WE@h^yniLWNU zmiT(&4a7GR-%NZf@omJ95I;)%81du8PY^#z{1ovR@zcb=B>ojK>6iYe_?iEY{P~}T zzvgZ&1=dnvEd|z6U@ZmKQeZ6w)>2?C1=dnvEd|z6;D1*NT+DUSONf^y>!!pu;v8MftI(DxSSdaotYEqr{siFU+WXw5)h!R&m>$;^BG4 z%@xH{#6!E4pWLJPhi1~jtMxp1qF16%qDK;b5>BFbqHm&SqF}kp-kLwP%k>=n&dXKLRpKGyjl>hgt`4<#hIoK@jOHiFYcD_F<C%_E0Y-)(=Uc$#?l&y{a}sp2W(p_eJ|dbwhfFRQOo-tub2n~Am8C_naE#rfAM zu6w=WQR2=c%Fn(*G4b~#!#VgDDsO#-;t67HS@})ZDc*R!Vv=t*zmI%W&3E+N&!y98 z;=!uQcmBQN+5bR$|EPH5XBE$UPI23D#pM3$fy2tzzf$oyar3%!T{y=Um@hBYdbI83 ziiiI~vFn?v&rM1E->Ckad6VL)SE#)+bbp%eH&cG-u$tfaW%Xy2?vA`!-JgDoV%ICx z-obY$U-w4kN8YBm`9_tuzEknQyA*G}N%7Fz6p#K;!&(1s&Z`%ZzkVCEG()08u>xu5#sqYZzUe3{5bIxjBR@udC^09Vp!`_EiKmHYw`usNX|IL+?3&8E$VZ7Sl+TkN zARZ>3Pd&S6ZxvrwdgACg$~TkmAReZ>8u>i!-9-68%8w9_ z5^tvYaq?5dLc4}@KJg^&wUQ_0cn#N5U@ZmKQeZ6w)>0rh1zw{4$Pwa>f4RFGFP$MC zKCOJ`FBRAStKwVNhuKmgn|6Xz3W$OMQe35&}JIU9drM&BD z8s2I06YJF7q1&nX>bc5KT(9X?qu$%@pyo%ZSJxetZ#z%z7w)9I_4bOJ@2t2=`PpYH zU-w6fXUJ=zW= zc!s#GqVmJUo%Fx!|FHKRaB&rD-^bX{XvA28eKm?$5*J7z8g)qm0YkzDh#|J6EwIVL zZdgb*v0=v&C05j{7du`XcI;R$8VkmTof{i=)Tl%g{hoT7=8e9e@B7{Nd-wdZ`SYLW znP+C6Gv}O{IWu$Sb9jrOv4FW>ut(4r=I~a*PKjSy$Kf4xs!5+au!RA38H}P-7m?zk}Cv#t%QSSlD|EFQU z^#6?KxI7*~pJ16_vtYYmw_v}Zu|nbtmI<~C_N)AP)+-Zi7wi{IdYI30c( zG#+H`k@R|ndmrNPc0uD|=25|ZLEj@B?v?n)qs+?$doN(#eG;Qj^!kMl3VI)7d2%bG zN3n^yUwD~d)X(8j;myL^g?9_~3Jwak`^ElpMxS7}g!^6Bv0l&rRjBFx)%aKE*C*F& zvtYNNA=jx-uvxHM(2)I9^5lAq3bqM$3l0b-Kg!o_mSCCSUtOL*YOhnS*KWOT zx|QqIFIXnm@!%Y;U%e9EFX)r&Hu(gWdj-n`qk`>n{dNoQ7c@@fc*$}dd4>B0qk_#E z{t)YT3-1?9mg~+VSoR3(`GrRXI|aKRWqGe~k6f>Qz3xwDxgpnCvRt=b;XXmXTxVs1 zUeRk7d8=Tja?$G-ZpihTEa(;N6g^)$=OcQXo!f$FBlhW7yQdIk}&kY!UJV;pZV`9tUiY|-MylmiF|Za6_J}9znlg>wTO~v+z#AUggrBPL}7XN6;r&CfNQU+i6uU z*ef_F*!eK)dFA=)6D$*K75txie)YQQmFIoG;Gm$fh|8ZW=n?F`Mf@V%C)g|De&J<; z{SqD(-YjU`%62@0ts3u04sRFUDd-cuZsEOxehKdvUM4&$I4I%9Vz%2X;jMzn67G}x znn$=-uv_$e!u^815?&^}U-+P4RKlAD4Qc-*3${wQU(#(C-YMu2y>8+C8orFnVMxEo zD|$Y`WC`~O`X#(f&@173AJy>?tq_qTjgTES9rf*RP+XgC(C`aTf#lUJ0*U%pjX0ug8n~ z&4M1eU$+Wx7aV$k=SLV_g15>#M!mt^!1FAWt`~2Vc-IPEFWBL-_YW6eufYun9u_-~ z3U&)VA^4QwGlD&W&k4RDxI*wH!SyBkvdC9%KyQ8V6X6LD{BQ6;kF0ZiL-0+(w_NKV zUzO|VHNn>f-}sBKucsy5X9WK#*eB_{DHs)O5Ns4&Bp4T5DtMyc$%3Z{o+fyP;8}ua z3!W>uOz;B1<$@OpULtsz;N^l>3SKSPF8JSFx84^&_6x2O{7~>?!2!X~1iujcN>KAX zDEwPjxXS-5ekXQT|0nHzFY$g5{84a?;7@`-3$7JhC-{rtuY%@tRo3}$BsffPW5JPv z+X-$jxP#!1f};fgtX~rP2@fPZknljl0|^f#JYabsCGkA9oMHQGC-KY9g1ZRrD!7~A z?t*&=dIa|rOc%@)94|OgaFXD`f|CUg6Z8pA5u7HNE0`yEgkXW-Ou^#>1A=9O<$@K0 zm4ctiI=Cv~LBVRl8o^q@kl=j51%hG0I>CCuh+tH3p#T+3tlUDz2J?4Hw)e(c$;9S;GKeZ z3EnMukKnz6_X*xF_<-PPvcKbl!XFZRSnv_SM+F}f>=t}N@JYd^1^+4dtl)EkD+FH< zd`a+S!Igrq3cfDbC-|1&SAv6r-wM7c<@sLtkAiCie->OP_^aSXvd`8gf}08^32rI) zj`XA672Ha~cN5%Qa1TL`;9i2G1@{)*M=(`zU%~wZ_ZK`s@Ib*af@1}bkbM&;3qMTo zaKR~p(*$z`^8}9&oFO<5bBKWG{$ASZbp9y{;_?2Lrl>Zyy-wA#%_@m$&!Jh@!3jQK!$avE*!Hoqs z5!_U8Gr`RTZ;lp~0|mzldId8C#|cgl z%o03UaI)Z`f`RM==hPp z^ODuK3xEH7C8MfzozJ}XTlpT02%>{d?pw>;YwSjLx+^$dauV~}MwWNSoblQZV7;E* zoZ*^&)|V`A`viF_bSWh|3_uj0wONj?2u>Q@zWwV&4a?~zZ<&wn*G&*AcWOBj2PWE}7_b|1wUoyXYs z`hV=7{!g9qvST@(mLvHX=AKe#xXKm%+dAzeZ{_5^lbCx?WlS2)*eN(5^4?vX@zj3% zOV04-otgVzWE_w)*thaNd{;A z$L+yCX2sI#D0ABLZ=l^_#r)6x)jGibC=EE%{m)rje=Of8uJf>d)r2JBfrJMV9!Pi~ z;emt){>?qm{vkit<8S`Ye7?8N{{41Oe-Vcdl{4m5{=VM7`RPeyFX4fN2NE7gcp%|{ zga;BH_C{VB-+6JgQN<^t}-X@lyHBL!+jyAo>9fTy_#`AJqA6(AyhAxowTN(2teBdJH{qjDxOWyaF?Zx5I-5KM%GWvF4 z9FlngNv+QJMFS!)Tf};;Co>NIMek_`KVp0THD~$%-fBk|=dbfT#+FMN`!D(ZeD_`E z4DbDtdHgHJzR#WVKbynW9XWpKHve~a{%pD%(%1SnpyTQnI_r@;e#iO$asHEJ{)0Q- zzdP?9VbJ_N@15Hcy02%w{`J0~sNs1v>=(U1xOwY*miI4U)cDDA|I+)9hHL!wv@a0SLRRY^{Mqw%N?IRg8W}5m?HD$YUgwK zAFfB;TaX>MzS-k$Y4cVKMak+F3YV{-~)bSK8Lof*B$cA)$W z?!w&j67#5Fw_tKFhnER<3K}nSc#o8GP%vdR`^6_%D>x+QrB!&BV839}_j3LO^B(5& zSSq|(utTs{a7eIC^gTbYojk#)V4GmKU|N9f4+u~Gk>h1O!r@uM%LH2_yhV7YV4t8d z#PQPv^HwL5fBnMag6)Dmf`b|^`AJ#Bc6@@hf~|sGf<2<&FFffdj^`CD6>Jt96#ZV| zLxOofbG)cvo1m{u{3AShE$d|omI-zW){4Hdj`h+6o7b@);=OHgCn{=@mXC=-Gz#@&u!TY5!vVZsG01djtms zYge&emteo3_X7^^5KL?4e76gxoWeZ0o&D1Ud;;tDj^lPfzo0RmdDqU29^qLrPRAJ7n$Bmlgm;TxyYf#sp09^-P{Mme zZ}4WZJAu(FShf%IKGDmP_DNLa&4TTM1ESX{yyY{_m$!-Y+1e=SYr3M>DgHLZ&z^~r z4?&+`^CGt6`9jJo;aS62zg4(rfVoewSHkl|uV1+Pxx7A}Eb%skDWdmRVXydUL)b5R z8^WwK_REIQyPx=fLn!6-ZUB8E-w>|P|Nm3MJ$sJi=URkO^X*rju@T8N+$aOb;L*Pu zBmAFi{`GJ0$3~C``!9a>j+DVbAVRqVj4g$~0+qE3Fd*6xX+()V4*s2V1;^9ylyjI@ zU?ey++>OC_w81X-J(q6a&#kAtu6zmE^L?LU;Lmuzl77m|f37v~cjme%{qBAtX5de` z;^!we8u)wVD*m0lTa$r5mAi3^tD6k`Y4{z-#SHu%@M0tVGJk0_@V8(@6a7Aax5>bt z>W2=TZ{V-xYi_vCDJYXk=>VrlgP+nIBfkvYgY6)Q73U zR*<(1BSN*^Fe*ZLb_`>2sF6G$E^iE?C`4z=Fd7?z5K?7?LklQogv}X^wXC7}4FvpT z2XJNy{8irANGY_O#^tOpucP>Br!%LM2zn`J{JtLo1^H8^f;6s~GYj_lZCt+SmX!HV~+w z3JVOh3}fhAwGZK5iyzX$J6jYAkQDDtTgo{y3w_jbUYh^)mU-kOZZCFcy5fAHqj84xCv|0 z`t<&6xMb6WKO0~5D3k0fy zi{O5x&-a^eiy8O>`=Kg(_#+Swzd)eI5q?KKv>)IXfZRkt|MPca^izA!ei<|Hx7~F-->k)SiZGddi32-e}-Y zIpiCQY4TSNZ8GqucJ`aqWZ+Nri;rtE@Tc-~>zfSxsr=Iun+*JEes5mZ1o^i(v>Sp; zY~@rvjlbQaO$Pof4t{&o@{@)uX1)jQHTb#9x!@~k!@*DW+;R=yZg;Q`KP``jE4sto zcHH#}p11Vi)p`bXGz09kk;E)dohx}Mv({rOe4gA|J_dQ%;;IASQp$D~I-{qB!A#D3V`!0}OP-0XzHN>zD zwK!Bo4X4^*sHPVD6b;3LVYsPaE48U1XjDd{bcd;nRMCwA+RNxpBUoQv5rzjJ)FzTg zVpy^4?dN)G=tBFMV!psW-O83oJDcwskdIJf7!z&? z#zITsk65s=F;riJ?a=_Xix9ElS63cq4v1Xa@ru<=_0YkA@|ANtF)j_K^2*9!3{qCT z%1D@+mZ3U+4rqA2II3P8wX`Z2MN2VhUqQPuFCXm3Y9kHkpA1Y4j``Bwtb|TOJ?Mj8 zKDN{KyixlTv5y!*oVMleR{!$>Pl?8m3g=$ zUIoo8=w`rmQWOrWwo&?a_ARY{}X0V}w{I|Hgp&rjus4hwl zDUZd1=$Ke#C7tJJBoxE*&goSd)#YqhyZ5_err`)=H%989-xQd_6*`bzS=j{rnLu$l zSVMo7$Lgrx6RInRQx*u+H-(|*2LjOW2Lvgq8RbpX-8L#97(3vV346Sl$T5!1~gJP5u~kSSq1DVE+;2&|9Of$)X5!e&ASK8=`t2Z3r!b4vbL)_jo*@ zev%y0ufvSg@nhYnkJMAa;W8d1EM;i!*z7Db{lI1lCZr~vt? zu7i}zE4hD*h~bEM9T7qRA^H=-@y1df;|?Jr=>w8JBI*N@9#nf!hyGM~J=Q@&l=J1l zs2n0xR?y``h<1^qoyuScflzsM`UK+DnHh{w*(Ljkm>oj0103U3HDGU;5yO#VI9vx9 zj94k00$^Mv9j`?~2q6RoK)R$5Nk1M{eWWO_!)uWcLaNIvsNN%@0wU&{5b}*!B^>+r z)m5Q7G>Az0;Rw|@sDBa6YIPmlL{SbEKoH%5yc(~0L~NHbk0Zv(9w6C64iP9E(}f!; z%lW(!Cpm;;e&7bp=|rknFH%Kz8lZ%jA4CYKDX*iP5kfd&puwnx8#`Vhgb+>$`k`>7 zrUE!2@cDA%o9~4{IOfX@ZGO6POcn2|jNvLs7dRoP5P~Qy8DI<>;cx?8qKwtZVT1?9 z1tNT(2TaE#5y>8+a=vKXI|gLDbQ_`Jhtg!o6j zjB@}|I3U?Uj^~vS&L<)c9U!!4O>mE6 z3>)kn;E-KZlx#DH`a$845PJ>e=si$``$!laL8u&3APz-g48wh}rXI&?;I;tTAcqGG z-f0+7&gBNA>lP6+3P|~lEo`8C5rRVqAzy@$FS*SiQhY=#2O=5(Bs+~#FW@#z4FWdc9}(jt#-jCzRZYz6@eknPAmk9R9wQP$1VXk~j|#w}6%7jz z$uJO2|AAQv>}39HWKSEcu5K{74+j!#5m4@FO8q zm{1Jvs9=YX!hu70SPBr9Kd>5O0RobtKn`aNv||e)eqAh3UJ(K;=Nn#V5p)Zz!*UCnt_CR8o7^pFfo_8VVv7`0+MxP$vdZ`ws>1Hy(534-MZC z&f#eM{vjjNd=EkW5qSTQiw_+*h{FXB?<*{B)320)ak)(z<1qRd9diA}OJ1f6xN7L1Oj?2s- zk(m$a(3xEANP3y#KeYqz-|0}U>8uak`OM;4T8xwRY`uKD@H=hb~aT^!!Gjlne3zG7y^ z#0gjucMcm+ zdwLzHe-t$yVl`M$)O0nTH;z)nPNu*NKhv-B2R8Tc zfvIvgs=W=BQ}y(EQN;41>y@jX8@)|@Vm19pJv1iZ2-a88&=d4FXdDX1nJ_%ck4qy| z6{L}u=~Jg-Fud=j*Tx3S$Dt#T+WX(osNWAUu|H275U(iY*dN4xyoATOzs~Ir>c@j3_0K_px<6ot`rE+g zOFw76^k=xg4DB81xJq-M`o*XUobn4u`H*h4^lPEL1N~YoAhd%he~5UE0pjom_e&ur z_dBb(UkT-uZZY>4!_Y3qekHbpsh>!Q&3o$a0T5z3()>5LUk6+YNc}ocSR&&F*gwN~ zh-ioVV~7n@5bkF|KMGD5$>qdhKZ)Yug#z}t-vfHk-yuEd=a3xxIVhKQB_j1lu)l)o zVZQ{hqA~)lf54?ddcTJK5Db8RhF}AsH20w$S{{zpmIG1^gmyKzyUQzhoEh4`=mrB3 z|G>sD78ULn6VttL-#{T8dR^)LOz%sI`h0-%v=H^1>Kh_xQ1$ulZJ6W9#U<0|f~$kk zbG(D-^{jgOTtU?558BoA^uDWdZLjKcOXZ5(4ux@YGy+Ga7;--swB6xuZ)m)9iKq8_ zeIBV?9z%xQ?#*(!pL?3VmRsY)bC80}^z}Ky*#>{|^H9^*=c3xt_~!Fe;+giX=P5oGb4Byv#^3l& zo-gT{>E4N;toi!SBGzZ`1S?-=eHQvKbljFJ zk$V?1-!65#G01yk%%R)F6ALg9j?wjP>kymIVtLJ#2Vr-|C|$<(TdTjM_s9LGv;4H% zcm5US1COvg)riB~QkdQHz|OR8VzaaECV!NzX8EnZG*W)MH{%W27VLY$g&4o(E4EjA z+v!^%kFI8Z;@8}-*AKG<0x;tWW>}TX^W*dzXm9Y!04IkjS`xr=n4;z2mI1QoFDbI* z#Z&XLivlyVaW+2MFU~6}F)46J-=e?^3TI8X0s?`#uK2?9XNkSJ4g;W1T*P1xGBYhd zH&;wT`uRuY*zI%v=H^c;$ped$Kc$jClWP9V0L`BUNcu|A9;RpGkUeyUIE2cNe^akf z{ckC-zbysQ&(hea5BA{nh&kqPdK?^1kHz`?I=N-QJinsA+%h2POKz?7HGt$agAZ$+ z$RWBV*OezKM@~}!MIX6kz)aut4~VgTIr3)(1OhPP70Az-8W=ww`@n%fZb3<)D0^DI z)<5La@~2bnQTa@$E;*%sI{zp~<8ICq_`PxOSnRo1S4XL(?&h2x+Eaa4$C93*!;6xi z9Di{>)N|00{=0V9K|XCtfg^v&?fD~a%b#*ikK?=3_hx9njpgq2y%V)x57(a~1E8NX zHGgKd=1JsQeIUQ2Zzjm)fzG%jNdAD+s~%Ub2H1bWsP-q_+|)O(cQ`*#JskFI_1%3w z+??#8zS!gZTIc7t=L6D%`s+x~x*Yg?B6rxc`xD|rO;H0}9^m2tx4)S4I}f}dL_SW( zEhPV?4ttpyw)+YB2RLVl<6Gxnxb1vX`JDD9jC0x}ZntNhU(FxCoxWj_4CWji! z_kWPv{6%tyKS7TElKhjLI2(ZbX|X?0TvCKj2{1TX7l6^-1JkExV;4jLVmXiz1&A?t|G~5)!A0>fuxC5eyd2UX2$(*8`VhMr!CFB=ZCGZdlMImSO$zfL@YDpRYDj=ws|@_Zt}_Fm{*@Hv zPb~>#&nnJGe_%7Zq$qn<2^H4}z%sj>Y$#E7E)@`-*9CsKUis;P{+?S{G!5GmqCFA%LaCC`T}F2xfR|Y}DtKi5dbN)+s7Od3}W6d2$%8!-_Tp zVX7KyS&Rz|<)<0v0qFQ)43kTR>UoaKGqi};ox%E0o>?wQVtO<~-Oa_H<>AHUup(Pu z!%}(eAy9ri(V@yvc^FMtO!LPx^wk2cJEOeHgezPR067X(HbN+zM6Ex#E*Mu9WBz!~ zK4*~fixJ?Si$#R`4lnK`^TgqX2v;OuV<@NgA)R#0k)7k%xUD{*qROWh&h*no0_laT zD#GGTt3GyJ%zoANgv!AmutGVY%U8f2|EW2o{5$Fc>FY8;qwfwrPr6PpI~s-e+;qF5 zdm5gAur2hZe1-H z3hzVB+R9wdE;FbPMA^^Ip*IrL#= zm6OByru9{}^NrkozL8tmam07tf2(O_mfb$yZzU*Eq=Z8{s3~v`3m6z3R`--!pw@#E6wa2qTBVc`R3qIJsjMnPtSz-zm`y6 zulG04Z=PxQ>-g&H&~DEJclmf_Tm04Tl_*a>*ewsc{KqTc@?NOe1odktv3}B#YepjP zlK9zK2VRfdIE>{y&(AtvvR=*%kacq=?^y6O#rGf1@i#iHbS#={_c5OlT}VBl!ECXw z3*Jx(4q0!9uA;;8H=KS5ad22~;N(#!cihh*KFmmT=)(#<2Zse}PVUl&m3t1kt7JY&+5!wfvIGiLBbYM$aZCdZ2n4wFj_GPyLUEY8mei}Ov=;(U{|INyZpq5D`~&3i|2dcw{0g`4Te zVdDZAQ>dcs89U!Po1U$;Kd`^h9?RLl)R}kPg_>PIy5(%p@&`{Sb#TY^zzggg@{qlL zgB+$vJLUHJ4RS~l=HJ4~q$*gc#fQnIye60OTK4F6YO~Ml)0}c%Pik*Zla}rIMBMiL zqozV|5iXgd!{nMDTyKi<-{yzb@shqauE7FxtG&S7YA=Ys`G8h^ePF7-gJb%V2FZzY z8W!g?EY9`M;_QUU)cqS1sy~d&I~fKL>tK%b7#KqgLRhL1ruX5|dfv!0)uC;Ad_XoV^1FwwMtR;(%;(&(3(Ys^9mf9n?D@%aQQor&^Vha|<6Gk2@%8(B{nXjW z2exJTFL%v419|hNZ12{u_A5f(yBYK6c6#<_lM56VdLptcYOilx3A;!(Q;ec^=j!;cindV^Ga$<&MT(voa>8@ckqg7OU^5yZQL~; z!Yh?+a(E!y?{B!$*na=xmB%)HD4;_Q1u%>UPYQg5<;@z#=f~3LmBKU6oJ;b~82j_- zx6W9B`aN~b2d=;KNaQII=9eB4{u+7mLh(PX`;7%<`LW??i&Oh)FwSx-Jzm+X@`3$1 zKQ+S!zCwFtYvp=0$BTI3u7BH0Z$^2?uPi^V|GJsT)3)UEm-XYe(94GUm(A(rUG&z) z$n)gG)uGs8Uf_#?aKN*Q7Zxxz<`q2Bfq!=H%l3v})^!{5EH85$|A$9*0M=2^j$zTU zvrugGg*d%szFHbfYe{GQo>NcW4CV17nDaVZS`vc6#yKw?-Gb~ z)t^RKk8Q8tydv3>^U7p+zd$QZbpKi6xbj^Bh~p9z;rIP;1<&Wo6Mvt2D!r>oJB~T& zLl@t&$17MI99Pb3zy&9aL>GFG;rO3t?|uaGKH>Df0LGtHow*gAIIg4@1>vRw@OoaO z#R~6UO}BT$_d2Kd#1rT4jp;?t)%?o}d9nBN-*0&z>ie*A2;zsQjQy#H_*xasXhTcUpJ8?68A85`4cAmu!bulHwu zLv7Wcg8W(VQVZWV;6_Y*+1ohmhlEXFQ;s}P@8URKCh|dh1vCM9JRRT1!A?wBUMv(G!p#v8EB`Paun^^1K3?JE;ILxf;yCh#9I>&Q9>Qc_ zM_e1L@j)CqdGvXhZkE)CO>(M8nJZluocOEIyhC`Vk@+v=`hm8#_@p%C?fbI+ z4qFe<{cSLfdG(B&K1O-ZZp@EOy1Wc|m*jWhioGsE-W_9k#-1lp)vj%1zOL@;5|rx) z!ag7N4@y62G0QK1_(i(DOXJMfe9%Ydt78fCr|$oZ?ic>0%uhRk+rRC{Gk<(jZg1*` z=We|^PS4x66Is6Rp)+2^^nE8Wf2iaIYR~G2%8q#K;sq$z5AmHAc#iU?AMES;a`~4i z_nyk}H)+~$W8{6pw|es3X~+k}e&nNL`jB_7VEv<3eYy*B;|1oi%*Y6&{uh}adFuBU zBOmN#e(uO!>HPXuGT(B~Tkk@-emL*O8<*4j#OT{BUy-zU8ji#`%KZV9$^n=^qHa@-&*_ZZQ`QINr1-Z}9?TZuV zR!l*zAG$tk>xWK5t{=D_(^Nvwv*tOhUvvLX#CwlqzWUIAos0UOQs!@s`I6d`(Rs{! zUcBT6lqVm<{DjR?PefjJEb}Lptoi_XX@L1RXAgT2c}E%Z#h)IVj$A*meM9>PbbYi{ zu^hH5U&K48pq63W^VOc;BDU1Be3ztC|A9Q~K=$9j+KcIV*1Le^o^eOqf%15m`S`D% zq5Emxp{)PTt;=Viy!m97551I2^{=;?`K23eb2rL8r!qfx!1pQgROvgY8BHIu_^%q(S?9&k&YxutFlb(Xw`CnEkY z?w?N1x%3_6z27tcdEI05yl>x;pSM}no73|k>nP?l^^TI`32bmap()IJb)p^Qy4R|5 z-FuTcj3v{~zsN}65rF$eH$wg!S&a4^0VId=IOSFV$>D@JbCe2+9YO zUvo-yMyp&;U=#A32lJikBJ?{Ic8kZKn`3>7fT~uw-^$_M8Z^a_9&Vtrzzo>r2lM;FA>Nvr z^qE@;xbyGMUmyVUbsgn_`I4~7M-_b~=J(Q%ITU_dK2uJafahm+i_E^JxI@A0Tnxg>AKm*hEpNf4bz`OyS5f0_X2j}{~983X&WIFTKU@$CUXp_tYQRE}xk zf%>E%0T7p0vq}Oc7kM$PY|JhxoC%v`qWcVb7}8&C&s;sr)No$ihM}uzMNH{~Z>QQh z_{zb-S0)zp6m~R026<|5*XpotaWtSfC5Ea6Nlb4qh?TJT#EQT9x8raVX3Eu!xHT z_)ey*sKJy=l!>)~h^hIsKDe@+oJo6sWaPtEoh7ZgsV zem(M8b7m^VeaTGwm}*@F9^aZ6#5cKQi8;1$IKLKW1xjyDQ86se$;+NKO}?jLl?Ub6 zqAT`i(+Vr)FyVh@w&WM(a4(sIK2kZ9D8CR!B9s>wWEbP}Nx6=9E2lven_RlXroIj^ zsQx(6#Y4Hi?@~U2#io3si%)X#9OxC`8PWJyHawKmAe4>k^`UYabg{{~_E_e}m|2ZWk=Rh>oC+{Pdl#V(Cxn~Bq zPmllTo+prZ%lnfzDEQeb-*rhWZ{EPktc0g$H@9hxOOIzRA7FJ4Z9$ zF?jBBvV63geld-$6u&w7>l<(_L! zM&8-ayk_!eJf1ngeA~?rruUQH5+1LbJ8D`P>UST-Jo@&V=OS-Cfc0}#^ z?>74MI^qH5?)A{G-9Pmrlt&NZ@~s?}PvgriDQqu$d7LhdPI;ej^2I$=|A)$1zoR$k z!T8;$tAA)b%T_+xz5-g+?1NMzWZ-@t?f3F{PpYwic<*^SpNZ!$dGBL+pqM_80$+3C z@5JCfpR(mACJXIX`W{UH=hY!^s#i^9P%b<_`q47r{JG0OEzDV>Ic~6?4Ym>u)>kee zb@2a@*#TIsTP&xHc%ff%ZB7k}BsUvcqQUHo+yf5XM!bn$mw{9PCCckxv&{(*~sIjmway*-`B;{gv0omV?0ys9pKU*h= z;i-vrWFxWbk2`tUW6V<)6cQ*j#(Y zYuBUwvOLzmVdSoKi*MbR`951cK##iS1DI=nHVY%c!QZK}CS+Ul)%c4)sy~y}&Hitp zi~C)Cwu=|Jc(IGy$768(f;vs0qv;>%(x2<%r7lhn0bBf|T=JY^7}bG60ksdCyyRdW zm6v2wx6tJIvx;+yAd@Pe24hksw)jQ))AO(lDlf?4AtvS1V2=~bg7P`yFy;R2={W%i zRGwGJTYe~qT}v>!Dfegd4m>K)l?H*yGf3Uk&y@y(DIe#Ok9TotK$!YcVN5>BrH>!) zg2R;a_DMF*8M5S@A&YZ{EY2CSIA_S>+@i5KXVBuDL6c{=@+TXcTXI+a;9EqF^2i5i zEPZGGX7~e?fXac>8L@Fnz{V*78z%?YI3-}?ClRaQVb?5IQECdUvgZ}FU|Q+0$GdH$>;b4p8CU$}0U zMfxE3>yAMpFZIg}PdMx%<%mBm-zm?ZNuz3EWdWt;VY0E2V4654QY;m@u5EHXO@ktKl&6}mhimubNlex5ff=X zP~TK5KFs-o-HkX(P3%az&U$k!IlSSIiJ0mmY{#RY7d8%he9T#Bf1s4@WBT}MHw?q$ z+Q{0I5Sx!>`6a$@>AFnGx9sDLGx4!;=)_MBLj7J@->}hjtA9Y=E&2~nK83oHgED{c zsl&erpnUL1D}C6aAc|pli2nm2m_va4in?d%`QACxN*`96!rFfPx-aX)4h`lNgYl~) zm9iV2VXST(whZm~N;v*8TluIfn_R`|@3olMb(IB~uV}i4&TrO{tbg^I$1cM7{le>m ziv#-YZwyDS-vCE`;Ae|=M(iu)_(R7%L-CvEF;Bj8`2#3Vso?Z}j(ypWJb4DoC%^tY zcSQ@Ck3Do{CCWR5KlR*B^NGKORr#bwD_tFHW27J$uBw6tve`Z`s59En72;VUK+DJ<406mYnLlX#6cW z?{Jj&$^Oe|pRX5ISeNlt7s{I(IR1s(+<7P5c-IpVepTYWN8}CT| z%#!`24}Pux6_lsN*#0G*`*b27IF)(+i{3Kio-;ZA#m(FIAa6a5!>=mzJc-zCwwLH9~nPDuy`2KrP?t8?NP!VQQOf!%2QzxfH4e|vv3ov*Yf znI|7Smg2{sV*XKVIJJX3Pct`qhtoKS;e)-+x3v<^C(`xa zF@ei_))DLIde1tP`9q&vv5$$a;ZeP7V?t@db^KTtAzOVrP5=JMR~>ZkN<8LVXa!7GzzlU&{> z`5yS?O5`c>ek5EmIT?BB*{px!6&+t7Z+VUF?GalVLY^k`!E^WDrv!PA%=fOjbSD^z zg8J`c{e!=t>S7E&$>SNbMxIIMyX`6F<3In9&PV%)tiRtjbx&jbwqoXAe!K(K-bpn>zGi;R$3Gu|y#E{K zh0D(V8F~9goWBzfzvMgQo~@YQa@LBaBp<=)$^7t`&JRE0v5Ur`d~h3f=F?8H13zO;(tG5&LSe51AMn@>=lwg=1iO3xUZG1j{mhT)NF)RKPESRD`H z_g_A9eg1rs51QjQ%(M2^@iBfsmbXmf^ZI{}X^+?c_dm+{PcxywhAy%KHJd zoUis4lD;vRB;%99r|I|hP|o`i`0thTmyH|PmB-k-Fh7rYq}t^9(Aj{-Qv+WXMj#iL16unq}rbztPjF=ltSTsB<s&BvrKE2_MaHk4q7>0{Q-;+xz`Pxpt=_|x-e`eCDGIiNJq zSK@C!Vo*b{CItJ9HK^Pf8`Fachmx*vM3WcgLT`ukDPBYgRUQ+`F>eHF{U$f%^} zU+vY*ubV%O+6&2lXa3Cl$5Z>XOZf96KclRawX=N1%*n))u3=95rG~*}fkxWlvIdst zz&8c))6{fSyEyna5G#k}WGuyX*Ju8P3d zKKc65^FynQ!M<`;Ir5&r?Et|>+smB)hYmXSM&un;%(vdL_wUHPuQT6opNptH-~0x1 z&mp_h`R;j(`8hikQTs1C$b9^+Z_xA7zmlIfd#qf#8ttWg!}3?7@1BFaTlleaKiLI& z?YAud;m(qekPk`x+QTP2guLrJme;;_6}6|6q>RQ~3T_<8f;!Z<1Is ze8=mNM>l2p1^X22hdf2TPxJDP?~{Dsb@ty+y{BG@^4iT=|C_fin~6Mr2j_3|(p&$D zJUNNwzs#Qb9P%#V@q_QD_E6hrQXj4h9gXs`Em;4_8%BhYw{)|;n{VBg&R^fxtiNvS z{clHk=a#JhSk?P9&e{77%RgD3z6HulhqL_Wl;M9vZfwQ84L=?Uhvz#f&*V!VL*60s zTX(y1H1d@1Ssp*LbRXpYtvUWpugty(dAG;|16Q{oPm=t!ZZU!CPu6y<@0Ni8T6&voiKK(NFXM0C6Kd-c#&Tl-0`P!%N-4peDc4Geg`>#;_i0;gM zw@LGlM|t-y%ny9)73z<9^cfe&UrE%s@UUeD*_^<89a|+nwbHy%Bf?dFy26E4Myu8|2X~*qZSvcwvT4M`?ce?L!P%c^X%iH;{Zp>mTZ5wyI<)< z-nI|ROFKv2guFxS?YQ5~^nCEk`?JBLHZ4JU%YLlC^TDS)k9;V^`T60O{K?4sWdG>= zhJLEAX$P|Yacvpo-(KO~ky%qwKR$-#2W_&J?!P^*RpKrkF8pnJIH#g8xuI*3d+QdOF`#)iHiZ7hf zu$2e5OM>>0?w0}ECxM28!=2X2?fWs&cF=Y?eE`{}58R;-JZz+_x#S7V*P!e-`2FY? zzeL{ltM~(BX<;Bd+7hMv{eZ#s?O6Y@U!i{gFy^#>m2H2yn|2&~7s|bIKe6&d+d9pzSmRBrY+O#d(OVtgyVOT2i(>>MkF zjnfyeZ5&UhT~3wKlJl3bo!nktl-tWoU(UAK<1c92<2S&DnRbpFaM?L{%+BeH+cr6H z`~KqiMQ(>Z+VI(?58N#e+3jOT#?EQOQCoc4;M2z8%ieZ>LC*rd^zD>8(xVL-ZF2k) zxLqGRN_I{cluaMFqr7wh+2wcv**Lh*ksqv(F1bCuib_~^X_NC8$Pe<|^D5ShmW}y( zvF!7g$qzbjhpSQUspI?MEj`OWKpw4UUbX+b^!)0{;Q0Ui@NgR6?2`S@3ZgG>i~32j zf7*GcEur>SM-#_iI&sWWl(#Qte&!MH;bYgxi!)zTaQ-34TgJ%s+}Hr0Xg9Z0GmM4T z4xqd?%KC>5TOC5)E&H+Ew)-r~U+E-{AJ2P%+7tdmn78cr?I_eQYvA~sH$8MR^3q1; z=Rf^v2XaI5duc2>1!?AR4dqFJk?5cO2(O`H=8C{1?*@TKoqdzq0(xUv@v{ zi))Kezw{TDV<>#G1J|@tpOJQjvjtf3Q4%v+7uHaEEt~WGkwR_yntqRrk4@V*vJ%rv zP8R*e4WY)M72)8%Syzz!XUPxmK4s=;-wzAkLV5QZGrut_HoO*;_|YMj>;82;KQhJsP2J^?a{ow@UdBd3N z?pGLwN7qBIpNQDHDa&`ATe}8%)@ICA-n*q!-j~Gur-?VekNPPinCt#}-NIE~mdbK- zw=j$Z$G~-~A4e=rQ#o(Pg<*Isdc~mUQP*^?KXui9YR~%jXZ;e8krG~!KYM$ zHr^D4&zah|n~k6)(Sz@}zy4-#xD6N94wS z%)gqxVi0ME@QSOhxDEM``0JTVtLXleC;qaom+}huM39kt?j1j%e%lzfXP3ty{FK|y z%0szN^4FiA@ig+zOU&;Z?f z=H&MKcV(kXztN=++@T+Ch*cO>mGCwPCyZbw;Mi>B>C~PrE#mxCImO0-U(OwgdcFB9 zf4F$zrpWyz?)(Si_|2qm-@E*4l&8#Ox$@dszo);*R=!{y-_l#pV_h_LnppT*A!;mz5rDTm#Qj`rm9#V||CvDl@upGrBFm zp&0JiP5(RML#QJ@^52UO`{IHFto(#2;Ej7egHl3$FXr+baHA&`d5^3=i$-E0n6Ux7 zIO90EVVri=(z8(>EnxkEE6z?wo+tAYuDRge)yTW$d^NRZ)BUM!F6$4w^3X?6?vwcx z-Z+2#v$}c?1{-^%OMmo}S#$;w?;!G?)fKNytmpQFKxchsM8R_FDj?2oNFm56% zxHLEbIODOCsODvCacyGI<_S1$gYix0W@8W&&d;_F;|7#0c+^&j0NY-`}NAoe&7i+2)Z)QPeHtZwp84MeV1~ zanhezb@_uRFCEXk=(EH5#xsGr`Y!{O;5hr0H|Tov$^PT__O_N|_<+ohFa2)U%aC_T zebdssP+ptM`kN0v>O-C^?e*_^KffG#Qa;Q7^~jE|A@3A^z)|Pij=b~;maF~4 zFc6Ns+b{eWu|wyl9DON0Yy1VQzj4|f=c9Z`_?2r$eS*BLkmWBu)l5}sK=ymo^;`o7 z^85ZtolPI1epV6dAH411R25r_nQuRQ234&-SwF4uv$p2=JFNakH^z_8W&Nl3I+ogd zJ*CXcb{I|l>l9gUz5ji0(ff(6V^|)zYQHToev-7GKWW_bD&$5P%a^Y1dJ3t(oO!Cj z>&sGPJxX(Z5w%C#E1dH7FSn-g`F|`qW><{w3$pyM>uae$+*-~2=;>?ddC*_Od`kYd z2cW(;#Jv2*(R6;B=QA&CE2a9Cwt)HT_iu3^>bEUn{_vX@Jd517l=*E>+(+$;0pYs7 z%{U(F25rfEBF67KiTT?}@6hupt(o~%!yh1j#ZO_Lmh#$`sNZuc zb6p>2$a=BDqo1etUF{hxfA@(SH$wfcGno%wIr$ajNiEL!owB}e#?6sCQQmeKUyp}= z`3POl{&Q8I*V_%q`oDL!e3@>Q?dP%lz<;cy`k1$jdH1t-(e>VTKJzE@yz|ihzy-{A zdwLA@ud-x+%=h+O?n8OYg)C1scs*a9od3s@zP}6QeHS_9U2^_^e5ji0Z~Ri0Kd^3( zeaYS({5*U6n9&oFN84CV&H=9TnKpayKJMRN&hn<`^DaUCZsA`XFySHO12C+G=X2W~ zXVIgj_6pWtv&Sz5C{MnUdBtaI=>C$G&H9DM4|q{-baQ(-w8`3&k@_EJ9+{gn7J0wu z7mwPPu8$#+_wHg8qP+bH*3Wosd>8UOng8|N;+^RFNiO8_>UzcAcFxcH$8RzN^?grs z{4@3`q(|R?@Kl4>FB-CbvF+}&E=2tu3Q`SG359=LqKgyG2 zKJy9p?|e1#(pg;ogO@&CioC5`^T+EWlRn|~k;@`il7HG~vwo_<@|LeyKJ($VH)8w& zo$q{7s0?|(r2pN@hUGo09vQ;;9WQf!R_*=S4#=|> zuzZ)x4m=CFw~l$!es|HMAT7eY@4yJ%uRIHxr^4yS`Dg92-t~s5c_T1>N{r>%+h0fJ z^FGVxqvfY{Poum~xW@02^`hq=ck=+sjats%+U?G!rc;OTRD;)##^w6^^zYYwi0aMH zvHh`Mq*8wU@;>g1X*1~gm9~QAo7U$aj{1W#U*O&&#*n;MVKX2Y}8cT~>ncl)Hie_h{4*Ms*xmjC^ij|Wk|Px$Kir@X7ZwdN(~Y4fQ>%IQ|wNztM!eNBFV#y|M^- z^aGZ6Hs16Z@{|vm|Lel{$iLmf*N(Yq0?KPYVtJ~;>y49Tee1YeQ)wh1`D2zpH?;$v z6puQpB+lemRr4p%M-bbVwvL3vZ&;O%E z%Qr*$puC^h;`Yqp$lEsN`){oM5W0Q`*q$D9-=?wJAQj=x3@7299ch4IEv@Hk`pl*p#E5 z+~5qh5v~UzL?HwYLJ^@IUG$?XRMSPjkb(jsx#UX{0U=ySAV&!tg!2E)?(B?Cn%U7l zE3y8){^(_CeN&#D_kNx!JG(pU9M9v&oM5--(cw=1v3-|s!qPWx>im7k&13BP+|Tbn zU;TIYt-|6vj&;ia^-m*C|&^R4Ub@m*J=Q@-Sz z!|nDw&hKa6ZS@Q6{x!3S6F+>nZ`+yu=1rZy-TU49`Tg$yK69HjS$vVl?|1ug_V~7Q zGbjD}ZOi}4;(IrD{(hisW&3!hw{ZTB9DnUD?Qs$$RDgvJ#L)4BIP7|5q5h$l7psAn81q0}^l{3^E2Fh%t0LccAD`=jh%K7mL5H5V%ym1b|Y)YC-8Lg@d@vY9a0+ysCevg$`O{LwJU+~e@EIPmV; z;ZFX8RsMM}Rv5QS&{mnXZTi$BrrC>M+WSAa6;C|3vh^+TO#9(uC$)`hZH?Vco?@*>Se5v+}#~_QHEuDuf}9#Udh30$l&F>&K!QC(dDYW66S37M!|l0hUx= z;FOQY&)RD*yg6!4$Bcyw+h#1CF&7ux>^r_opQo5H54T}p{pd61lpep5`en!47v4mI z()?I!Zs8ofstmQXjTax~m-$QL=P%;VSd_-&3g>*h=xoNqLC;^v{5+mrf|$==x5@M^ zT|m!%nuEPvL+;;p+VNA5I1sP7m^}9I7W;zI)G7Aro$UBZ`wQn_nSljZ_7;eGB`Mk~Tcd#BSWP zJ2&h+Y7KRZU~gB(@3FfbFT(uBua2B2>;?-bjJD0l>+f@Cpan`TS~7FdOnJE;{^i~e zYsb&P>uMIvQpV3|$D>zxFX7S|^Onq6JEIMRd%6iK%ZEgG_z7=7Uc3N_D&yG`IXgR#+bHAN!&j{Q zi|kzt%8yIoquBC|P82J?^>6zZKON5a-2Kztiug`-{77rKn{?3D4IOFO!}~#T><>3| zB+e66A2)O)?qgPc+|ZHM=Bj8BI?~!g8SjRUw6;{nyP+dd!&DzPbfmb#IyjX(4j*Z4 zH8_I*<%W*5wpPZwp>BM-ER~EOSr+5`>4uK9`2Wfb$oOrP`Q6Zwmis?zkOen%B%bh9 zecaHpcws}vZ>P#`xuGN7{|yvCBdK*~*DeZS5Uj*jyJMwarDgP{+&u#ctQ^ zr*~&8o{Pb0TZ(1e1pVKTp+l`GE_*U=_dM7(%HxM3KF_ajxZ!-8X8B9w-TZv}BiDXc zyWT$Af8ShvJhPuU*@@Tf-;LMp-+h0(8}HhY$LGX3xOH(($E-Q2#V5|QpH*dPO5^d= zs#iRJFRr+?+1^D-{_CM$JAN3YS*dAm&MlPQ5c<-NQ{37f?rf^C>$Ucj&NKmqW6rduyw0tbSB0))h6tE(? zG(U^4NFej$HEEvZTVg1m9q(n|P`)LG@?m`FoM72&ui^iAPh#ou#k%HrqolJOfE?OO zKKq_OtlM)cMo#kn>p}4g@pcV&Cpa1l2l>Z|3s0R{7C9(>?xK_M#0pH$!TaUrRq9`U z=c$uI?w`Z4{mxk=#=kOtNeXMu&0z~~ojgBiHcy;`#-R;&61TD2iSa5)XYZ_hcDx)o-h${ET_aW}LnV zYn7q-IMIGIfR}I3`TL0-3)ze1#qa z{dora^R)KaxT{?f!DRPFW-2T$Vi&L|A)9Qoc%i>dW-Q%aozi2iD(8t@+?%^r-PiB8m z0)_q5B9HR9$Jcf6^87r0kuKgnzMA-@b7na`JYF){!5GWzr!ai*nt!w7mnrAp}~&~#UA$Y?#Cr1<}1pN_|n5)8IQ%DJo96L#FFAw?0oa zL!Y1d?-H54B0tVDCA^~kBmWXfSJ^(yM+KHgry`#9Uv~SgX@639rf~LYbKRp`k)Opc zD~YZwKk^&mOU+m2Uuf9>Lc{)%-*f*9=Na}t!<%p63{U&)_+x@yH$GZ=(uupJnjzxM zwxzr7aa!qm40ijnG&MVg26T4Y(q^ZREAu}YKgKhDk!wJcAMuU>Mf|cw-urjr_4{Y> zUi;_q%KhUMZ0@4j3+Cv?hfACUrucb_HRA)GpD$)sS-*JvNrwDl_+Re7Jii1eJHGR0 zEII{4q}iw0H*Hq#-?@G^kG-JSS%R@FKjLT4QD0wkufHMQGymNA9{E$V=D|5-^H|Qu z#wTn!@wTOW3|3Y?89%1o9;0dFo8kPG{475va$tUT`TU1dKV-Z!1XS3!^N-=n?CImZ z^EW%iSMfXc4e{;}Rkwe;@~ipTM8{H({oC>U@RpYktq<0nS$KL!+Y;vvkh1-k#5+Ue zvUtpJ;rs*B$C$~r6O_feP9-IM2k# zN9MQP3hyOM4N6oNKYI=q>z|v#DXNpbB>#-rCof^kG!EW_%+KS?EXa61@rFB8=HT8j z*M9l+=~b~`=jyamfbw|f`t>w%{klBflz(MzpW|7&{L`Xd`Pj5+XUQh)i!y;;Vo0gx8d%)U7PpVW7oFP>=qZ(^>^|7cFWl5 zZHFB((Y9*G6%3;cuP?fVDp>rnjcz0`m0`E_vx!LeQ%KYQ7Xg(tQxN@1RE-jeyw>=28$ z=NBvIr<~~@#Ovmd*z8=XeY<_M&z~0!I)7H(Kg91(LjIWZyt@6+I)89|(DVIl|L%Ia z^JknslP!&dH$;m&xZL}5BL7t1zhoEk`=9TR!1qVs`y=rE5%~Yz5wQDD+<`pmq*=2@ zbu{nMw#S&AQ?qu)2yjWq&aA(6-WMQl;ltf;>{^=WUkUkf{a0kSR;%)ev->KlO!|GY z?~lOuN8tM-@cj|^{s?@31in84-yebRkHGgw;QJ%+{So;72z-A8%8tMY%VL*AEO-5T z>tD`$_Sj=B*R6zgToTT@R%O|&b*v~J>~NmvD34=*cRsi7;OAh<5@ilk+bv7x`_Fe! zCKS8sPX#~E$@s5_Aze95{JjSLstf2dVQ~H-wr-6726iAn*+{9Qi9hkYxBkUC>Hl}4 z{yF}>2WzP0&w@W6ZzS_bKQ|^l7?-Kdl_gh#iN&cI`Uznz@rzZUyUi9YA zPgmQm0P-2|kD&Z~f6V`HVft&zY2t7FI->L&pE$mgQ~BNZqgX3T{ci<-D`~G0-9ohd~H4OTXbKY}XZo+Duta81IOeDg=_@lPLLU(0Hc{8xiNGM=Wt zrg$P)XICU3{^!M@{Hsa+YrvnZ6Ti+b5nE(?**AZKt-rgzv9-G7zZU$tI`Ql53J~Id zdVKRc<9~NOe|NWNMy)+zD?g9c{`d5Fw}0+_YQ1ej!71&Z(0>i7|8>ycnoytmud^HU zc>I#6zx#euYc0utJ@~Uk{>Hbx_1D=A%Kr+H-+e!^wYKEH0sQ?${^YeVV(w}C%T+Djw-F%-B`O}v>>l<4eN&efxADKwg-z|@BtFx<1Uv2p3 zjKA8%NawcyV*ZEcW&VE~4C&@+Oy~cpm%RHwA4T+)lsf<8zQ5O6wM2h*AdjG(|3qH) z=I__o^#!X)+(&Hx1V6XQ^uGiAx^kNIPa60YMXyN^mA{9-FWMR|_3s9M{79Pqmf`%j zsIeRLApDc4zu@NuVEW$)eqA|D`X>zhK{<8#sr-$n^7emIssCNzj~zwRzwwve^}nF8 ztK+IR{C%c>yxP>P{deX+BMqFNXJz_tiHF@H&(iw8o;BAQG@h)!M8Q&yB=&zo{}TSY zp}$Tilm9O_=pT$ypWDCweEu)R_1|3j|2^Q3w$l7R_KLUvM~+t8)ss~h^DpNA)g`r4 zjo{aR+FgF0m-+v_Fr+J|N&mEg-$xOBC8hF<@n2Nxe;@dh8l6o1`H9~8CyuF){{LqB z$E!bNUhUrqw10``XzkzfwZdutwjs8ELVtefnE&4o{dGE-^iMAh=ltKl{!aTR+W)Pj z|L4G;)%dB2KX-_?|HqH5kNZ`vv z|5dgB4>CiVa+>)2P5eH}=qD+aKktrzx0U)o1pf4KYCkpcXC`^;pE_P`*AJ^I?SFjx zf24ugDO|zFKO0N_J23x~B+mb|p6xyVr?abK@)LI5Dt`UHjDLH{-wpm8k-yu(ue0li zRh9N8B7gKMu0JM_**rMw|Lz38bqKBhkDTMJzs|0T$xqnzLHT!-{C9!BFi+i1o9chk zz^}9GhgFsKW+H#)2VDQ1B>&yu?2(JI}lR>+I^dstvy}DE}zQe;@dZME+I-zs_#8 zoVs+k68V$oas6YG|9C$}*?aycd4jrMt-j>yl>Lk!-)cV<{5&Hw@hJFp@dU-0w1O#f$KNLNmi{teT-{oh9seI=#xi~2uS>YoRHQlpcJKW*ZlT_64b%k+;| zf5r1AjtOP7{B0y0`xQ8oSk(T%GbW#;=Z2hF0+NR4`*b4@0_gn)sK$5zhRN ze}4Y_vts_|a2$i^1lskV=ri8!pHhq(1g;Gm6#WxRdH+9N`u__s6rZE6rzZVd@ABr4 zov5}O^bmZ`{6Aj371#d-KhMhi|3&cY%4yL4~PpXgq5BT?gt^SWe|74Bz&v5-K?5-&K zm(>54p}$Tilm6Dd-unBi)zzo=tABCq1{V8T2Rh&Fuw~z|F~|+ZysCrjW_RRz0I}7F+v^e9y7CiOx5UE&JB% z4a)h2&-!04{qv2ZN%}{Jj}BLVE&%KQ zf64lPjZUWe-}OQ`_1~}luD@ls8Ev7tXP+4RS+i-h#a>e0G0M6A<8JfYkG3|jhFF~) zk9;!oM_A{OZ;N)gbKe*XZ(ZudufBt0r|XZ79e4ZF9a;DgtKnQH+}*}^8f|UJ3Q+b* zYQoEs`Toz~(z51l;PIt+fq>MQfRzVp=AD;bmO zQ=vak#O(bF`s;Ku)&HD9e^ps(5$0F_gscA%PW^ZF|8=Wc|MW3x{j+v>rT(uVT%~{X zI7jDZ-hQ~-I1evB7H1c8QhgX;g7#yxG_nr?RLle;Z$vZvktV>fnv>pIhE=Z9{(C-jl}5B$u@ zmqhsb2yZ&wN#|}KKsamv+wXIZue*(Iv8QumNf|;C;msxWynj2V-AW^z^%rh=+Rt$I zQkZi zyKO-@8yB@+;iPxB>HD1Y%>USUwvp$10pW*PE8BIOg*Whg$@}-S`#)Ca?eXs&&VJH7 zygkeJ%eP22=u@FTk7fJ+9gOO9T2cMqul{vw|CS#>YX4>+Ul{FQ>o>grJ6_iR*Pwqv zQ%{5HpE|KV_5T~6^}lZVH^)i(r;#sI{Y&cq>(F1PQ&9Z}H9|G~!>|4sJTKwQf5h$i zFSw80{;zpt+-{%Uc`tXHKPqmw=WhGo#oODW9WKv9dhT@E-L+aBJ3U=aJMV7aJvwgp zBdnce?RE!`&mI#WbUx#@|9Ku>-p&U-bR&5GFY5mcS^s~JokdPk*VCZ-=QMVM@_f6Z z)c+o0{YSpT~j_|Jk#HpNG5>)59a4lIE>aGVMtfbpzXgbL5=?xl>cO@e=qnm zbL*pj>}0jwphsg!P<~zjrvIP7uPf(@sy~&#a~OaAb)MA!&)_d;bPCF!I;B4P5B0CV zw*T7`{a^NdbvaG^*=@q<|6+_kUVSZc+drXyiU0o}^w;TR;;+60wM|LT-){c}{{rd% zZ-PIs@zbFE$$4tO3VJkF^6mf5{lCR;D#w4Vuw{Kt8~-f-eK_MEJibQi|9jTt?cZrq z|Gz?iYra~ip!#Puc7y7_vTyyJ@sHr=1z`Q(-@vacXHfp2oVxr}{z!!Dzews|1b=)% zee^GC?CQ9x4PV8#{!abx{I;_G9|K$Q0b2b}Jm7u(zgix@>GmPkf1y9$A@l#YpubM1 z71jU!>+jTm!M{ZM|J&eCpIRUPkEYai{pwwwepRCX$1MK*$2P0l^Px=tV_~aE^#82E z|I=Tn>s2|A-@ozrE~)<$`tuz!{&%3iPNx;s|Ec<`*1tK99Sh>~&(@f5#{cV~$dIk- z&j>#Mk^G8Z|LTzS|L-uA*VNO%`fsm(uB_^UYZ4CgUH_f-Pw;cQ%>UnI2U1hc!2Fu> z2MrF)f2P#`AK*`(rf#PL^Dk7}4a(n8L;c@l`fJJ=m_I0}CO?&5y#L`Wsed2%vvuN+ zFRG9Js}c1V{QS7G`u|Vx>&m&J>K~XtE%kpN{6&pULHW~*>!bhbHPruK;MbKiD8Huq z1`a0h+w-5Q^$(LMP4Nrox_x=UO#JcP!x{f|C}xT|KBhaU843= z6Thhdd5v9DK2!V}ME@83dr{><~`<-<|Qt-J@aNR@8r8{pZ;@ zmbop|^E4*@#6QEC|HtxOKF5C!|G=cm{_h-ikZ+{3{tu4@`s8=+|BJ6&x&HZo z;s4PyX#5==-t}MSzd^&-A=dwvp`3qwgP8yS4E%W_f8*)i{E;81k84o=NKk%W0M`F~ z4t`xZP4z!+;19~F%TM69`~T)ux&D{R{%-*MIgL&xeqH%Q_?h+5e_j9j59a3uWcq&r zeoIr%!2IGs)b>AA{@w3<{m^)I16&%pfue~e$FlZoH7-+ILp^tbDOp@01c z^Yb0C_J0WYEloL1`VV|-;I9_QXF4i>Vh67ObyEMK;7<_wW3PJm|5=S)pSTstHzMjU z__;-<|4QK3mD8ku$_nTFpUU6A6W9L+ssGC0&pf2ArzZa7@4WRdYV1}B>N8+t-}*cA zKjQg6G@$PLZ%)C!bC=NgyA1j#GHSa%aVwHEC-SC`YIe{p&^ z`fuT%-yZ+xe#Os!hspWB&9ES7d_DDbDigm(p1KFG4ChA^SoO!N{+|p(na61QXWkEI z{DbBDeb#?x{#)Gtm6iS9s_6e>57YSDU-$0+(i*!}3#Uog$ojvyCQ=bRfL#y%4yO+F*F?g z{qsBHKjHs(O8r*{f8q~4!;!T+Tif~z~lr)#+4i_@*_i|7(F?S5A}u%U24g{s-p2SL(ku z`1>_FnfPNXd-KONRjN5Egy=w#xL zuHvnK>~VFw5|n@Q8n*xIf?roo6MvV1KPaazzkmL+_Wu`B|MkFM(CB31kF4sgfAop^ z=#S}(nvMV02fwbICjL$XzfQlP;eq)dl=^P~{=7yf6Mxe%Z~Y@r)<^#>ee3VEf8zOP zE&v<;olJY>vS^lXASxX^>bZ*|N58lKP>%! zBk<=mern=xZ1DDf>nXKg>A0#5kNWoiGJd`z=KmXmUsp~Of5yaLEs)Q2f%%t9{TspG zuhGfGA6v~^|M=7O(SJk@^&bv?T{%ts1p~iNS*uPSnE!F9|0dusYIHL3x2*21f9#q1 z=)YAB_1_fyx^kNM`waY53+gkWe|~-c-+_I{uT<+~;*TETt-nvKs*^{NGEo2jr1byI zpnpN*rzZa78s7ZTy!yCS4XR1Fbq)Q0bMWiRY2xoS@N0@6IM_db+4=u7QvWT$pV#PQ z;!mvUt$*a%`shEB>F?txj^Nk-#r*HHl0ORmoTi*6{`gwn{E6r4!@muYKRtv$|1(-% z|NjAwWBMv}IZgbLBfa^fU23~Nq*Er{3Zee=FB|_pC-vV7`uA&eGV!O^_U6xM&MTEr zJ_5I`Vf(i=_;uwp@wad0&F=%rSJJ@zFG&4IfB z``>=Lin#x40_;cLpz+5y_SQdni2At-1(L5I_72;X*vV^^pAr1}zu@Qjn2Ce%)s@qv ze?y};f0f1aoy|vrT_mBd(UgyX%m0W(EcZ{R{NE2;Ia%O@i(RYZy(A1 z|7FR4Fl^;Cern|J^1lBkacF(~pWVzAh@T%%=Kn4D>dI;2FNEa({`t%Nzl8rR{9os% zCVuOvaOywR|Hb-8uSox&$oPrve`ZH-{`jQ&`2T7svp@fL^cVL(|3>m33R~&P>T;U& zZ{5k8Kc_ja*kzy(dzd2-Ki@m6|C8|5mD9vuF!1x;)O8~BT7CR~&7k~@86W2V34C?s zH0j@K;Ai`&$HzavGyl=p%*VgHP>jC|-}qK)KQ-|e5AfE%9_-BKZut81|1$p9rT??{ z*+-|V{nW&t80F2M(9|o&5ahEKG6&-4J7@Y&!&g^M6Mxpg&v#Svjeq{K@!ub${?i%% z5j6c9W8V5lC#ctz3VJ}+h5?HHV*Z;Kfa$*t=D&3FR3`mfH}~cb%Bjmwo&OT=e|$;m zzb*JvFVgzIf`LD;v8&^%HoS>A|0nqQj+p-2fnQfnlm0DRgrk38{y$6oo4}uZiKc(v zz@O9DtyX7Uy6tPI|MuY5mD8ku^OoW0Pv!4AkdJ@x(jWKv=WB70qeE!ppVU}y{-S1F zrPH8~d9RK_bJIUNe(?4>ocl}S_ zuC}Y=sy2K_Bn;I4zbpNJH|Sr`_^C<%)YjhoslNK~?@~km9}Rw8IZgb12L5XG^qbB< ze}r8!wj$f`@&7FO{=>I{~rVWBmY$U zsfj;1(%b)&8oN~&T$6B=Z~u4Nzs~8EcFRuSh zk?sGbuob(T#^1Z2H-GdVwcVfxV3couXZ$1X|KSB-^Iw;<|KF!Br^)}b`+M{A-PC*& zgGGP(>-lemt>jSJ`Cs4gaQK^v{9^v6SGIpgz*bgsoyMep!>-=^saExM1?)1=XC36G z=r7uTzIW#TyQBTrwbLg4UPJpI2+||7|MuVUf1!T~|B?8=PA3z8t3iJcgg{Y&_5YXj z|2?3;^**irOKjuq|5=UQK=8;M^WFbD`uC0FF|_ zcTK7Pf}a%eix9sMvKi^HwH&lMn{(U0#Z-)Q(Yy8y2-?*(ef97B6dKL75 z>`L_i^l0w?pGy9tQJCVfH2=>V^e-Hzwi}dxT^OMFztEo-fcgJk&|jyMN&k#N|Dc?@ z{DJi^;Xeld*Xd;9kBs*Ae_i>5h6mRFGwJ_(L;u*n)%DcG->{uGe_CTVDF1H0>wnq# z-{+G5SQIAyM;d>pN&mL`)c^HR=33SNeW1TiCzJkZgZ@Ev*5&uFzcc<3?cbMD|9!z9 z{eY(bfPp`+v8&^%HXM(yS}Vn?O>J2t`23eR|No!lKOSb{NwuGv^iPcOuKyWLy{f+C z>XhpvxK{qZAN1GhWa3XXdGo7FA3QX${=5jR|33j=olYkHtU>?aq-qOP{l)u_zn1>L zKlG1$NUQ&S2K{pyyK1WHL&p&7zj*%X8_C~>-KJ*J>VLmMf8BfKt0z^bB)tFKe*cTm zpPOa=e*pB?>16W%M z(m%SVxBfLiRhkH_|7ueI@z6i^5v~3=9~cgQGf{u>{C9)opMxWuBVPaPGU>mP`nsx8 zR3CvGBdx#s@67-7?ZVstH6;H8=wBe}-y4$tdlB{TSgG>J>VIJWUrYM`LGb@vn%4exj0=ZTvFpp(6^R>}%PPWkLGJiZw0{xFe=zhQs>zm){|HSxzUCBQeP7@)%|1!ImxBdxD zyQ=fkYQu*kp+En3^v}8a;|1ET{u5dIN7TPzf;WG)Jbu$*`3|4_W%~0Svhn}P`08{r z^?!|fhr>_R-`bwnf4o51)&CIaZ+%Lu|LKtQ-`}_XW$hncpzHD<3jQpSKYCC&`XAt% zpO60)#|26OFHTi$?uyFYOzyG(a{lg0sUHvCP|M-7t{+|j-|2R>9G5)(rUjLX6 z{j)^fNatv~Pozu^2ome0Tb47TD?+WdEXi1++=Mq@Wy6{FaY@@B$gP z{x4xAxq?>zV~2a|-(RQs|1Ev^H|6l<{m;VT~fBnSvFLsDGKRdMb_)PTO{*~#^ z3&qa=mg1|^$yEQ-2L0>7&TLZk7yUmL5OVcD68gu#r1^h3B>k~`5vl%*_djC+Eth{8 zj%Suw{|g5Fb?=o7>K9QM@Ynv8o&VwidYAtw=wBr2A3Zdj`hTcz{ma@vJV5F4w}L&0Wv(Rh8{U5!nWDBE)c;2i{a>_yc!193KN|WM zi28Sa5YG5_a!~!b0IdHz17Dp^rv5K)(4X(7<{SU|H`vcVbnVQ~fAIi`tN$_3KlPQ` zPfh%tlf2u%$k%GSK@SL)Z}Qpxm+|ugF#V4Ozpk7n{-(*^{6RT&`Tg@d?Vou6X$k+C z_`mKwr6&HQ;r(~I@&^sy3I_c3{|>)c{~r%fxc+|}^iOL1)Wn}P>HkfA{C}!%|9AKk zU-A0S1z`T)1zWjebn~B<=lze?D&F&-L3P&UKOO}Sq<;zj@zCGW=w#AAJ|&#`?_Yn* zUjH$>HXr}s26ET`PXK>b%kQm!CM5m@(f=*?{hz;-^WQ&${E2JS_0*()!tnm9__b=g zI=`+qd>bV6=l{<5zd6S1KW-p(^>2gz{aXE_p7lT0?>+vDe_J2^!2WO!{XH`t#k?d=prIULwYyg#J36O#Izb!)gEg>+iIGy_<9Y#|@OO|IYw_ zM&qX@{+bJ0rNL>$_D{V3uSEZ|@qgWW`b_-s)^POq|Ng(S{tq{hx%$t9{xM5EPmgs5 zJ=?!RNd7;asQ-Zb{>Rs3|MwHf^%v_u;079(e>U^~)oJ{xkk)@bg2}YTOi`n}4e-qLF1wXG@tp7h3UtKv({AmL}-%ZUoRDSXPAKXCU>VFOUIS65Dx{&@pG-%ZUoRDSXP6J8?5e<8lQ_mr6UlZN-7)Et}}^#A@7$N$Cq z58jjGpNn8KPkjGZ_dee3zwW&XL5~ad{Rd+G2V6jL>;EMvOyW*;JvHf{H}wDUyVQ1r z^6vrzr24OT{wo7px^kNMn+@-O2+FC;PvsZSKXJpX{{I|b-Fqrb{7oUf|6vr$>`#AZ z{!6TX`GKtem%&!#UbUZ^_`6s0uK&9CYG9XvJ~8B`@Gn1&_y2tFO#d5UsCXD{{ilxS z!)S~DV*Nu*Ai3?|6*vaDVYKs~NYbExgW4`X{N&B9$mvgir~hl%lIxEf=w1Ff zIR8r%&;NQtI{!V=_xYbw|Aqei$TR=HlKo$!ld1kU9$?U)@2A!qs{R98as4rY;Oc)O z^e+(g?+mH`JBp~kxc?awXfFR%5GO&@KV#58UZ?jT?}jq_tN)Jw_nyV|M+I{EPlEo@ zHPr2t$^Vxh@9qC7joqO2p_Qn=;D-U1za9L#a+>&KCwTJ*<<#Z(&+oMVV*M9XAeaAY z>?A{+|4hfd`7?F$|IsKj$^Uob*ME+d{BxmyWKEj?N87yllN!4^U8@a8@k!S|h5i>w z{=3;ux25rSZ0gOQ)!40;QTJz*8g9Fug*_R^?$(N|9m$!-vsu5ULwYS zGW=iXrzZZMkk0@7`@hrwW8IAfaV|JFv{`~{8Op#HxH4ESsR9sd{l zpD6iHh5qriY4yJtlKv+I)t?K%#=lv7bvl{a|Mrc&_2;{(`G%^0XP%G$+NJ&}=$|3# z-#RNC{x;wGJN_@mzb8xn)4*TU@_Ube214Rb68XjTU+$62|8K@uw@!h{|5L-m(Vx2h zf$0BFk@_!${;_pv?O)66aQJ8V*5B#>#P!b|CI2nZKc!ix!lZwfLI0#?T@CJjGAA7UF?v?MeEx5tr(6`KA7%fiure`5caT#ftxVyXY>&_74izq>sgew@CL z^lzQU=RcN8{xiUDtw+;8I@g;&tFenc2Kvkm%Fp-C{Qn2w*Ok*W{>vNq13`LZrt&8a z=lU;``kx8@evM8h{>aJR`p4H-`;`Y;RZ%#7CHcSL=X+uL{}BATa+>&a2L7sG2#E;% z_Ve$JAMyE*)204rfj^_s$;3}6dQGz6^wqEaHvhnD-2Z%X+_ z&ilVJC4UyAFul|Gi`QBLj{}b@*%4zcd#*o(k2+aQ@ssB0P z&uert@h_j}UH>B+sr|~A*owrMz98u@=Ko6czYqWK*W9ON;!h>K`4vU4Nzi_<;&cAb z>HoIn{r_Wf{rB{$=>MkC?*FL?48aIH|Hr?oKO-#X{8!xnewFn9U%*OnJGGyh^v`#A z>mO@U+pW6bnuG@++@JmqzqtRK+hy(FL-?jOpx|K|l@`u`N|zpkA&>EAFv9Q~>7ztF#g|91Rer;~|4 z8PfXiRQ=nh@bTY|rT?D`{gax0+QgqWt^cxdecC@v-;?UUX#dWY{C7bA%s*()KPC<5 z|GM`IaQ7o`{ICDd=YL)O`JP$*KM(p_8l6n~$2SY7{!{gDO7rvI^QHcs;7<_w2Mq0B zR%4eeJkN;BH$MH}x&K2v|9pYuzY{idntsZpf3IQv+w4m9ssH<+%%uL`)t?_n=KtqI zf1OSy{+0#d_vPCJvH&C4Eo0#>*N2p zeCgN!?eo9F3B3R3icHx&Z>_r;#y{HUzrFAO@+&N>Z_3Y-P3-ZwGOh-JBi!>pMg9L7 z^w;TR(!VRD^M8W=_WW0OJJ&xW{r^JnXEc6lf=SwU#F9azt5n5P)=Qb|N1-EKYCZ@ z^Iw-q{VxW8TH~iC{@hQz`~QN*u8ynP@FhY0|8mKHKX#fS&VRKU?*Gu;S5hsfE}j4T zKg#syhME6g0{wM5ne>ku=Kpl%4;t=Ye`oyPv?=%hE2aJ!@JBbHwSOJwc>8})PF;T7 zzT&g}cle7h^Kr)2lK)chr-=OhA@Sq(4WImF^WXfyGXH-7U)?;l$^Vn5hois$`EN)6 z{*C$g=NhU1&!K;wsQ>bxhQr_CUw?c2-@hNP|6Kn`e|f>$gpL0X(p~@gj>i9Id^h8N zG5>dt)c-*oi@au?7L)&5hU*`?>ni;4lQ(hX^f&+E_RP@ z$NzErl23l;`TxFkIsc84|8nr>i2SV~@t@(F-_gG?l=E}XW9|PDaHPmvy80jWeEvQC zgGgP^+j%i7HqW5o{`}w3zxl|)?cZUW|H|3{?O*Hx9shUK{+;#Rw149K_Xg?z598<- zh}VA`f8bsJ`!&y1R|x7eU@X%6)8FxbasO9V@?U}aZ*4|v{|bispW91q*C%d8a@@Y? zlb>Jz898|VkJbN2@YU&L>i?D-^sgv*jRFGe&&$F1uVn4NMkf=0;Y@G;uMuvA8LIx` z`u8o;{~v|*==N$qHStH!^X5-!>{bBz3^)+!DfM4G|8%S5zlzoWy=nY;1Ajte*C%d8 za@@WfjGtR%{@(?DT{%tqN6zxrzoOtZ3h>YGw0~m!e}~lnF_bAveEzSw)0;nEC;uOZ zG6(YiZpnW&^zYaBsY(Bwfj_>Fx?Tl!1KhstlfO)VUI6C*kK?P;$;96qlK%(Rzl8r9 z=&#es#NYoTZ~y1Jsrkmg{`&KuV^NX%-`0))z0ZGI?+9o8yXWAzl=?58f4p1P|7)Rt zMpI8s`uCjgt$%Fa`qY0szTlHzKmYk8yfZ<3{%v{Mo4@9c&kc^p)}Q`*{^hWx8>gA{ zPyH|)e(Ly7_&-06to^?Z{;%^>6Mx~y;qX)aUyOgAl=c599E0Qz>UwJ8Z@<8sKc}(F z4?lS`0XZrD-~KV5|G8iCUl0A$ns&;>pE2+kG+{JL@)`9nJY zC-b}W9}i0XpTRLm6QBQ!n%ch|)%A)We)8rZ?O&$}i^sO8B3{|8vCWKUzY%|K(tm*=PG_ z>o554lK%e$Y(+HV6qEivhVx(Dc?CcGu>vi=4jsjKPCBZf&NLN{)L};^XD{ngYy4` zsK4On1z_#}t>D*{(^UT(4A=jHa_aK?=Xd76#QLXCOZ{KOPKw0)zY`aG>mT1q-LB}k zstuorg#Oz9GJd`zrvFR$>dI--KONHbKPta?{_9z(|I6UdXmm31cN^wEBAWYZ_~9pS z4naV&rAMa!d8*UAIo_Ae{ARa`2V3n`T3D&{{ITTx^kNIPlj~;gUa9h&EWfg z82_*FO`f6F$;4j_Y5sQ-%1rV9qRaoP^#9*5{>e1{$j`m~-)dFc#V!MVCL=e6zw=wJ z|I3p9RoKcA`I{~?@K31^|CFHo{OB|PFR=e>%4zcdhARyGd_T3`Q2Aq4<^7MZp>PQz z|3FCmQ&DDr{;$9O{WNUp=IKrP7eku=^*{gbjQ@IF{Wn`lJpcDP__IX)Tdwr>|7@Mw zzl3l79ey$XLw@#Q^}h#S-8jvpe|JdZU&8p$p8ptd*T4E$u77pSs+j*=M!Wvcj$s%d zHvf%(RewfUj{ai&^MdUEeg!M3N$P&eq<`chZ~xbgtEw)zCLwkF)Bh#!|DTckx8eNX zI)KKXztEdMp|PvMsyY~tulQ{L9sLDA-xI6he?hTi4+2{~x9P_kllppt_!#_@f5>QyRNEu4==ve4Eeq-#P!ye$D;g8Ya&F zFcoe^qBQ=*&ffR`CN*}e<pwO`M)#%>-d=S|4HhfgZ_DqPA2_34flT}$ElC2 zj;q>mEMFIlpYMqE|GxmguAC)2)ih#{=5*Z{r>~LI-N}Z-)Ydl7OW~8f%Sh&>i-Dz&k*&`grxt)MEyI4 z@%g`^i=|VL~?-t|ANv8(cFKVg>; z^%w0Q-x;g_%fYWJr>XsGxYe8A50js?RQ~*?y#M>V)c;S|aZ%%^CjZZNdGp7QR{ND7 zR#n==5lHcWG5_>tUoUi<9{6b>vS^l7ecE4RQ<*LSD*C%C%~W5_^FA%`E_so^BTKB9pX}={|o*S z{htKCuAC*jW>Vvu==!rN21J> z_Fv3@{!9A*Q_w%sqAsV2KWXs)q{gmJ*J{ImPV|4l&v(Syzo)^kE2okFc5nTwRBU`JaLQIgOv1_;UvT zw%lZk)8pg-SD%{PJd=OtqNdFZdx$;97rM>zH0 zzy8kk4>AAyk@Wv(!Jp9hsfoYo_ul+jjoqLQf#ust{+}Mr+rJY1-^TwV)716U#NTzT zH-Au0UH(=?P})DCKR3+$|2gQd)5*ji?+%CGzy6N@i~Ije_H3%d`~RKx zU#$PRw;cbz1N_)AH2=>V{6DFwSN!mkH%B8U#s9_p*Qc`mdmjEDKSalGdCvbYH~4=> zW0wrhGhRV#|HSj(k4XM!VKbq5PS;fbTMYMq>Yl3)%J2XAcc=af{doac`}YF$*Xd-M z|BT%kPWwmIKd}{`{~VC|zl&p#)6`Rw{>kgS`Ex0Cy$Y)TF)-k-{yXiT;O7Nk`u_u8 zT{%tsod$lso0@N^{E=(9{$EM`-(#hluGY!K-~S75{Sz9yK@Z5WFhJ2?tbg^5rc*wunn8G+Zgk@Oeq zAMyRL`u_sHx^;?7^*=9vp@eY)4zoOCFrly$;3Zk(4X(7<{SU|JN)AM=c=;) zzYP8;@%hixUEcLSudy5SfL!I<|I7GG^zQ+`uACL2!HFo{-mZ!g(sK4On2ATf92EVSHCjC1M{N?4Y)!$Tpas6X0ssC@lZ_T9X-(%oU zXzT_(4tRYhss9)JyZ}u9--2IPPLuxed%gWXD5owzm0!&Nt|Rq-75x1golNt;#gO=~ zCF(Eu*OmMQ@W*HA{NMZfN9?|E^uI1B|9X=Dci_(u`MX2nzdk7c`jY=O@E3{vsr$px z|AwIa8%X}w!JnQ@^Z&k(_-_o#zoF#+J@^Ym{`7<4=%4k?Uv~X_70Lf!bTZi===6_z zUjI!S=6|9`s_p9fwQ9p>BB8(Y|1y5QBi8?ahOe%irvATR;OD!k`G&x6&wq;f?~SGY zpQCgsjZP+h6IlGr`shCkJNBvnV18b3rvCuGx^f2P=ew!-#y`I^{~^|Y9xnC&0;S6n z^)Ei)-Tp<6s*nD&QD%SoJN#n(#~wNV`#ac55bu9#&Uy3e)|CwE5L1c#LVsQW=Ko*f ztJBHk|6N&ce!iQUZ>ai<^$$0d{{KIeF8xEbpPKj^4E=wyPX0d!Wv2MQYX0kfjDK|N zw3zs#mxiOi|Mg#-`Y-h79?AUwD|~f2nfQCwh}i4MaC6_;hN{0<|9lJS|6iljIgOv1 z_%qLX>mOgHu2(@1)QK=a@qfY33&8aM247t{P5k-BaP+70i}gQ8Nd4Ku4n>VlCjP>6 z-uhb))JOl5P-cq$f*<+Whv{$sXv%5gZ+YIp&+OOXL**Cue{U`IAA*CB?ojJw;?EoS zvzp@?^pLc}07ZYn&kMlxABrDcIZgb@7sAn>$}iTx-$v@c68Pf}()8~&@E0|9gX%w* zsK4MZ(SK#|>&j`;Kk;HX`cwJE`sXG5zsLV|>y(@L^M>`$`EF{y@xT7Lv;J@Mk%RC5 zN__pAHFh;z|2SUf|CZf|aKiU)?%2CjAqJ^*@xX zH3+1xe-mxs`oAa7|Njr=NhfsrM?Lj#H>`hA(AW)n2#$aOfBm21|NW;7e*SOrQ@z$y z_Tma_(Z{n-d$>jeXhWr2dZfd^qufKEtE3SWTB>Vq2*!lk) zn*IZZ`Hz}|bAvbezW(9xi}mkEN&Y{8Kd0{)9#+ z6Mt_={I~kn->LsShw|~y?vnriz~4{g&pzVq|M6GV?-dH_54SOX?a4%?^%4B}H^I-7 z*yA7Y>&j`;KmMpUe`QH(6GGs(um8qQD;xjr_cv=6#=kM*{U3g5w302X_xRTt|7X|c z^?wiP|9@fnx2xM})BS(#A?bfRvHpwoPx|Hg-&+tdPh9`0#jyT^Ze10>ep8;Fy8cP> zVc!4mCH4O+^v`JZ_a6TiL(=~a-}*b_|E~9W{ohCO{|)>_B7f`haN57_p#1wv{v!C( zb9MFKTmM2x{CE21ciO+gqQUL|q`$mn%|rWNJYU^Uo7%tfdTIJw+x}l#@AlvE|IR$G z|NBY(--7-HqW&$9h2#Hs`PSdz7wz8xlK*Y+r%tB%e?BDsyNUdw{fkTfcfg+~@;5&o zj{f%qwh2oKR%yU|Km@F)Boil{pw~I{}cLWi264?<;@>kP#^wZK!1Py&iGg8&yOmr|Esef zjZUWeAMNqx=ew!-Cb0gzL=63X=&#es#NTSrzvkfFAXWdy6L|kOS^EDPI0#vy{#^$B z$IBqEyMb!d^a`U5Y~US$3N}E`1QYO(*OSr|Bs%kuBRsc z=+oio{~*!-#rbcE{=Kl3*PN%C_?I8(eg0c>;km)HP-p$Me@_43bPR9*50m<@1zSZ; zJ8k0cG}Qm}V`{$&dR$J00e}2u*T0XD{2##oQ(FJWX%>!;?)|qxIjH#`BKp73pYIrG z*4p^d>15Ks>6LKmKS6){{-@3ldH>%k_5Tq1M>OlSoA|pzYX2UF{y*{IJns2ldmFF+ zM@jy5pnvpnbv-rlXAS!2HFkXzU70k6P@nbR*1zj0uKzKT|3A<_Nz^~`jJN;yZ@O_^ zp6kHtD}3@h?Z42UA5~WWBlywjWYWL!SKj(c%`N^Jjx{`^?8_HRA*qtVI4-|*{j z+CQrP;{6xj%KIPx1^j-^dpb<~{f72W_g)Qt_{kf>`!DSNU-&=YGn4*f_`l9iP5iwE z|0e?)GE)7&brx^`lCu7`g{#4~1ljHv&>9Pa;fB>#rczo@CFCjPG9c>90)Y4ve60vZx5LcG8F@0|Y#er})n z|3>)HmD9u@`K>p<0fQV(pxfOzcKiu&!}}W@pl^dQyRNuaGr57wiNvZKexm5 zZ^VzToF;zj)o}Fp&+p8CiueDN@PCN^>)z94y7{Se>wHP`*-~O=M?Gx!=ZoX z3!49T81zr()pmm(uO%=*@qfY33&8w;6a47PY0|&nz#o)Tm!Hbtd7D)X!1%FPX zlZn66aQ+|rvOfAR#et#dFZlU^W%_T1A6+?3{L2gBw0~6o?nC+Y&y>`EbMPmK_rK;0 z`e&c5kNzD*{RMxC{#$@wS5A}u0}~DNUwl8c-uUNt`akjhzoAn9k5IUn<~?;LeiN7O zy@IBEruZZhQ0l+s`u{@7za{i9Xxb?gf9oH->wo6C`uP9pLHYRs2D%l+kFK01{*GP3 z@qa3RViIrvmPq|afWN5G$;3Zk(7#{PuJXfA-kgD)6#p0ee9uh(t?;8Or-{E13rBw{ z|A4FiGO7R8;7>oVuBRsc{2#sRe?eoHEIiNn18gb!3w~~g=|2)bx^kNMn|rw z-2b%=eAXYobN;JZ|F#eOxhvJrX_@#_6T{&@m&l);%>Dm#+5WL(8UKdX{&gDafBprv zUG9G5&6)oF-@gA-%zw8_{{LeBJ42lRCIbY__&9O?Tj4=5u!`x8X{yQcE`f0pFm4*Ex4r13ZX$-Dn6e5)U}CjRU@-u|zVFL3ZvMEzCIzkUc?#V*?T$NC@~{`29p{_4Lo{_9I{ z{m+*AZx34;&3oF6`WxCm>m{{c1$BV4V89>0)Bd%r!})(I`M-ewr-=UFACmt+P4s`E zKNo<=rjZP;08~+@R|5NoB_y2ZE{lA3%ktJ$BHSuTu9uEIAO#e6+v5Jj*|9|r| z?*HdW{vDxzVyOB)btAt)|Cr{zYE=~3Gs%w-OR4`t{|hAl|Db=4sDJF;aP-dy)t?_- zR`qwnk4`6({tf>Z4!?i>o%{cKSLWA$FO>R!1^p9CY4yL`pnq0l*VDPHh#zPhfaB#l^q z{AK>nt+V?7HT+-ar>6Sf@{e%zr~1Fpzl47m90Z+CCjNp!f4-ZVZ_= z>vS^lcfRM%A5>>u{=oWk!>s*_;YX*Fi9c`9UswL1;r{h^`oE4J^ZxG&slT-f&VO!J z`>Bb)qc0r&UnACkasSKZl7Cm|AH9yoANh+ne_mrZsQy2J0e|hkGyfsE$Vs|^eFtESpUWSKV6c4H1yBCKZzUpwxe%|Fx2T zCFpNybTavW`h9Qypq#q=f%WHxS^Xb_ADvDn{tkowy7C7N53K+7Qva2qe}brg%fGz! z&uZ)jec-x>dj``@mU`tJ_^FOE>R zQzrf%ga2p7sOOb*T-ApEG$=pc5v%`u;73%ei4;c9QZfd@v@{8-gw@Ll?0e^CPwN57fmbbk9zyEf%Uj;oN zoiISD|AL^WD`+rbQU4AORxc+gc)c*kRXJ1t7Wa7^m__L$bc6D6UhF^e$l=?6D z`Hp~Y#Tmb*oF@LJknaES&+p9tiT7XME%hG@{$fn6lZijIn)m&Wx$D*ERn_XOOLrk6 z{OMoD&kZyE55$kIoF@Lvao+s8@&^s4^7oD7^MChB{l_u>(KP*Yt9$eJk5StV%6}0I zQ1lo4yZ}u9@%Yh|)1-efB>k!UV*c+&ssAdN|Iy9UnE3k)^FKj#*5#+p|1_Pz{r?w| ze^v1JYv!p;{7r`Yf8)2-r~Uf_asEs2KOp&sfnQfn6Mw&fU#DNta4LWA!Ce0bC4U3> zGa8*t{L4S|9{&|Jc7yW&k*L4me@ODL27X;RP5kMQ?*F3l_sr+lzaN(TtAjswo4THw z_*4Df`lmH^gX+)TSwQLk1pgzFe+}^K%4yYm@D5owzmB05mUjHAJ{A+^0pwY?1 z-|?|GfAn^>U+K824gV8Sf5E?8@~;JcT{%ts?Vot_SIgr!9hE=3FTelyG0DF+_){94 zO#HD=z4`MRyMB4g)Bl;MzuiNE`m zaOVHnGn^q--#~y@q_-6Sx zk1hK~+s9gOV;eu%`TiJN_I-8gKmQxG-JqP8z`zQje=kk{B=Uu!zm??rzaaIW2>lbp z`rojYxBk(6>!W{WMbW?KKvMlrB44Qb^9snC{zLGi)5%o-TMhd2-PC-u!sy>Rj;25I zg`t0TCa?c5$@+gN^pEVPuBRsbyAAqhHSJ1Jhqx35{Ivfgc>gE(c>$RJPr{F`oF@JO z1AkCXU4Fm(iB+L7jAd6DZ>@$ckjF6FYi=~&+5_8;QO@|!-R3tQZ*7277-m{C@vwQ< z9glp%wnaPK&TohJ-06g`)#%vi>T&G2+v0G?4m-{)f8RY$`k|YQw+=&?8{YhLCtnib z8zP)(Yp3V?O>4rlJiI;Y*mbwaKIk)o>)-bkpZ|JA`u}7UBD+7$|6A7f?*IDhMD@6a_c`&K{OCsNQtAE5^|F{24KK?svm^~h5(*GG_|FH?`dR1+?b?L4|gdhKR`NjPIvyy*9 z%>V1==}r1~8|MFYIC&kLVu zvCj)xyeUrc7y+CA6EA(-rjAF zy$VSv?Z5Ezt%U#R}i4?AoBTk)gwQ3-kBj;~cg8dBwrGc2)&L(Dx!bko zJNxZ8%NZZL+x&txDD^=>jmN{TKfKw&WiU|JV7ciQn2J9DcI@FDdi?bJhO;p&dTN>iwbP7w-1ooofHj zUZD2>yd7TY{~sXSzV1}!|Je)G{-5XJLH$4ZDfj=sOZ|_5(KK=VQwYibuO|9`>sQ=0Ve49Wkm_wWDq_0L>} zxBnkW{w?7DDNQ?V;&=T~x6Nzp>e5#m{sm4naebdx)lg>^Q^o zPj#CAz8pU5r~OOgqMv>L=Y~`4`7dO*@Be&t_!Rp*ym=F+pLVy!O{duNS)BvUJd?Y% zHe=zI)%*NS_Whvlc58%}-p|=saO`Cf&hF=Q=e^u*9^vaFyyFYUzPq(HpJFv*ehuZb z=eZi2oN`AI&g{71)cLP&xBh=3{l5)HQ-{*Vf7XWK^nW+tSoqO@1TM`YizVv+r;>k5 z)PG$)4O;)%KI`%ETmL&<|KDb?|6j7b+W)gVs{KE2hgbUlI|x_#e{v_a|ECeI^8Y-- zOZ~rRbI1RS+)hyck9@-Wzt5%qNf?dZq#mc6^zR7C|8Im-QT)H-eBS;KNd74NKXMO^ z-{jj#ja^edQ~WzV`@ee4e_3}6RE^3!_7uPFW>ZJtW<|1|P_xBg$Y{^QqD|C#Xr#AKTP$2amG|D-hi zN>IPJndtvL7x4D~8_B;F{6D8@rvv-{z3P4?DF5GAkoG^?NA!Q>3)TO*0Bk%p3qLwP zHR+!*_DP|B#i%{m)y&|1FK5n)r3)t9Q6x|1Y@X{|ys^o`3xJ@Pu<6y6pMK z?4}9j`ETA1uN?oshj4a1yZd)eeRsFk=8hfryw}}sh49kzg;t&~jquX*+?5j;sN<6@ z3wO_d^E}*r?$OPedUizo+$oX@mdgFIAscRaHm7q z;_H8`A^Eq3|MzS9sTI}#{{e^c!=H8i|IESu|G|Zh|95jgbGP}6HU5uqrT<@|@qdIX z{Xe7ee}pUj|I!-!KX)uv|4zb>&QDGH7YzQd^WUK1f&G7N>Hpio|Ks=3>VHrUYX0|p z`hVT#f46KUjsN1v_Z^S_?Dg+*tMm46EvbJys|1&++i8>k$Nn77_~$kh*-!iD-v8hD z5g-4qEBTw?{~4nH4{R0=f8Pq?|LHA{Ci#C6`NHu3-v99V&-JDLbK(C<;`pbzDIEQ8 z_wE1A{CEDpoPPt!zdigvc0aBCk8U0g|36m{{~vNc&HvNL7l!{AKH~asB=tWT{vW%7 z*8VqL7mogS5dD8(E#CiaEcthU|EIP7k5e}spKtNOE-OCyko^DO@c(fYrO^i@arXHoc0T~pSham|B0In{{M!$U9E1^rcZS@(f=*C{oh*h?*jkN6a7CP zHSp^Z0>$*NApW16c09@d^T-#f|MQ~{*SAh(KN>$Z&3|@mACCT1|Br3R+y8B)|Br(I zM}DEMrzZYlNdEtkPycr-TmF?L_We)z+g|_X#osKk&wo45b?$#~x7pt=v39_TfA=4p z=X~7l+X!dt-?X0Lq<6QoUv3d}|e!Sa^g7Ih^y^;fFc*Ger^JToPW4I_Kwc zgl~`V^7G#$!goSAu$}A0jgQ*r-&ut32D_|4E|%r$>166VR&4@-fl>;}2Xo$p4EE zU1&eg)_EWvh{UILth2QqzR<#9v6|Z-vi;26HX)qd=ht=7hW31tyNy5M*lE4i@k@8R z5aGO~RZY`^9HZ$0MNaqCfLGpD{p5zgk3T)%g> z2paUM@P8i5?45=mou8W8zn+lVf2#lI-RoaFN&nv!2Rujg|3XOqKLG#tQ~zCOh`)Bx zApcLlagoyhvj}H?*mbt!|L(R2;VS%>-X-~<#o5N|99-p+rJ&9{tMy%{nyjlf9rPd_Agtf_Wxdh z`O)9y7yds=^6!QNp6aEIe_FQk=68>Ot+!uL{r|vA2K)bnOVs|4aHanvT2+FQ!O-~KVb|6w=j|D$oh^F;se3d#S!r27BQFCFCn))kj3{XdFu=7$^M z%i8nRk96Ae7KE$(KY68N$Myf0j&Rcd9O0$op8@Xw#jZ=0{%>9F?6-XU6GeEb|M&6s zKaTL~#y`&bXJY-!U8Vku;s4Prt^H4ThvWbEK^IEHbtu+19_l8sdA0X<# z{9La80g}HN`X`9`H;oL3|68K|V*R_g_{aeNx*1v;J_4qslqyG4v>;K~XXPo5U8~XQa z_4hvi=?O`Hwq~I}en)??{?~ZP{{zxF z_HQUrf3g16L6ZMW*8ks0)4%XUIQlzLmyL;vSm+C!Y$(|DPcGzZm~ck^0A>e_E@*_xQIvB>jgG^%wVlO_lsV zhW`CT{kwMzr~W@l)L)E$6Ow-{^e<@j_n!ZXZWj)J15tl*{rfPU{b+)Jzfi9^Gw z|4$M17vtY)lK(*HAN>oh{ZECY|7t}2Mf*Qp^8W<-$L^!)KM+#=f10Sj82=tF`Nu*3 z6jA?tNcyi%)L*p!M@as2pnrj=e|yaP{nwDGE}v&$6^Eee&j^11vl#y#Df!1k|2$Ry zox*AV*C6UI+W(^@|4*TR>V8`NZwZM%59KNPw~yraKO8Oj&jo)ZN92FWyZ=l4LT$Hd z$JHc!HYh*03v}x|{OHPQn*ZnuNq;JT(-^M*F;f3d@Mj)S>ty23{L)+h!h>qN8d<9j zehw)q{xA6Xo|yjU<40Fc6Mu55H-FVYJ`+;;8=JZQ$4UJ!0Dt6RwN57fj^B9mCmvDT z^@&@N{CR{>^cVcxBGdn8_|cWq#GlwNoc@o>FWUbTr2ZFzKl7+sClh~1uQz{Tx!P`p zpgsd$KzfS)f}ih?>36O*> z%BQyEsDE#93*Idbe5cE%K_4mI1)f|%kYX#MxA5m8SuVVUZbTaAR7gGJF>MyQ; zog(!=82ab5`g>ph>I_N$wSDW)@Bdtr-~W2D6As}{yC!l*#iyr zf0){@AYY)*Z;+eSk!n9Kzc~L{Ecp+G{{2M#`$N)yy`cK@0|)7?>)4M*CsY5|n)06i zsa7Aq>8ScI-<$jY5~=_7;Lj5IDJ-y(qG|6=^V%c|o3&&lxrOp!MJ zD~|H!FE4kk{@#G-|3ZIW5a#+f;76yE$^VnDIP2NeimO^XRQ<*H|8(j9Q=os5sDCUL zj{X}G^|$ut^}j>%-w6HV4eEZ%q<_PBZ~lzNZnZk=(!GiZO8pn({~t*Hsn9?67OnoL zL(+evp!)Lz%j$m?KRTUE`lptL)BjQR7vtX_O8pbiKTXuX@kMX{*ZFVI@Qr=zUpD`9 zrsTf~`o~tI)&Fio{SV5i%U?hQrT&ZY?~f$^VbH%o)IYjwIQlmd^%wI$X~};x^iLD@ z?+dB^|Bk4?nE(H=6Z~sq*#J?GlUyOgwll(`5KS|`zg~Y!(kze%xos$13 z@aKs9*648je+weN=>N`_{H@@({;upXl{G$K6K=L0A{)Cp_yZ-lt#2+Q{ zi}wF#lK&X+XNmlcW5V(O5k!8`{$D8hj|G1}kv|?1|5ikP(f(f~`HusC{9RrB_xAtg zA@OhRo8LMAEez%NKkxwuhJF^SOSz|M_dhK^HJtg6TTpNmyXwyfe*H`Ie-}&rkB9yl zqW%rLhg1JY`qsZ}{jZGVKLPwjEx&jFmkx=48zR5x|1OpMZQzgngI50wA@OfZa^xvMy zFWUbrB>yb%r-=N?kob2X@{9AID<%JI@aMJs-tB)bB>o+J^G6!kU?F}Mpa1%Bn7IDE z<}mdCE2-zHOxJ&^9)Q$1;ip*t7XPaLxZ@wu|6L{Zp9B5lo6-1}zZy>c-^sWB&iF_4 ze^*QX6TzP$@;5by!@o0;U-W<1NdA++UnKH(gv7rKkze$G*Gm3&@TWJY`F~GH{G*8c zqW`;2^3Mf-bPF1P<6hzTe~id4`oHTX|Hv&kL?|f|Boi}i}pV&`R9Y*iqiD&4vBvZkzcg`H%a~l;O{5$ z4}`?OyKjDH{;y*tKL0l$$G@yCiTsf^|JQz&_xxW{W4G#ot0v(+LFfN&minIx{WBwI z{-4?>och0qZ~e>W|8AB1De%X(((!xue_bK*?@8nr{oiep|1|IywEWSb*8j)edBC?( zq7ttw5TThax+|7d4tTy}PL-?hEp9?~!J#^cp!o_XGPw(la=rsL%liajCmHxl{f^6w_ae>nIv zOX>W(^Ea*&PW-P$glb{8zO8-Isr@A^Bf7sDIIOP|t4WKQx|9{u{@IGyYTk%jN&=%KtI& zpIg>BPEGu5i*WeYBl^!x6Z^k!Q~Vw9pCbBC8~j%^^?FWR&5UoMoRa@?{pU`_-wOYU zN%f{mb>gg7QBR{gR|Hk=_f9v>9{m+8`VHN)c_>aYC z{7uJ&G{ z&$oXo{!?>`@&5_Me-9r7=b`zpj0z|I-}lYm@A%(cYW$mw_|L4Y<9A>GYuY*-|Cb4~YKbFN^W-NyUFM{Kr<&`H#CE|Lj^Q9RAIS{^j^LMe*MU z{}rPD<^{sx|IoMpe&gTMivND_=jNsPFNMVak#Bx${L8!|;{UTcdH(mQh<~;!jX#zO zXZ+j3cl=xYsrAM3{~6`~0r)Qy{bv?*kN@m^&i#rW5A^yNpGFsWevKB}KlQH)|IaG^ z)8M~C^q&sN|CT}hi=Kme_8@-fJejutiU$9l1^Jwj>c43F?^6CxhyPr{IZjRdg^>Jj zMf9Ifiu`|0@pr<1Nt350{&c;2{>Mi-_p49c17S-25^d z^pEcRFSboMC>+|6fu3XTpDGHRpC3`9t!*O;G=$ z=Xw4=f*(3hCjR8Y?&CjMu;GJL|MK{MN%=nu{$s1t{MT8+A;tgp#Q2x%zi+7ce;oc(ME^~Ty8Ewa>J{Nfp8Ol1q{P2m|9wmGp9}xVf9m|Z zum9F<7tZ*%Ls0*s=XvTsfgd_gruZ)!{F4P6K1lW7vZy%z@s9F;9{iWJ{@vGqn?v%y zBhkNH|9xBW7vVp-pf3L1`P&wA&;PQfUV~oapFhJKl>C?e-&OoM_|L9Mu ziyr3r|0I6sJel%8wYa-~qe$Wmf&IU){GSj1C8GbSA^C46`j^i?e^2pGf&WB3E&f}U zaQ9!*)JxPZKlVBP7byQfRQwmffAL>5{>=8_EdO_=`nQ*VA1nR~!JlrV@fSnl--XJ* zwAlaik>YSxL*)M_ivL;o zk1b4#|N5of{TDR#1`UWWQ31NZ^J}y?{@ZxI@c)_OzXbl1V`%){A^9I4)W7ICp8wC` zht88J{}ao&`}Zu!=ZsYU!IOG5BME~`TBL6>E{9QZ<7NNy| z)3WaV^O|~n>K-tA4@xNcFZX}-DE@Z%kEe9}%=P$h#=t+I;e%ALM^OKw9bEnM_@VP; z%K!9o?*0b}cR)2%|FPFZ{(r6fUk3k0t$+9ZKlzaIKTY&6w|~D<{4cK!1|XTevPpOXKbw*PMw|K;!>+lIzp3CaJSLH&#V=K233e&{@z@;|q{yMLcr zJMY589a$^QXF|8o8BPsRTx{FgL&YVu#$-aY>_n!NIw=eqg+i$75Ezvn#R zf4bto0sh%eH2<+(!ioO_iT<;zi{l@nV|o6M!;cK{{FnMU!r?!c=wIIduNQw4_=_*o z{C9@Lf1YoC>-zTwhv%R2duiw1rLF&`CcEdq=;lG6@O$=<^54Gyb1(l}p{~l+wCDe| z&lOJmU*OY!Gv<%soqua1HY=t;UIP<$(0d!PH8E{n)#A6O@eej)qc9hL#@d9F7;C@z zfgkxaSuL-AzFOXOi&cIw%6UEA&s+7_)8t21J@~%r{5`i@^QTe14a)5D`ZKN1Wl=sq z%DG$qeLdoP^P2LaC~wJI_1aT>yw7X2IR8Q3|6BZ(e}4);lGo7uH;)g;|AlC`pZL$u zEd2j-9K+-Or2m)3jC1s#U1yx5|9rJvd9(e$fO77?VWKsT+S85K8wbxLr03Rl(a-CT zt9owu$?|4ToneY5ngY$fx+1`~R5Ye;fW|#O)up zgZuKopsCkIt*1YIhq?Ulm&cA`{LMD7-pgUi-(xql-q&Kv-(~TRZ#0VW_rc;lb{yuz zJ1^cvO!+(B(!@T+G`WfOo`flXe1an}TV4Q|q0?l)s1SW#_-# z|2@0%e-q-rqK$v70w6xL_kY+mobm7A!0~VOG|<>P_@RqaShIq#0Ml@JpWjK=j}AtyumosQlj!|FK*wEo?R)KeZbz|I;D)KPsqy z(Q`ciKgJK8CsY3CLdt)tfA*H}znJoW7yRdm{tF@bKbq*jd0nyov#8=P!+%;k{<&}e z*6--P|Bq?<)pO!%X8Z}|l>AS^j`c+T#})sl@SmGJfAx5X2n#te`A-`1zoLmN z`31!P{EW|0@<0EM$p57j|2^=Z*qxUD`H=ii4C-I>J5T+8^!az(_Vh;7yOTs|ML3h zQpUN+ne=95hUxUA(@nqs}+u1$;Q+p1L z|KEuIC4Vpf{{g?QoksqU{8RZGb`U|70S+9RJr-{Evb^PF(+OIyjvCKbgoc z$N%*e|6|}U68YOh;y;DRFUP<4)cKE3fWM$!|8+n9(|AZY{!b(F%kgil@?Qjhin#vU z783vIM1DE`ZJ_v{1b?2$UkHi6jmR&@zYP`t6!2Gw{Or(h;{OaHza0NIQv6SWKewOr zcB*OlmkNphOd`Kr|J_*eKMnpekv|_2|5?8It?mEhhT{Aeu|dW+{eQ-f?A6ZusZ9P8 z`-Kz#f1%yz0?)6};`~>+{2QnIKLh{S7G3V*EGm z?!NtB(!`Z#ahe&YqnzSjF8`a9|7YPpzQ4}D`}R*V6Hfe}6V$)xSDydB;)l+YDgQf9 z3WuNSU#|abru;t#{~4nHTuA=UCHhZK75TrZ;-3ot3GMjj9{Ubx%l~pn{?7~QzgPbM#`9m}$&~-uY&iMPi2mjJ?^eqH^YC9F`cE7d z4u6j5KmMM0{@s>}|9A9d{2JQ&-&BMDqGnw6p6JeVjv)G%>;Eam{{sB818Mo64axuc zLH+m2|3A=|I!~tjZ=V!S{8RnQ_5W>^{}xu>{Wt$EmjBx*{y*VA zO&tGXlimH7ra1Sjb5?sVoq?GDa{YgM#s3ogC(msxu`F|Pyb434{ko;dn^xyG^$p0M_|6lN5e2NzTsgvE~ zKQY5Xj@MOrH|;#;KJ){}uQz6a5!M@_%tq|Ds!Y{!hmbohMWN=MDay?FBET z`j_kfyD0y!!ha%1i~raW?(rX-)VYRBi2kSkDe`}3#g8={meu5`$$#<`cm9&5US}%r zr6Y;?FW3KfQ~V|P&l3HoL-K!VQ2(N)(C-zYvoDcB22LzeN6zSNt=;e`ZGK<+RCv-Kp;RUl8}z_Gi~T_e{k6m+Sv&#s50| z$IqvY|LjP2elrPej?04j7hlWse@6J%c{2HLHu$H}nLkDKFW3JkDF1K3e}?G4Ate8o z6a9C6C-(pCsrX02e{3Wz|4Rn{X-&Om!|rp;Ld<`;{=c{4e-r*=7tr!QKEeI?hdTxR zuUGi@U&p^Kc9ihHVO@2*jOYKqa6|mePqh8Nbb?@?Tmt+EThFi2j8*yTKM?%AK6wxL z3u|efe-LwD{`ab;&wtAY%vJ5*0rgf}(P!3S`33y5@h_6wKl`fqe+%(nAjW?_r19@c zpYcB|o&5j!OKksg`)7aU|84kBT}T`Mxn-p+*Wh_KXLr4Kgb&Y z2Gkq!_$Rmj4pi~~4&uL}jeqy?KNHgO|LR)&`;GtV@=tF69iseq!+-K3+W40|DxB@V zYkc~*$A9(w6RZ11V6qn8sn<05&*HB4|4+_4x9k4>yry1X@*HO7?M4@Pe%btT`!A#X zzYG6mqW_kV{O1SJ{}}Y5&XZ~TztiB~vml={QvJ*Azr&UP_uxN!F)jZ)L-Kzu(Z9O? zx#C|NeP7Y!smXuceD3+5eBF6m@u_>j?0nmglK*o1=Sao>KKz%6{tJ7Bv;BWvQ2(Mw zc^<8Ux6YHvf7ak%e9fRwsQ%^l&(X^N2k@V{gqHt_qr+MLUr+Qem;Xm8{&is|r^!>3 z|B}IfSyOM&fZ(}L$$z>2->UdOg#Xy3I{)tL|EY7r@qa^5|3U!I|Ml?Jc{2Hrk8&UX z#n%k_gz8_e{~xRTe+2(&t$+9R-+V~^ZzTGc%m0are|^|Vyy3i@Hu*0a{AV@w1`UXj zsDP6Ha{d2!#s4w-(a)RO?3;!ieo|^pUFS7RYp$f-W{7vU^#c^gIg*;^``7hW1vx@%{ zRF=Gqmj5jw`R@qoU-UK4{|)fgc{2I$4k`bs{^k1rWaa-;R8}VX&xPdwmZ1J8DgF)N zKcmT0lmFBL?&E(^Q?Cd=@&u1_C*{9f|35|X{~P|Zm+SJMx$gh$xH+8d|67Cl7d_AO zeOj+ll^@Oq~C+kK&&h{tKG(v`qfn zP5x(cKCdk3fKZ3PMHhH}jTYy>$o2m-75^9TAG?y~KO2(&JA(QbJ;(EZ7WiixPbU9$ zhr2KTJqz+VBh|lL|36##{}TQSME|9b{NG9RpBo|a|18B{2mdLe|McnZ<6mA=uTR|r zW}lUq|8o8RT*co5|LiJS{>O9f`~w<3NCkHV^)K4N^M6+O*LgDKe<`H=r}~%c|2gIV zEBMcA{kyOKXF~E{Ao`d0KR-|L&j$Y$O`e+kH?)Nl|FaSEU#|aOp!mOr|K!!Q{4a*& z|8AmxdH=Ty760t;pPbowJ4Sd(-m2 zv~4*1zxX{XXG{tR50lZ%+W#T%e|D+zKPTe9OpO1YkjB3`iSaMDf7%uQw}}4|G5!l7 z#s7W2q9RB->{^k9T zu2lSU!+)0OKXzm|>pyc7{mbp2s}%ot@E^NY=ihz%Cl!+a2Z;XV{co;T{4w}15&f4# z%KsSAzuf-0M)6nRKdtp2cRl`<56S<7ME~;sCwav`5B$gLXybolNclex(ZAgOxmNLi z5C7~sUH-fKuY}~kljvXG|Kd8uKQH_jiT*pz3}^W_FVVl;{<&W9{{a7aqW|QD;qX61 z^e>Np-k|vBga6p9wEQoGl>eiM{^k1rjf($A_)lI>%l}+R{vRg#m&ZSEQv9RfKTY(X zIV+s_pP%SouK(Yx_#^P{mbKD9g2T`_%9Isr;Z9|{eJ=9{;loboXt0Depa~@Yc?6Ps4Wx=5QqIOin76d=jw9~ZzJ9%_C{;B*) z+y8CKe?9n9ME=Av?)-U8y{>XS{IQtN5{pgT?1`j#CqV=^l6fqNZLqHZOl$G$_CL5>&%RgJ0K9 z6My_s_wnBg3uPWEe}akQpZ6*MOM*W(7tMdqz3%?gntCbBy+5-U(ZA#um2v+|fnV27 zlmARe{;B-kw*Lo||E0lS(0DTOci-pkpUv$YSG`?Q{=c|y|JLz;dHm-V#s4$5|Fbvf z_Wv-~{r`!J4Ez*051)C|_x8WVFOPrVq35ME+7p{Erj)<^FFx^xgJ975wR&X#V3DhZFx#5c%c)-$xbyZ{TM))A%zX@fV5w za{uRJivM@;=ZXBqkofsITlnYsWuO1leW6(Yd0g@T0sdqM&41%1;l%%xp!|5~y`BGm zg1=1UFNDPZly81(`PV&CZ2uG$|1|JtZ=v~Tmxkm2>7e{iD*nHC{_pR+o@QGAONGS$ zjDP;>omZv*DT;qO_)F*0_W!qr#Q&^se(U&0tWJ!7c<8;I{|pxs=MJFxuNe3f2Rhg5 zdEnN}_^NMy>;C60KZyK)TJg^a{@B6J?KH)|rg=kNd?CI8n{A$7SpHSxzwuk~{1ZI% z-S$5c{Hdh#eM>$f1V?7aA%z4 zpTBzlk4-dVz4D}Xz7n?C{mLJKYaiw6FbX1m%er*6Jwi2O4D@z6(`e>Lz|H0?CS zfBGSJ|4GeurH;#M`LaRz#TTI(wmSHA?KJUcp9yFAN9C96KX~Y)?SBpMmo=VD{M`os z*&*8gU(UCGYyG$Bcd`Am#YoA266z}4M%(^rUeP`Ny~eZO`5wjxunWZVYqYrklk_h> z$>aZ@@UQb^^55}NILkkR|LXn^x&7Ov;(r!w|7O0R`S&bfkY}8X`k>A8%l0qtfB&Z9 zUlSF@527vqS|4_g|DvW|&kfhi*nq(G7ys7&ui^x;{KrGD?D4M-{$pPbjsJqCUJaJ# z;*&9_KmYys@z5Wee^&6PdWMF-qN&$2sAk4feDhn|zw-X?-HN}FcO-HDU;QJ7_`h^$ z)_<2L#=kuO={?0i8~o?K8XEs)O}!eeo{P_hGfMpTq{RNe4;26G;LmO<;_)lZE82>+1{Byv6 zQRB(9{^Pm9gFNHosLx;gi{oGC2!1^D!S+8V_|xAw$Lar9{wMtNSNH$R{eK@R{&moi zMNOQV_@`dse*gdU5H0^#B*uTk2f}|@@y`YS?AvJhF9!9G&+`|$k*y2=I!`A5v8&wu zSHENkeo*~qDq{N=H~qKse{T5CN6i0|=u>~=pSAtpxtm!2wiO_zFOr<#QZP*Eb<>WeYg2z@L!3T|0zWOExQW;xaqmgzdrouiT*pU2`B$oCi;&p zCirpFZ<~J}_|N?}TI2syME`ZW3x3@6+U8Hfe^RrZV#@!i`EdNNLiFExuE>Af^x5X0 z7yc99Ma%!wzWrOsCA2R zzvD)C|75|24+i#+n;zQ!7l8jl#QZ;x{(&~nuhGof|0UxeH+{4D7X&~1AzJbOI+`4a zA2&U-`Rl=-j~M?OME=fC#riL9`epMk1pefY(enRZP<~wWZ1XP+{&K|l-zW07%r5qS z;i6}oe-ZF!e~Om>5B&32_kYXdpZGj~@#Wun_>p>q#$V|UXZ@G2|NA@sZ;k(jxrBdQ z^lkfJ6#nBs)A)HGhVl9kUrHJOB|k2Dw)qzWe=%bG9})RkO!&t|&o=+!;E(+hE&m?} z<;O+OHvbafFGP&LOyrmQKXB2r%^wGU>ep!b|AffjVaGo%dbasTgTE3n{!fYg(myVG zw)vL?e{O2D{QsNCpPyHZf4Jz`=3ff@iQl5d|2dJreU#v5GfV!Z!C#6P{})7l>3@Xc zUk3c~-=pRKOCo>cg2Mj{iho(~7bC{spVzwLh$@TZ8!|C6`4`_EnD zd|WM%e0+E{qJPQX%YPI2b?r3y&)(|JACyz~c`ARypK^}P zO}#oUujQ)~{Y!rFMLhpE1HZ1FCjX7MhvT2hpEy|f$3+je|INXlB_97R8~n#L#}&PL z*3GvD(ZA&H<$nwC>)L7ZpT8p<|5X0?VZuL7`nUaW3I3wSlZiiDa?k&?=D3p1tJm^> z`u1;~|0kdSfRny${;k2E+L(6#o8+DD{!^OcDqcBt^Q}qbm-qk2N#8dAHsG&l+G+AX zby;`+In8ke9hcYge+A_iUxaGdw&2&b)5PC=m%D$jJbve+^2_`G6z_+Ic)!? z|A^N1|5xZpX!HCUEsp=U)r;jHPI|QY8^F*0j28dbXflOAv5?@$Nq;u~^5D-$jQ>AG z{%)HeC%xJHD}X;YEn5D+A@XMz7XES4m(9N-_{$OF|28N;PI|KWR|0=#uKMclsJ73` zIR5vUd-#6&FTRSB|MK_;PI|KWR|bDEV*K4$aQox8u78*JKgCH;HvcN%kIfw||9=qq z+y4;xkCUEk{#C)Bju`)+ME=+uf*&V6+58Fc7b3<#jmV#xNATmMC!7Bt;AgRD#s6PK ze(4`4{n-4gfj<>7{^>-1=^rQk*!-)5KOZrEKKN6{|EBpw{Ntn_n|}@PS0ctgg2*3V zOz`8RADjQ5;7`sIt^A*X$RArqoc|kF{A+?g7cu@B{qt9kf6C|o;i6yL{|=}tLp=X4 zQ*ht^mEX*HziQAm<+U*W`8)n=?f;ehq5-Ie?FfEdJ5B5VvAf;*gL3LVPvw`-Kg3B- zw*Q^LpC+FFmp1Wh&MVV#c`YA9^e>-(h?9P7{++phO*>8gyAAwF&3R>BId$``P2`vN ze-ah*_}>luS>pLm?Qe&(|8pH8zkL4P#1Yc}c<`6+bUshPTzH+Fj4{`cbfzc_9CC;OEl|26gc_1%B|vA+FV_rH+OKRsIA|9A^L z|0-G5E&rJ7^G|cDy7TvM_h9`#A6EV;>;GLpitWG2ivN1_WqdZ;@t@c+;oSe5U;j(t zm&d=c)8CH&eGva_30nNezjpUux_@Z4|2FU)|JMG0x&H?jz1aN!!uEeTV%z^C;f!nZ z`m&#YDgBENq8r)1s7U9@H2zmY8vm*O<^C`1^tSys!hd33TKs$M|G}PbCZd12{Kr8L zn}0vlReZoXPfh+ahWsx)=v;5m{@9S1|8oByc6!_VYr%guV*Y0i>R$-p`QL)Nbe>H9 zlV69k{zvsM$A9efw*8NR|5C*K&qDMs*MD))!{*-~b>%yq^VHA{h;zL`c3b1XHb{Ulga;7ga4qOb)OIHe>dF+I^VH*={%YIXTAw%{h#Vz?*D93{xKA=O2qunL-a4tf7(RxAA!2^Q=IeE7-F%x8^I!VkO!03F|H%cSwfvvgzyIp~FUh}!;>S?PauMU7&p&^4|Cc=f zZF9wc6zYmU;~b}^_)mW8zWj?l>s+rcuDzCT=0E=X@{2Fx^WyoCjL%?|B9wwuby@DZBFzr`9;Ote=GQP?KJVT|AynA$}jhSrIi1P z;4gR4{MY^0J^xG3JJ+l8>a~1JqJPQX%m1<9*R|8+zbhpFRDQYtV_W6_IPe!=aQ0;4 z&l>#4UUaV4t7qMOTM_+B{$Bo%2fwbJCjOT1!pVOszuf-aUim)({ArCR6Mv_Hzo4mC z=hbWZ)?P+sHSsrn=RW?YH1&G*teY=I z^e_2)`Oku1*G?0Ee0O(#UHgNUQ~Blkf3xyG3H*7DClmkFY3}?LO}#<+w;}qM{Js27 z2EVSICjOq4-JgFRlvDS4D!*L+-9`C78T`qYY5C7qb?47%>eX?1E#H>tU-FADLN)9Z z@ax)X@*kV-9{*l>{LV+<@4NqFOXVNC!dN+C`#(m(8UA^G;r!>m=RfVP_^~ULB^Hd< z{;&Co{PO&_Jrw_@;Lk>ke*q%D-2azW{MZ%BN)h8{zu`7_p>!TI_^+bLd z{}U8Hb_KIc#P}B?@=O0;tLvY!E0Dz&ikAOHi2Tz3-pc>h;7>=4e^Da89RK!F{MZ%9 z3K8R9jL0wJe_zGF4fxr@(Te}YiTpDD_f!1X706N%<6nZvFXO*O@oxwIe8l+UME?3E z#QmT4SNzx&$SM)zA5G*h+WZG7{vE)dTqIigza)`g`ae+dV^<){MT~zbB7aL<#Q#Bx ze<$#lBgVfpkv}$C@E@%Bu`7@z7L8W?FGJ+-wD13Rh~nQF{Mm@{FH7XFTT1vpRPke1 zAS*?Te>oz*T>r@^{$0TzUo2Yj-$3M->pzDn{@uWzi5UO#ME-&u|A#C7@!&5;jDH0p zza0OMQ2f{x%F>$q)R^{vd)@&%$TO};FXD|6`C>`($-g z{+ zKcA%hp8@`?#*>M^)xclU)JxPZKei*$zvS=b|4i`f+G*nNGVsd=5AuJg{B^&H{O`qo zHu!UK+WJp!L^$!k6VZRc=En|Hd--<`_{&88vVlJ_+PPnYhC_2u{$Bpi1;4JHruc7c z3}^XAC{AV=v2KB!S(ZA&H<^KZk>)L7JpK9O_%BlN2mA`Y0@ZYBV zUkLu9#*>LZGoyR{$Ch%AD;<~D@?DAkCBOJ0RKqR;zpkAo{-S~3E05p#sQhd_;r~qK z|6=f`HJ(iTv5^M;h7XMrMj(_Xc{8|JjQFQq+~!#y`>w@i84Q5i)%yIYayxH1+nW zgz(FFw29)sd1-O}M^5qMR6tgYnE$Q)`>)2owCV%7bAb~17QmtsK@-)f;g<@VoA z{`0?tv;I@&`Jc2~X`b58zbSn$#=nb{|10?Trx~YA{4F!PkAHbhz2+9X&#?#Rcb}!t zU+wE(I){8yo_iY8A@{u8sf=YMiH=e!CU7inVt%k94_ z6+cb|XO)Qg=g%z1KhH0F{Fna4Cwcx~jf!-hO#V9z{yjI)=ZsYU9d`a-t^DIuc$VDK zIZjRdKASygv-4-RQ~bC7AeR4EDgJ9vQCX9xCjO>6_xw+cckb7q9kC}d|K<3fSNymX zfaN0QpFguckbfb7=YJj*={%YI7Y+V{de(iO>R*ok*D3$F6oMtTa*k6Izpi~lUEWOe z&*l)z|7#WhwWuqr$x{=5dRF)RkMHi>uR;4~0x|#P_ZRmvZoV4Q~4V#3s{r@(+QMP|m%Zlxvn^gScQXp1} zSp4teJN_;IElZ2_pBokb^{6YO8K+F~->|s*_?Or0R}MPNtd4eb9mc@{5_IRkiE2Dg`1VE^FZ=knT>p7c z`NySzEEh5V`}p?XZ~X^1eYdawngssDb~^v@LG?da?)MAI|FH5u8T{FZ@wWu!e?;-0 z4E|EY`1cRW|ES`}rEn~>eYE2LfS~-3DgINzUyK<4fkF8nSNymXj-_{qmj8o-@;{;Y zPX~V?V*CgD=C{^=vg5`6Z?PacecIz}F0B7#H`4hZruCnr#eS*5T0r)zXTbVTQTfNE zfQ;>^)2|4`rjR{U4i?YsWJ^l2sz+KQl=FH(7TIn;-s*A^T?&huQx#%KusLpWI0o|NlS7zr%?B3tRTh z|IHtJiq*q^zD{@j&oJfxaQlBw`NySzEEh5Vhx_*5Z~6DU;>V?+tQ;}^BZBh3p!m-P zf1){B`G2Hue&^+X)A;Au;>iC($ov1Y#}4!O|Dy7L9{gt`=Km<7|K#?4$N%k4=weI4 ze@c7*+u<4i*>S_{|7GPLmqN4n&e6*Mqlx}=JM{Ix&9vv)vhbhXCFJG*@x$!@RplR- zLbFW7{2$}nf4}AbYlmUEyj(>@*g7`0m9sef{bNs)q{Nqx1 zmXDbKiA4Y1&3(te?LK^&tpWeVT|*xKvcv5EP30e#LbK#i(aQg0iT+Ew^!NV?`xpGP z@!|SsCl9m#x0Qd~3W4P!=KnaN|N04i_y2FTZi$V7|5VuiPZ?(a-OB$Z@L!IY|Ko}N z+17pYKQ;a}wl4hV!}fpbQ2V#ee{NVq#Q&|z|BdL&BJui< zy?tN*(T`tzBR?PMCh+UpX}bQQFfp9#AE^BGjl%y2%Ky#aPis7x_!Dt=|13Q;{`VpJ zm;Al_cYt5lP7{CEvElgl&u`uTMBe}KBjx`V@TWAMO#GSA?*8+ddPVn>C;R&L-;ckS z|69SYYp037`S@`B`{%dDzr^!mIa5~tZv%ft4b3nQ~B$U5bHmmD*tzYKd13z;!iE*?!T<5mz?|4jM63;fv$&UtF$PcH55zoe-*sQ>+m{w04e{{`^t+G*l%Jt-Xj{`sxt zU-D0p|6eHocY{B^7tMd&GVcB}ntFr!Kft&De*C@s-vfSKJ5Bx*lfv=upWj;k$?N}n zl>d9dU(|Rq@yC~S_n+R|Ij(~GKhU@Te*C@s-v@qOJ5BuQlf&^(<(J$4Un~FjgTJ8h zWa4jJ&fR}yi0=Pz5Yd0aNmfAL9#5qkg?>EhHB|G87c$$$Ux-|zVEf0h4s_-Fr& zmj4rp{^kCkZxsK7s4F=ujX%}kKK>;abFSBO;A&<(*!TF?&woYn<5s9FevI>S+7$nq z<_&rANkRRK7V`Y>uIU`7 zCjOzyZ&SUKef#gX{qvLJe*|@9HF;{{Z(hMY|4W*BO?;-m9~w0Oe^var6);P;Mr-+p z%lAp^zjFIubTD83J&L+?o=pBr2LC3H)V~Mz|C{oUTVb<8#QdK^^e?x6rYio&P*;2j z+W6PBqI>>lH1$%w+n>u2^FP0wSpWG$@m~Y~*?-aa?e+}!^wgmKMT2?%KaRR|o=o|l zJ|~>zKh=LzgYZ91`Om|DYGSm;|I>*6<@WENivJ1JmHrovzi}n^{4Wks{vSrn|BCH@ zy5h&Jz*#=i|^y(UlDcb;?%@nFvP!4EYGu3<6j>C8!?OYk4FKpO2p#7&3F7; z`@iJ#uSP2V>%pHml{Wr)7BwEq)kN+vCD;=k;|5R3XAO8m#TUK|t z@A1Fi_OGak^FM_jrFz=&pJvnfkFv#s`=8HIoxky~U;NLc;vbKKV7X(X75`@v~2|2pL#j{;!ji1|M&sDB}V=l|2Fi)lQW zmj89D8vF+pt@%9Ff75(o`)4-gACJOdiQ}S`|K}3@w@(-OKda(@26g3${yPl*E1G&W zT0IvZ={x_e<)7pi-^AnpS@7%HX^Q{Oi^AFdr}FnO5&v^4|Icy$eQ5C?TiZSVllwZ? z>shpB#-oV-C4VpfUEtTX)8xO~z^`e3;9@F&c?RKsZsq@Z@Mq3)_GIEut>f-LcD8f9 zK|A1RqJPQX%l`}D*R|8cpEvLa<M^eqDF}?3|(Te+<#T ze8(pVD|T@s|z!c}=|m@!3S*{`>KZ2A~>- zQz4kHohJU~^$hVJ6jbwhD!<(SHNW!zD)=iJPbU77fj@cf(B%KIME{b%m;Vy@b?r3q z$JYJe1oa=w~AzuF@ z<3Fza<58%r7%~4B`u1-f|B&&&q~gCF{IL_FmH!tJ`Adt4<=;|@ACCfM>4@=POyuvf zm;XyE{yV{6h#3DRME=-l;eQ#$e;4@KiP4JxONsoQHvh7UACH1%sfh8n`{uWnfAxoo z>tDtC2;cv6H(Z2u5a>_p*h0F30 z^M9Fd|JL%azZ5b* zJ9~KiClBt+zvT(dBek>J-jdfRwtC%e&CPq6R!VkZg}|PNA=}DYw>@xLwNr08#4a| z!^7XzkN=#-K4Tg1C(aBx{x2LJ{>Fa!zs~i|J5;3tp9H|qrCpF6Wf2~jdlLr`88iR>xO|17MO!@m0@s2lP9=y}yoyU~F z)A-yJOyiqc?2CyKbj5k zKU6;b#=q@f9{<`v`F|AtW0Pt5KU93CdT${5m-jzPD*pFT7rTJQ-(m2d($s6>GyOg5 zbNn0Neaifi-w8trob-w#lc&XXzsryBfwZJ*!ysQ#zgz(1 z%Rhf+nLq#5`49Qy?CoF0Uj%ivQTg?(tvN z)Z0Iv{r*0g82?Sj3;&xd{wLu-wq>;Z^JlgN@-I3Z-N?$QNaxAqzs=y^uUD`0Q~k^Q z-%|OX!k2$1JCD;Qey{Bv?D_aJ>nQ%^^*>uE{!dU*;vyPrCkhcFDpBv`=-+lcH0et!Q1^nwgnfzxB{)2kfecrEs?EkCsm+ko9 zNyYz{;7@Df)Wjd()II(SntF9yUdvDO8UHqa+jNotyD0vz_&{>0bDo;`J9l*FPrT(^ zuUAgpe5VKH7ZvmP{~G+dcAEHOUxsu42P%JpiR+(sRsR12{yfot-A?ZQlkG#}zm4c$ z^7r!p4fu8KH2JUlIvoF0{%+g9H%D!sRsU%re3d{y7|uZ&EN0*hqU7V9{lmkY5eWY?)hKT)T`t2T7Gs=e(^=9 zhW!A3T{}(wyM72K|Ec`VM-IIH^%0y%S5DKee=WWq4*w6_f6{BT;P%G-kALo|;-5cD zA$A2V{+oYt=TB?u_1<#lInUwz&VO<&9l$Tw-&gT>fj=KH{z6dx{S^Q6;IBlC|L&mtEsFmI z@F%aMjenj4aFA!bCn*2^ivLCM=OV^`Z&3aN6#q-$FGr03zM%XED*l(jpSV6+@qd3% z{(}_%E8x#YjGsTV9{)VQ1}y&$R{XDmzZ5Zk{>=73{D&z168PgcL@WOJGs^?e{`>JCuK3>of9%F+&PL${=a(sUta$p8o}H13-3rxoSNc4@mo0iKLf{qtBU__#D6|w@n0my zf9~YI@xR^fU$SEm|FHu@j{l2>C;nTO7W~I3|G%OyQ^fdB8^-^Nre4P}z(?VELC62& z6#u)3|K!ci%PCX-`)Kl@&iW)V{<}}>8~@FVf5nbR{Ii3?jsNU$$G@<_$N#D5OI@6r z{1^TRXZ-gc|JMB^J_G-;=i+B{BJS-8+IDvzY=!*w-0mt zi=N}--|y&1U7VW6zvQ%V#=pSvf3nK|4-o%}4qEULO z6Y*aZh|35^9{^}D)n{}eU#_8FWAzg&RC4RrkX9L4`J z;y-?i^K#n6PiXp}eB?P|{FhJZyZ>kFX+N+_5dVqRkmLWFVUB-cfsg-xp)YlDYVx1P zS_NOP817f#_|K{MFC+dl5sUvWV*FPg={x@KaKcaQGQR$EmM;H?XZ{GTBHixG?e=ZW#3e5`N$Z@Ks{>}te6 zn;P!;pS^aN<6i_IAOHD^gf31^EqCod4=KRcyw z{BJ(}7nVo-=R=PFq3*x|=RaSj{Qn#N(-HIkBGG^A(|!FH#!qF}!G9%W|JkF4XZ(we z>AU{V$G;i)hSdGE{Lju9&iHpx(B=OXD*iu1{1+k?|1bHDf9w7yT_eTyzdx(ve>1{= zit2wi_wE1W+s^A1LC3p`gZjT(`TrdL*=@A=56VIP{L4Z8i!bK+KN9|Ro=odMv6;fj z|G@t9%KsPepNg3OSN!|$d;hcR6#tjt&qs{^)u8;>EB+qvCvT5d{+ELC-=O%v0)H-I z{I3P&zftjj4gPY(_+KaTx1S)^e{WL!{{esEj%daI8$|xbtl*z@q`dy^Tkw}6#{U+P zzijh&DF6QjfBep9`RC89!#~e2d;7O-lJI|v;{Oi(nTYZ8XSPxJlP3!PTNQr={Kbgz zcN6(#{@%gyTr^$b*E*$?<{?ZJ>|9#5; ztl&>P=$xk}{@CvB`JdI)>shpB#&)8A$=}QWY~a_m)5M>eJskg3{s!BBFaB-7U;3El zzcMi#{>Oa#x9D_M{z?B2sQjOu``6^D zDgI-7x#xep(>bm@H(WF0WxoCQ;}`X!8a4;`b?r3qrw#m?<_9jO^2_n>VdZ~L@Mkoh zO#EzbcmG9Ay+J$Ra-x69FB-u8&jo&6J5Bs~1AkCX-RG(NGXEb{{^tgN>>=koHSxFX z|C#o%WL@+ME{asd=d8_1HZ1FCjPRC-z$*M`KbJ@Gm7QkQ zb@!jw)aw&>!0cBN{Y!pPBlkZq_;u|x@i*<~&Oe~xgH#Zhzo`7r2mXr2lZijp;?AFZ zWN7mLszLNW3jDfun)nL_{z1|`pc*QFazk;E(^|e4d)g{~%*| zuC7evm;Rqs{J()e_e`|>^Jn%3^8cLT{~i3XKcnTJKeLv?Fa38Z{y)H;um{4XnhHVc-2e?=?*dxG-6qWDLEKYq&mj@L2&e_j9K&n%_*m&d({%eZjpC3CCa+>{Artv?uzx)2LvZmgk z>2Ni1|Ci(!4L~()0r2bEY2q)h70&TbD!)Ac=`H1dLGUNup)LPf4siFMc+`2nLQwzL z5dBO3UjFMjzowl={|5e`oVw3b`Q`aP?*+&mQRRzoe;G$K|y=@7uq1{zKsn zah-Ki?f-q8-y3ir+W6mda5(vYDxBe;=a+r{gY+*x$;ZEiQIXD*DgNUJx%>CrK%X=E z_ivs5Adi2)tKxqV@W&r>9;ZzFJqG@are2@817^S0cl`I`7d3MKi-KR*P7{CI!QuF) z^2_7jA1MEefxoEnWa4i)#GOC(xN}?$5bCqwI--Bc-^>5v;McX&#Gg0t`^54*JC$GN z|3}LI65vm3Jel~Dhr0VOXzKM0s+sZnp#IB>e>C{n6V7pJ;!kAU`BR#DHCUdDZwSgS zzKM^2OM+k5P80uB1HWe=pEFYV<@q0uTR_ov)@ScFZo4{ z-2c+x*R|8cA3NNge?Y?rsUR@_zm@-Gz@IGA^1oo<&uQun+6_1P_g}sLh1~!5rsAIk z`+o|jMr;4~cf|caPVv7i{OdfK;-4K6PW)5-%l)5UDF1cv&t{-){{@X>>gOv&|8o83 zbH%?L{FgO(YVzM@@SlCsd0e4#+n>9cnE!JBZ;#@imHR&}TKWHdQ2(MM`SPy;{&k*A z{*y&X|G$-OeF)~{5&!1V1f1Y3V{%`4De3CE!R)T+>CzJoCqr-`R zs(-os`(DNWT<{;CDO&#dGn*;?XW~^{UgV} zUh%&gU;e#A8~-{_3}^XwJ8}Gz%fCOB|55N?oGn`Z`7 zpe{LV=UjY8|5%bTVS?JS$b@|tA^Ut987X*JLV*LD>brgQ- ze@4Y$5B}_2(Hj35a+bm`*MCMT{)NDwdo^0)-v}aq=TRd6XHxtNgFhXMmVf@tCW`+a z`~KfEEB-~mpPDCH{QQ|k6n^%y@Q)K{?D2mw@F(Vr7C*mdErmbzir}wP{uc*-{IzK1 zKfh-!g+KqQ;Gb3TF9H5c#Q6C=YbpGdlHi|B@yEemj2J(^XDx+4`MThrUGa|wf9&;W z#XrAiErq|w=AT3HFA4s1#Q6C=YbpGVZwmi&D*mOwUx*k#zh^0hzwIr-KbPWP8vN{y zXvIIjXDNkW#{b-ke;M$nBF4|}SxVuT>;EyuzbyFk5##6gEcM5a4Su|u|LXgkRlfcI z7V0YO7p?REru*LiWnKSR-#GC3ul!jG$qQ-u-@cJy{~z!4A$U#l&EN0-$J5pRzkkAi zin#wPo^|KXYw8W!C3gnp7Y*R?zb5!~?KJKGYd7!*<6+{w z|K%a#zdI;@ulQew^K05^ivQ%v?);vG`kXN^|H8`uy5LW|M~nYX1AkUiuTR_ov)?m_ z{?`M)uAL_TiBrPyPvw{6|DwwO`rt2VJel~j2LAZ_&T%zBsLz6XiT)+O_&!vFYag)x zSJO@t|5O9NPb|-~Q~BlcZ*k>+Eci1-{>-WF@n6)`>lsut<9$T`l3&!z{ciw%T{}(w zdkp-V<_9jO^2_CaT>0M+{IL(5^VG!Oc$&Naw5Hym9dJLC__Bif42S0^Z%Ar{0;D*e3Qm+*FW4-{>&zd|DLzS{;%Z}|0bv_Mf6_@ z$$ux&zdZiap!k=E|6IiU^Ji93{LA~FF0c5TP*KA13C%9RF8Q{42qKF=GDtGus0B7ah&>e{Ueg@5*awDOeYGmTK*_8|K||E$>mKSuGd2LHJqXyc#P@oKQ=A&y(?{yUa>fkR& zjGsTV!6$#;`yZ^W__sw}@iNVS@>uurFQch9XgoYljDI=)t*iLgfdA}|H2$C*)X(#0 zRs`}dzL+onwnJSyPp0uNXYfzuGkuQgU#|bGul)ZL{!0<_&!5>r@h{hZ*Hir4qpqSR zPfh-d*SjzOVxKtYmC3K^?@ti(U-}=b_}7I0_)pI5H1V6-IaGh=&n)rh-@5)GIZ_<| zI$K@;`xENQPNc2>G_<<=k00w?Z_s|38}Mkh=a+r_GxNS!|JhGH|EdxGixKl5_wC<0 z{$E&1@NcZ*e=YFGevVfB^JljBi~oN7;}riG@TVij&!5>s;V*t5{BNT8*9LzfV*LD` zwG{r?M}oge@vj5^)GyJBe}2zS3V-@z!M~~EUl;uOi1G7#7E<`*iwXYC6#shQuSATW z-?NUwA6rH&|2J3s>w`b}Yqa8@-?NLtFa2+!_>SU0e)ROP5kLw!tqb# zZ#-UH|GBI3p9X(cJ94u8KVE5V+H?s#XkZ3rFj;r-Ve5ayG;D~TiyM~ z=XI{P|M&R){n?=W;tP5F?*)EcJ5Bucx4HBCmFc{}$k{M2!ClBENk8*S?B>OYkTEj8^_XL*@Tc#Q%PZe=G3kBF6s$kw4cX z_*)eJ*5EHkjQ?dKf7159zv54UKQS#@@&5*qU-~~l@oxkEY{dBACh|-F2P*z;!C#6P z{|7{V>Hi?bza9AFe?=?)KPK`^{|77n?ZKak82{%)e(C=Z#lHjiixK1RA@Y~M63f3s z75|Rlk4=wO{I_ER%jf!k_4uFM{~_n+3(8#FGui2J{!|HBo3GyE4K=Ku1b z{)GUZ|NFte&XdW1s?FVhP|v#02ljuY^1n0uGe(PlUHgW*{0e*lW&D@Ne~(c7E%0B^ zR`^{R;s+|M!P~rtxI*-*QGc`5)MStMb1q z{O2R)|0<$?dHnkr#eV?&=ZXI7&UE)*(bOx#k34z7fBsk3f93IS@y$H`_XNN0IJGJM z8w|&P$$*9r5{`dc*Z)+6ThLEL-yyZQ8Q)vC*xnVjQc+j{&jI` z;x8HEf2cZu5dVGspP>AYhyPr}{9i-#FYkYPoZ>$S{&Vxw;=lbY_wlc+sW)g`yy$=Y z>+Am{#lJhx|K(}?K{=?O&*OuX{Fna47xVl-82)vhO!?na${|Dc|ApAYQ+RONq9_)n}ri+^4FhPwQEd;ul@<^4}jQT!SBk1t5$FB|-4 zH1!7UpO=aG-~F~Y{&BkEp8)^ai21)EsDB}V=l@~wuk&Qe|E>q-c06x5s9)3P1N%Qi z`QHovOA+&bBRYtZ|MK`po8mtl{)?JCHTmx>y08Dm>Yc|GlV8){UkRH3XDR-@;Xl5j zb30A^rgje1-)}<2f&7bx@%%pm{&k*A{5|)$um24de_;RTDF6GweYGFlqOG2{OPCM^FObt zH)w~Ig698)ioXT^(-F)6TZ8%+0(kx(1OGZtCjZ?A|3N+LJ|Ecs#mfKw@L!0S|J%?p zl>C>=|BDoVEBq%HrY-+kpLWmxoTgr#SFh!-1d19|-@ci21*R=wBZHZCCuq!hczlrzZd9XWa8Yv50eC ziSQ#&UiY8>)$8PB>2~PGUb2s1K}+Hss8hy3I8`K z|A)bUDPsPijO1VL|F}`{XHi*tFX|EJ{Nfp1kcl|E=fW$mjpwuK16H|MWj-{A7TDA3PtD83R&#EriQi*$2Yt2+gZdXO;`x6n>e6{K@wdL>?tjq1MTLR= z-=q8=1ONGm`M-$hU#|b%t@uwvT{%sjn*7(l>h8a+sW)g`bQAMmKL7AO#or45$NCzJoWlDq$)o^_w6`tNyNtp7it{7;1cT*UmJNAxe3|Mx5YHq@1k z)8fBm@L$r@tMlr${9R)HSGE${|DB5eSolw@LF4z@-oc*l;-LOTgLwX*fx2{_O!;4Y zEu8$P`cI~W|A&?TSH8)f@XF8?1={Aa>{W;8AS+g^9~U)0naG#}n0=6`M* z;r~&^e?0uh|4HKy%0d17+(G?|FXs7w7X0fxnexBk4R`-kKGWx@{>$46|BoyGC%}Iu zV*X?3AWHtr{XdT>{W%>Tsp!hccmp9uf4HEH~&b`I6w z=Rw7R{ELS1{67c&b)HQ5Uw$*3{HOZQ?jZb6QT|VY|8&Is&l}YLlZyXb_-9Me;=lBk zyZ@A?UJ-ue$p^&zFYPG&Kdtz)@X!85<0k_I{NQ}}{9xrj-%XZ~0Di@ON^7Zm@=;7>L>doua=ZeVcd zT+lba75{BBiuiwC@$+M8IZd3J_`4r-kN>i!-k`nl5pnq!+fDd?QSqMw|K*7JUm&P| zApqUT_^~vdCzJn%$KCx0^{o3m)qi@t@c**%e=7VZ){0jC*P~~IX>HjUoe><&(?{S z|1*gEjosq(1f7yQi`MZk$T<~Yti&p$U zj%7AhTRp! z$fa_OHvV@$5zh9{lK!`Us{HK}h5wJ0|BK+iMD!mkyYuVn^}OKH%=j`N|F}GlFD(D6 z{ISyn|0jz7V(`Z|q~(9NfnQgz$7XA1dxgl~yq}2wPZj?q;Li~G*(dJ)b@gh&JpSP+ z|I5Fs|E`x8w$^i=8d;t45IO}HQx;ZPkhK0&+&Y}&pPOUl&*%DImA~bef#ct*eEeIR zcK^r16nFm~b^4xdY2x@N_y3A--lN9!|K;FMYdo3w+YS7w)X@0zI3X#>jFL|MlqYkS$A?)l})Y);1K?)!QY<&7xE>U#Cny`0q! z)?>A!@7y>JgYuCM^_+|HHBsL2w)kE#o%Hp}cyjf??=7QzltVfDkHyvhdzVD{HYl`t zTkf&GCyR34U;STCqTGph^f!HZ3pi1Q_j?-UPW9wb?!;S0xl{XR_||GC?@#Wd?p~{% zX_PzFpVgH2=c)bvzuf~{JC4h=JujW4+*I3Q}))TG#wx@AXZs$Y$@z&or zK{?O=p2O;^_1V+(CcK^ztYM-UC&Y9z%6sQk_c>O)mQn5$udK-`=YtTB@8)Z*`jRN; zm??pN1nmU)&zxFh_vvWU8 zK)DlF5#>%?BX((Ib33#rjdG`co{Vy*`pYPHsz1JKBbWyArcrKt=RMJe6CZgTXHo7{ zPhL~bKl^unm42L4w#Ji{IB;w{&{OXPRCh3c&_UDitg{V@>&nndcb=RB*m=BRx9sn z)4yjwc#oLcoc~KbkQ6W}k^i-+mH&UYe)wOC=^9I|2WmY~>w#Ji)Ow)S1GOHg^?*wc zJQ2=yIxa05(m%Bd-jtX&J!bLe#qaIn_l%hKh-pzwy*AE1k1`?7t85n2teAF)X-Q0{ zifP>NJ&liB?Tv|Po0z7>v|CIIV%qRG^Xt`5ZN9!ekbSA|e)nR(-}}z3ek;D%_jBqm z9{=a@d+gfsn)%E2af27E_Qb_BDW+*L&5CJWOp9V#7E>m8;$oT>)4Z6L?Z1n5q{TF8 z|J`oi%kKS>74zF%{ijL0p8kKR{a)*VS`XBEpwaojp(|`G#Usq49yw(FD_CQj6clrryeYH0Id-g+!Az1tB z5PKjgzPonbkCpd-*M0~w1Z!U%Vh<$6cmLhacd7AOt3&L8r1Z zz2Ej8VhGm0I>a7GitqlruJ_ist#L2J5UhQ5h&_-L-)*l4)~0>ei~lbD5n>3|zBa*8^+Qzvp&9h#^?}>JWP%DZbl254JY7&aeHu^+SjuSo`V_dmt&k+dfadHnsBq z@750?hG6ZhL+pX1_-^}pm)g|I|G!&5gcyRguMV*XQe&*`-TXgB+4m!?-v6^ac2xEL zpKTj_&u<;cn#WpGwt-dN*kaxH(w;7da(%JF{K2cw+d7qnS?uRR?*Zj|Hwzw;<}x-V_9T0T(3rzr1z-$?uZ-^op! z+c^p4PWS)*1m(SXON&_j9&d84CyjEa`+w(A?$rJ%DCg~z_mdR&|Bi3!Tz^tiKClOB zCAA)?^+2r$YCTZvfm#pLdZ5+=wH~PTK&=OAJ@CKK1D$7C_tVZlvld$gKzQUgo(P85 z+jx!wo_o-BM&5d!hj)A$!_v3an+ zp#N)6l&{HVouN5raoN-Om%RR2XRx1#Q78WX49cs|9TUHIh-tpZ>WBXIzkqVy59r@& zJG)-7o~s`Jy6Pe_4yo+v~|1_VYi|DCgV%aywr0s$OhQ z_Vh`VJ9){@GRDzMLmi(V&xsK}>}h(|G1Y#vJ=)LnI1}YgUdpqLaqNesXXo<|?!=W`*y8H%>lBnbam5#L z=1OYH)1ut=XHWZoU+wo=57c@f{2r(~TP*+g8N+ZWKrR1|#<=3N{71Rt@_(W=4%y3P zdpZT>j?4dJt#PRTxHtjjd>pdN?d42S%x~9gPe&f-JZ|Mt?zsFv&05a%@A*AZ?ld09 zPv`YJEdNpNxcqN(9*o>^-ZxJpMAiJtN!u-B+4E8`9bG? zUaHgTXL~)wo)%Hg+ix%T?djJjck1Wl!_M)OMLDm>etw%hy#eJ;{hWNnxgWA9=lyK= zr@h`+L^-d&|LaqfJN0w&QRn*8qTJ3S`#Ek|&HQ;ydH;6Qey{bwaP$BlPyY1qMRki> z>j`l&_3)9}EVUk}^+2r$YCTZvfm#nlya)Jp&E9zPHD>$WjC0uR|MTf=c=OjTc=PoN z{^HLNPl~ra^UU}?ju}?Nl+VZ4o%v_^|LrONF8=@C_4odN7yh<5-VJ#Fgg<20v%aSe zzuWckzwz&y8*g40{~LdI>}j2Q$DbF^%lS5v{W<)%`uQF-#%=?z=XbnU!uRlYC-MI{ z-h4(r&)KMi&(9khTh3x$9ls{==566+{O?`(KcAo1$J?C3bR^#VyLnsezw>!{yZAi$ z(?(Q3vnBrDh7EH}s`K%`^SXHd@^9gF@Hg+1Jb-QPDfj??k3+frvgb|gG*k6^`1kQX zvfJK(|MR-zysX#%`8-{C^Zw$0=WpH)-Uj{|{^H$Wm-8ui%->18d0+7P?LHZa|MRx+ zI_+5Cd~=B3vz6ax;PdnE|o_~h_jnB*9{JZS7^S1JO_~$mq+kWvf{*K!Pe2N0zHqOM~ zye|HemvNpw@aA>!?@Qs$>*n9XU%V~6KK`=n=6%ikty&L$@F{=u&++#1&+>NJFZ=KI z@AlL#x9hjd?WtYP=c~S||G|$DBV-XT=OxpvX`k7uzwq)tb6d0Ut#MwC_kgbvpBurd zJ#W`i{Q&=F>)Y*5RmrQh@flI$jQrcC^Z)Vx@E4y}3$0J`zu14O{$2dp{(o&+>w#Ji z)Ow)S1GOHg^+2r$YCTZvfm#pLdZ5+=wH~PTK&=OAJy7d`|EV6x3Yyw|aK%33*4nhX z@4VIz)-i;?Nk9Bg4Qe%*S`XBEz*7%o#aw@v`&`#Jt@WE)Kh*kxujkou;Aya^%~b1w zS`YkB^*~n8)b9IlEe~q_Q0oW2T>QJm!T;2tR)eYaK&=Nn^+4y3b5{3r<}Yq!NqhpQ z9IsLR;7yIy^SWEbeShp}T$J;ZX!-qH+K;!cPu>pY{QC2$b6NM#v8Uw@Ue5^DFwvUN zo{qewvCnn3_Vv5-tWks=26buZ`WU+vN&Esd6jqn|6}hu;2o)|{;*34iW)^QSRnMV zhiX8@P{cu6SXw|z*rkLf0TeGG5_M0-#rr@VV zzI0P^Ox$Sh?0>rOLwtJvfB9?ELQY(#r*bO`zLTfp-@&JVJZ}(uC(qWYa$JaJu9x~S zpF?H}zJnX}m);B16nwXFIsZ;ME^{2i7Vd2!|I`Smx?DnkNu$FJ9$=qB=aO% zzQ;Y!+BpCJaoYmpevjb0j>~=S`PT&B?K$vU1>X&aW0Lu5Pk z71?frA3ss@%g0Na1iyT;Y`4L0t|9H>>%ia6Ql5QAzQ25IZ`sa+X7-is1$_kif0F&n z94`Bl0*=OEvK=o;+CNIt>e>>Y;t8@n27EJjNL&}3qg`E1^1Gnb zJ*7OgI{4Iv-{PNTznh@(2Y_cAcz||6Q};`L8MF6b3w`Hde7IDWdk3nSvD^EbEo z_Wwb?|1;4zk$r?fgusG>Kx=}>-wRGpqf8?N-oFUw&i~`=eE>~u`djxdn|Lti0&-Y^&B^V(PArK)DArK)j zDgwIwf8OW*zER^vb`b&*0ucfc0ucfc0`ndL-TuFkjqcl=_oEYK5FrpD5FrpD5Fs!% z2Uw&<6Nz&>p@2Z&Rt408N38!L9{5w-M_i?jU6RS;z~ZWl$S* z473H>1s#CKSCnx~&Btg@lS#xD!LF>Q%OjJu@%LZX=$f8|%E8w&|PT)!sxj(>{l z=sR2Om_^3@WcvT_r*_~XM(v}Ej`OWIWuA_HZJ|Yt+7*k9^OFaEWIWGt{`rd;wObY+ z=jVs@uUOout-pfgw}$+$wt|Se;yAxN%s+5Nqc(dbVVCG%BZb9W84qvr=|%%j{e3o#`QBp*zL5-19y7G!Na=Xjb+b_e1)h7JkO{?Y+kJ zX}p}ea&()m!h8KR3P$s;y~q8KzB9h#`s?na`2P&~|Mr37e)2=OHP=1Rs6BD0qJJv% zYyUWOT)#P7Z$dY@!r_YkkD*`w{?X%n!pG^CgHQSRqsRSphx|CY-O6l5-^tU_@7lB9 z(_crod)Bdv{<5V1;<4lU$)SFA{~~yo9k1w%**5Oqc;fhR{q|-5KYxw;jyEzFoT%up z0{!G#XN~h|efWUG7wbdv5Wyc>Pd+L5&Xzpkta1Ow(0bzNCVzLXqVLp?vnB63SNtp1 zv7!0p=q5jRv7+zb>1^d2uNLdrhvuwf*GP8sZ-hXEK!iYqK!iYqK!iYqK!iYqK!iYq zK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYq zK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYq zK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYqK!iYq!21+| z=4s+x>f*0#FJ_!_G( zulekDil648GmY`TBW4=MKYQJ+Q}D%K<_nDfL&10ce!RQ!xl?WN@c_AX zk2uJ1{%Xe^r1aNVLcC{Q{MF)z8vp&`A}5o+v7g|Jzgkh{H3!VTzyp?4KFq ze<%D*!6(1`wMIF4tzoPn{)V>9iq{%>!RrdDY%5=DWL6S3f(~!p-L5n8`Rk1G%x|4^DnDNkx`Njgba=}j(=f{AhS3yM*^X@($=MAfFX-@A zK2GR5yyI2AG5dE$viv)vDd_OlJy!6=U;a3iUtZ`2qiozD-dQjHhPM3l8;rceTUg~M z7ZH5Hs|h;1C6~X^$R}?!YJv`LncZ$On!Da)lm#8$YVZEusJ-)hBWc_`%r?pk-7NCC z*+@=P`NqP6FL-4^hqv+~Hyd}p`R>ulMOA)s`KFOsu4!}y9o{l43jPXBqbca{mPy`X zdBJN6I=pqCyxlOw zU$QIc(3aoz4@P;HKNvMZhqrFIWps~j8Tn(xhZBaj?(CMR5y3x}@sAUH!7CrH^2^5E zM(y3ZjHaN&TXNdnMslIM1*R&$JN<5>D|nfORem}7N29jfAC0D;wE&uerMqco`f(~z)XYVyK&)h54Rh6H7{$3;b+`UFkP-W|h_6zqKWrq%J&F+07 z?tLPz_#4`~Pv0lvioa)6elpV*HPklpf(~!B_1i{M@VbHyZ~6TFMtRr!jhdjtTY08v z?{>e~7pnZc@qkf&_s>R6(BUmPO|%z!K+GeRUz;xU1<#?wTi$q3_z`?Tm2H}6FC_jP zI<)1dKPc7*@h9l;R?9ym#`hsHz7Gwv#TxmL7+>)>OXX*Fd)P?kA2w=&4sYdK9x-Y+ zKVoEVePoy|=3B=|-rO-Vf(~!_TRKL~;oYk8lbJ^a{*Ma$A01XVY8yN%@E5!dReo|K zp(}VbL6xoin2|jCF(V`B@Rpzbm{AkFrl7-H_gJAX{_@AE{ABZSBXjfPVvTrwSY3R_ z=W(Oy@NQH2$=ijl;MD{j-kR_J)#$$SSHXH>m~C_ydcw#HUS^ug&rg5Cs0m(IP-V+J zX(Ye#q>&MHc*}3_q)`*Rrl7-HcSE5s{_-2C{A9UnWRC6{c|nJ_+U%~;ba=<9VYj=s@igohEA#L$3qLoB@MZsTLUPq)(;_g5~cd38zeC(^#QFXA0} z(YSv1FiFYp81jklA^jIwKePL*{USS}wLPW(u|uTa8v5Jc2l?(RY54%;fjAk&Y0p&s zml-bkzsPe)icSPXQ|^({37Zui}CAY9+RAC5%p99Zhhd9LI2{Y`wYX!z`8+xvd~LnUJ$>H zbtrzWnr9!lHQ_goI>^Fr{4rTa8O-Y}aIB)vi|ALG&HERJ|0ZxrVZF;>9m!)}rP#b8JA>l|K@<F`i@aLw0@O5XX8*{O%s=Jg8A!AWj$k zBYmP(;708t*6FcFCBAXs*@pivtvgs>+Nh&8=2skf_d&C$pCZOLi#p3=zNCN`#VF6M-}x|Mtx*~TNeF`BYqkCsVefSVtvZe{u1??f&LiP3GL@J z<66VK8RPQ;<5R>u8l(LP`qRXEO#Rf+GCQ8>qaUOnM}B?GlRWCBiaJgb-k4ux$7vGz zaz3?F7~eenWzgRy=4lmpWibDnw2q=periXn>sb=>ZVY;D<_5jrsGvwk5D&p!V`)`cASyKdQtrej$?rv`R!u=Z_vDe zpo{UzYt~D$&!C^wuCcu1sOvG*SCOr=UCiG+=3R#7>BCreQLk0tn8kWT@ragjyie^U z)~6!;XW2Nk+5D(tzGcBLV;+$|qDhQ@73)_Od1irg8FdiHc#$2^B-J0{WZ8I>X}=DC zHLO2v>_>{AaH^ur%ezO?YD(s3_$GTWYyBLo?>Z45gpC#j^kVjE7k139h z);{u4BR(W-BtJaft}ZX>kSNrD(;H9BK2)#}%C*nVo4ndt_qgU-?)(s4TA)WK5IGW#@yW>5t@E`m9`=g)p3f~1aZgGn1 zzdObAenG*#`OW!b{`IY?%_A0ao$1Zx^ZVla?7SfC{4m+^P*{7e-}kBe!TaRAr8&Xt zg&bF1yFHhWUv+u-@k^^t?KD)AeVn`LVZxU5}gUJmy#by?J~c zzBH;G~YXiw7d zS6nk6#{%w$yHmWb*XNUUYt->?1^nG3HA(ecSWwRMczuVwE|Z+g$Ma#wKQYC>yS7i3 z*T0Ita=#81-_e~<{m9O6mnYA3=aU`Lvc{g|sVltw^na?#vj?kf@8E^->aRMcw#lx0gFBz(wI54)7x{O8B-`bmt9JRb)Hd12 z^O7G&K2269dDMAPye8kR|6>fVKH4c;)o&sW#pN`=zSOV5uKYdKK6#34$FEZPdw#pQu0&C`#te6o=x5O{YLeh`aRkVPx70>I8&Qw@+8#{@pUvg z;{4$LvKy#zo0|IKb_Ui5;-_+|pA^P1^=-*7Z==e|E`GB+pXA-^rF@L)NrNBhkLkvV z6c`;#sqved^(b|Os@KQ*KensNPXWKwYRDV)PGOsDJ`g|i9jV_IpY3qwXOY!I6ZP9? zFQ_`!Vztk@B z{m=>0KFjtWZQz>0e!UD@#k{Lw{WRG4P#jMC4K>f&Icht_#$)UZRZjl0y82}OG%(&( z@vdUG^_cu|T0BVAuU#$MU0!E1z`tD8&(QkB9M>?eRW`3lErb0~QnQYdUK{mDZK7iu zT*hi@ex%Q7+^6oEn@K-O&3N~*ex%s`uLgX&7>78kSMkXlIX;Zv$8ja)nZ-JnV)L$z z{RioVr5WtU<2VjW?IQE3GMxLU13&*s&3>+_*>8?vK4wv0DYjp$5k73ck->ho>9ap? zW8D1mCV77c+5bN9P6D6y4Hzd<3`yfG|JsGpU!2W{4E2}!PhwtWuuinuI?dFL6mV^_ zdL+H1=J=?OI4SIZNZ*gvaw!nc-8$xcYD&~ zG|q72a%vY*AJirqzb;@rtg}_@KbqLT}j$Dic4s)brds%*UpnqQm6(b*-D*BCo~CjC6t8v}V{Ffa31&q!|!#{<;nbd2?n z}qVi zF5-BUJbpc-3|z^sjJ#@^^|!l~w5wh(X_4*6li2_DaeZ(M zI8<@Im!I)(gqI+o=33;*vbW*2gi{&no&y`Z`+F)O&I@HNMV1 zG@tEPGB_Tqvg0yeznjba+Q2uC{a>8hLkro>tT_t z<4yFphWV1me5Uw1+QhogX10}n zikfjC{VeqIm>*^AH!{GfkM$%)^{iQ6lIN;<7k%n8iT!4m_Jfqrh_sC3zM5vg$KAHs zxTeZ#{#>8hW#momG1e}#{Xoj+c#8ZG?XtQmpW&TXUQ3Hphe3K_r&N`A8A{DBmRgr&vAlevI*TZ6|M>$iCSKrbqgmW;N?G*E85U z^B%c|(brthOJV)0vi(NaXMR(dBF2r{I-2rXU*hceko$>aoywzbvzl?~qd#Lz5A4p$IQU6??VmM_rcyzH} zFB4_;TEq36DkzV`+j(}}!R2F`wzbTH6HUq8)$t~1)I)6d=S%w3*tNP%~^(WfyV*iu`?n&UAMIH8W zTu}{pT+y^g!>e6W?J}DA5?@W#tFh~Ces~l|#5ak0$>!Dg6tB&W1BkDq@w26$F4m#` zq3(Wl_Cfh=z78?NHpV&5_7|kqXY-Nxqtf_|=;xWE^|w1F?Xp*@_BA%I+M46^IPTx@ z&3_x!Ki6+xCgsJekq_#s2EKvu9m8>UA8qmz$8|$$6U|`08LZCxY(E@l>mu0)rL~>i z`;`bGS(w2%4LW_f1VeRyI0>h!xc*}uGI zT_U>-@=Ec3v+*N+qFowyVoVaP@p*Q$I_}wk=b!CerQI0ykIgr2y6AV6U0>q*Z5%gn zKDF~~J{NKPLh@qB{Z3{t6$kP|G|$G5_+{YL#JbsKIAnm+9DQ~?(!XAfJBH(zKGu&m z<`LO*nqlW3$t$J5IO?*0gX*8#Q@ebys@H`dlIv)btz&&U-m9tpnpmHbY@Bp{=kT{s z{Sd!@nL9s8`x8ZF_gW(7sCMSKY}SH?k)hr+yG4Bu%mXM+WO?oULQz zcFYH#K8}A@*U(#P?1`+KS%%7bVbc;?aXGMi^r$m8t%DuaF(**qt|6Q$*l z=YNLJdalc-=7Ue4t!rbL&wZ@(`HQ^qO#!ErW*wrunwoi<^4ZT;v99EIl6j;+$*+#) z&-Bi_c(f`n2V4)6W!P!XLnxmr_D4<4`cZ?t%<^n+r{*<=y3Am|lEpfh#d?;3ABsE1 z>N|sWk?n^_KlM{J9`QL%GQV6N*R0QZ9BW}er2)lkbk08&3cx_{EEZA>vNpZW%ZlIx|c%#`AD>(;`B~Iwl3hO-!+BKFXZ};Sv%r_ynX{$;BI<_tL22zMX`f_ySJ^sU{*Bbr z`R%gfc+wlw)H%t+(s$o|_vnR$QE%mC#_v;VOp|$Sw!Zj}*xrFW_p7DGHkr|cN89mJO_CU@+Tp`Nl?ZAmeT*rORq8R|3=u)@h`Y>@pm)q zZ-9J`f5>l#{2D5_0=$>Awm2Ydc8!SwgP#ZwJ}Gd-jxa8}`({7VOUve8>NpkW>HKkk=qTN>IiB zcclN#9$wcmH+}$n@}CgX%E7M;`y(MI|4GP?hx`c0sXo$>|LLNyj{83xa`JCM{zB#J zRJ^kW+qX!E^F2K)!>Z!{b}KOpfn1zmxuRu&41Y z!M|hY`2U8WN`5nu-`W{RY^(=+>R%c5>%;!*kW+q+m6PAbkgp`D;(t&0zthn)j1^%| z{%!bQ1@qvqG9@!4DYe?!Qf{RidOg1uws#P15K?40=L3aaGy2jF+7 zv_A*-lwS-D}-W$^Yy|AbJny`25ocyj9RLSpQjPD8G za>T|}u&4Z5u)h}eS3*wt6@`t1?+uV&BIs~_MVg-{N&gqap7LwMzhmdb|1IQneAa<{ z#`V(vCqk~||Di?3<8QX7<(L~)*i-&J*q;vnKZcz0??Y}wev+VqH3#1;@Lh9n>AwPd z%6|ZR$Igj=fS^i#e+9m4Z{moJ@4}w)D|}eucOdNdhn(^=7L)QrAm2;S;rz;!-#XI& zp0KC{$-fEtI*@-tP{set(*G&XOaDv5p8RKEzYOe`f}H$YkS`1Q+ix@f z|AhbT#DyNQy(Q$s>q{2)?+Csle-m=@FLp2E^*J5>pW^;s1^!EK?wA{0=D#F(&ir}? z{-0$2^YGt;{0U}XfPAk-w{YAW9U*t>r$gsYsGloiQvL|+)7#7Qqay4bJIDTE$m#r{ z3i+02OZ%IITp6FYW&ghL8!5jL_B1{=>~Dtu8z3kAYLMR!`2~V1{@<1UH(Ps4Cq3hQ z*pvS{?0*US8sy}E4DyR0KT%M{|FnhW`trQ=e*)~ue*^X>!Txy2$$t~_Qz1VNa>B0z z`Id)g$MfG;$d&lw1lt+^FPtdl`@o*!cVWLj{O=7p#qU9W5ab2Odw-V4Cw<62AWk8j z1omQbBPQ!_3COn)awWfyA-~V$9CKrH*i(K9*k=Xbk#7b$<(GtfTgW$soX)>Z$d^n? z|EmkR5`QTf|B}z_;J7zdgFVHs2%dxAn(&{3oZ@HTe;vrb3^^UYRmuK~(*Ku8j_X$z z>@VM3%9j#yCBFplxm3zO4tvTk3;Rz9z6fP32|4ALgZ$Hwe++WkKNcWAXlHRjR%~y) z#o{k3S`4jf2lyg74V>2XcyEhJOR`pAd4Tf6JqPJBtgEV*4xXsed-? zyYT-w^IsD-PWxM3$S)9dVbM-sBj=ZKhm`Mg;!MF6>l5tFo|Jds z-?4M#KWFwy*x&s_X@4&4tub7`5;jhJ$Ih|0nSJ*~#D78Bp9y=4-$Q)I&apq8+1Dul z|IBj4#%Zw6y(IH*3Z4_+u@l5NmDx98|ADuq{f}Tz`L|&2*g5v6Kwf!E`X3;_y+5_D zBQ}1>ve5I39BAGoKib+Yvk`{w5n7?ud=!ATKQ^$^MP)Df4se9REi$ z|2gtMQ`#Q^c_AtD%ai|EQhu0_5BqPzzhme4FTtMhDU$z#r2V0g=a!fLyTZo7@8W}{ z{1C`H%Sw3(_KuxUGY%Hi!O#A;>|X--Id+cxAlOrUJBjg`E&U$|c_k))AF06qrN>J7 zcj2GLr}VV^K8s`L_}`!TuTuX`llJ>TZm%How;{jebSd9Q$cORk0zb#j@xM3o-xIv? z`no{c7a&isDE-$c{|lvjFUSeMI^>R><9~NShw|X)$E4G&MFF{WID?;wrIsU&O=y3nK=$~Wf$UhHz z>R*ETH&gom9OR`h$@nGsziO70oA6KTgHe$EbL<@dt1|y(>fdZ>zY63X;8%hC(qpB3 zWyooLs6y`8IsR8-{*#pdY0`d0$O~VV`P;C+_;e{>f%&gN?$|m0muLRRAm8LxX`h5V zmy-TX#J~JDDPNBHZ@}KMbNnyM{HG}YSEc=@h1?lG^DA=xWPtCbuSxl*n0=G-Tj5B@ zz41xN?bT#{EyyolQOcKroa!fy_>P@p{|P~d>!*B_9AC%IkuMEp;pu_8T8SATK z=g1d>J@qdJ`%P|@{uhP32Ylm@UwNC9Pltb6zis$;>>U5onEwR%e^uHq1bO0fvVRug z_nMR&kkkGt346!R@&Dg9)&7kkzGLUe-xhM=(xCpC6n~mnD8=>`HihTOKV7cbLiitTTA&r;XnPlJU%z}mi`?($NxW=|19~RE$#mfIpv>& z{HkN6{BQ72$B#+)ckCShFERgl@_&J}e-UyT{{s2HP|BYd^5Oa(V0;`q$NzKOKl;DP z3SyxV+cQG$;7k3_BEO4Ql=7#UeUb8;A?01z)Bd*z`-`@g@+VRY zw@H55$>Z`4lXoCr{DB{i%O7F#GUflkspIm8nY>T-2a6jV#r6=B4@kaZbzJ@+lN;i~ zsWU$oe?ZC~VDcErH#}|J{?ANaq5Ni@J}$qX$*UxPP24ytwlZTU2(&x*zRQVKJ1@a_~vo>9ZX(@{e@p^kIQdoa+~Bk-9IkB zjmZr$8J+RF@bRa{<+n0Jy*S*b{2}!EM3pxSz0XYjJfv!rCur z`jv`WZ}m@1ZU1vCtK-V?>it2D->9qkas7$5drQl8qOh16H-`74TN|qD$VB5!wteqA zQ#&sj+s>c;ul!5ak@@|pt&hZOs(gN19yg`%3@jchtB#NA+8S3d>aufDbFw>M24m%(Og zySI(hA1o#LomV8jl|Q)mhsUFK=WMAT`*|?C-amrrk$*pG@2b{C%V)o0ALt!FcZau} z@@aih>gA3OrcZW3X~|am71VC3^y<&ae9Z64{&s%to?m4tcRuCST1wVkW0w28qwl4W ze&Z9~{zz|rr-d^mZuXMuJe^Mb9&tZm+oeCc*GE`Cb6dZ1Qn{H=zDsAuXhx%DLQuUWR)LXyvraG_F z-&F0%ua5RkQ0+;t-V5i4>~yq~cJD{$pOYI$7k^ZKWuwWh&%(#U`Rn}99iP@)?&B7= zpM~!S^V7T1JrBQl=Dpr_=I-wD#>MV@zj$HgiL2E0Dt3~Ln`ZNHaEyEXQoNXEeIWTn zY3wE$zl7@wi3`+mYoJ~Fk;{z@mR<7vOF;?DIas~y|Ld)y`~ zPVPpDuk~iIc)g3%@hJU3#ixbuV^3Oszf+)dzq3^VFf4R54@#6ZtZGBnJhtef7kH&NAILC0k%z94F^VTM+Jm+&gjmHbyPWNOy zyP&Q!v5(320MyTKo#}O62!^|#Uq5+oWp%wVKdiR7y)|8qX9vIA^w3T(Ecq4C4yd_^ zB65o?1`lapH`?lW^Zd+J-SOjky0*2QPu>3BTdwn~;}>=xE#Ers zgVXut{KnVRIGueb){o8w-uCtHs`6GXT-_B0-s8;sNA3CzYMjoNYMb=@XdxMHoopN- z^R?dzXXlrP^`y+d^b@rog|ylxKepz+Dw1?H?LF2k;`@M)-A#861zyfhBYzV z?6-o&8(0#z%8X$8otDhY+|E0{3ht}W;lcTp9liZoe{>&T?#HTo>&0U3aZJtq3U!Ts zY!%hdAmKhgJDaL{l&^ifcb=_1R6BD_w(Hla{J|b_9kaeE`R3=;JPOBnk86qPQ+{)c zw(fM#uhMkq>+)(Xq~fB}n<&2!@Oc9sC%uO{E?iFSLJ{ML`>cAKO1r_;?s(Yjd@#+< z2Mg?aV&Ws}evje?rRJJ4pTt(~_1jue@*5j_$1%5X?~g8z!OChpo2>`AO(breb0qEE z?CyWCq&g0x70vuB9IMt9>DPBv;}L(NGo zQG4)^YS(*Q#mV}d_xQv@-tS9sbu@kV#Bi+qK<$q%4)JqO$#}h*+HaE2ZJOTC9q$4= zzOx?=*UzB+NbKqD*E-XEdumqxr%&<%aHRIAw0Exic#i6CqIT&|yN~xo{p##XovEp#(hJgW;)-DY zt(R22+-mOghx$?ajVdqX-Rm`t-zCY8(+<{4b9L3e@n6+H*;S5p=aZahEa3G?(jROt zIFMXN(}xAiM`vGP*L6s*#pZttzn3=H^OU5|X>1=^$L6-OU*@;M^^5zX_MkO6 z^R=;~_dIL8BJ+){r`84KQMyCoo_k!)r~b`}jR*OkC^f(4p0{(V;=$>PU;I@-9J8Sgp^nqOf*8Q;3l8+Uv6aCyec-s4004JP@z zHTfl4I7#Nw*jnbFVCRpd$7yGR$IIl;{F98^n(d7*=}$GSJfW^DCcAG?7vD16$G^T| zuzn>fQm?+hyB}TL`t)FRq_g+qC!P(KPaXFWC-(BzAN(@9*wE zx4q=251$-dJLkLOs>?t9F%_5CscN2ev^#y-uMX3%RHgplUHAM4Y1KdFQRuqslRPLj zUv|e^XJ7cc)X(91Ln9UrFP&e`w|*V0e+Aq}Q(8yOWAJ3Se)0H~hepc+~*(HFW@+n^QoO?@8cl;L}@SJbxV8QVEs*OqT(34(z^}{0k0dH&wIzW z@jij{wrac%+J(=m_Ob8FcFE^=a2>v#yzFP^OKN|)en+$4;d;E?__Ep$E~j?l6}4YE z{C*JILfYHUdHc!zR-Fgr*N-MTYFyH{ODZ0nnsea)-pVevyiYE}qHm3$tegTQ_XH_o?(>_i@ZU>Yg9v(fho_sfGI|EIj8$ za-s=#AAeQUfhHRDmaYHIvazZ>6><5yZr;@Dau*m#mXrwO(WC6@3WAF{7+ zBjd(Cq^Pz{*MaY=c9|4-YeMpM)tX@RJ;;D8WH!lYL`33 zy?+!p{kw4WYW3AT$xm*Y8khKCskOJe|FC|ze&<}(Zyop5kY4Lks=Sd@acP_&aZKFf zj%WINsy+G5Z56H#$WBMokEnU+^m;pckB80PW2W?c<*DvR{0Iq z=KgYLsrp<_?b4p=xFm30KZp1Jk{+j(@2GZMzM!=2AGy~n&)@pE+TYgYqm3{3YyLvU zw@+04b3JO8t_~MBaZNaViW8KU{vz|XKB30xu{QVDIoccd(v{wF?vJn`_kn5bVr`_kRP z>fPLOwBwjg(S5w@+iLhJcN|(bc<0%OtK(W|xcm3RV}6n6@LpfaC)V)pKk0>~oz>m( z4(rEU%saoqs@`%Quk%57{n9nw`L=xW;BgB0ea8H`dpy$b93bUsO+Awy(Sgrn*FA>k&wB%P{!*OYE5YV*kKKPy_C!nU{yO4^ zr6qRXqRu{jliHu&WuuLc&VNvT=>qS%PMoji$^AAC@RoD^#7n`(%glQFP3-KQH;+4N zJBH&vvTyxbj#J~#sf{1=Ssy4Lq7D46Ozj1o#_&8;-RFIS)K9AsZ2qKue&@{X;ytdt zAA8p&fVop z=KUv$PpbNj9aLOPQ*_?eS;~DJ_;~Sl?9O0#bGuR7b)Vy_2JSOV7gQW6p6zr066xt^ zPV*cx*EfHs#_zoDjc?(4RiFDSXrA*NO!9SC9@np3pWu62D(rp7e(|`x@vxj9<`>+L z?-D-uV{m`GUD-nQ+hN}|sC-_PlYI=&zqNdhOGuw+gUx^9PZb>u)cM=nL*iLlL*f#=Ru<~3mN!KvKuJQho4>JuwZd}?0Tl3->H(D zKT-3ovvs6|`=tEh*X!zdaQz&PdvXDv6E1A;?XS*$&&cJx^(miRLajFw?^{cUd>?ql z=eUdF5sk6;y%9f$^Fb>SEPt{yua*5UzbMDgd{a_uZRy9xedDA*RkUEb&r@Bz#8GO! zwb=Vz3b?M-VDInN`I{{M;3PG#$?}`NSgp4ldr!$^#UVe|FWu|N4EQ`1`I&55`I>uP zJWg(AFul@K;l?ZRbTIwgcCwyJcpsFtM7a9q{R!I6ZK>8tP&=+SD60KT-01B$@jX?a z{MEk|uHW{%-f_q;r={hBjW@TWwzcbMamn5+s`j}r1?zWW9X0Q?=J=1|R91DzndC%E z?01LKrqa$nTa8EhJ)iSe(#zc)EI#RnrGpEke+%yuNU-zOp#B^m4 z{KDeWI$k|L3TsdL=5N(;9N<2Q4!iHIS621N-dfFlogul7=5YVLPR{xEbocmNZ?f8* zx4i44^ZU{IJ!*alpYt2?YvDakbK30ptMm!MaI7EhtylS~yS$NgUw?C-Q}s(PhO6J! zM(+BJU#otp-*tB0M*NA=82rYzSK}sL^sbkQ#wGjGqY{VChum={J?n?EJ`;<|JPV)= z(AZ*OJqd&A zXyb3;If|fp>GbNF@5{tA??Fp1F2}P1+5t5`Ao(TG7HDI2?|ReaMf?`Ku1)-g&vQD~ zBwhDPpYFbX)L&EA@qy;LbPUgt_x`2oQ$PG@#b>_eo|v5ZWxlP}p?!dRzy0!!eM0uL z>TNT0Dbb?`r735hx{e}G8*n=AC{V*oxAa3?7W2MTW8;G%dIoH_*T}P*!<@C z#@PF^(iK^kIlPakaG9(d^9;2<6S%LSao6PbZ!qHgDy<~zpu?`q@&1n5&Slj38e{KC z4ePhDsT{|`e^tLaKRNckNb_eBck46m_22NhK2&1oC9Q9dR#&Fxc}Cuk#$K|YHv8UQ z1>e0Qeft4fXK6$BtM>)9e|7x6MEdCmrM`{xn-Z>{lYFAIeviz%bEtQnckn(@941NOTk>DO_- z+WL?CysGRf``ICSn{1cxUWWmD4!5U^=NsL=EB??35t+Iid?7p_0qZS!E6 zclxjDcve`O$L&CF-4YC^&O54J9q)M<;Cn#af7rH(`#Tf2sQnnQ<4-@o^$C6lId_TL zPabc8`vPM4egc<|+Rka-n>MPy1>G*;v;MU{Dd%0`EVW*A{ce0p>RS(~(g3x}vUl&%|XT`l0fcd;Euvmbn0&4cpO(HQ$3xU+1q^|Z4`xHzrX z)c!OMmvKrvt9+iP74UmF+|IAv>jvv*L34lI;J>Knnl}!ufOQbV`C#Yk-v0dh6;z&B zS?zyG^W31liiPFr}^Ft$%9hsNOhdKUFFqa_*xsO{pEhNT?H;TSCfa|S9iMT3=|6kdYv=UQ^6VU@&PyKGuWkDrNBY^5JcjFY z)b9D5pT+JEmv_45jUUA|_YLV+^IjIy=Y1M=Ja1R=`QA09B5&!gqDE^+;Y z&v)-gzn60#=gtk`_DhB3B|fp+RJ+2Z-nb3+aX%gy_Lp|H@WsKPV3q@B5~93HLp8H2S1BztQw=YW-V2@4Mjn z7w%K*tMO5_UaXr{|E1N``CXaf`#}@GRO9pf{n{m;>kNMOI=S^v6{k|j-`Q;3w{L%2 z^~2+(pLVZbt{1jl(R}a1n&A5%c^;)FCpLcEU(j}EZMCk0+L4~Uftt58e~mHFZjH%~K|ZbBX=_UrMO`rZ}Tg+vhqs z_Z!3e>N%gcE6=;v9oL)cc5F`-|HhiZ@-i9jqvn~Ys`GJFKisZ|@3=L3-u-E@=V)>- zO8pLd9w3I_pX%qi&xiCe5=U!m6;Ga*U%UQC8Q;Wx@uY9flKlF@GJfwcZ`>-od-t3C z5^arz(%Ua}klc@^aUY{jukp5by>&k69oO7twBrwZ#OE+{ z{UCm0g6CP}hiL3)?sb_P@w>r^f4Tdkcsg3T%X^%3b~=8dJ6aw(e^bRT;5!lKeUsb& zQSpfq|Z(?bgZ~b5H^QVF5;><5ey%y*kd(HQwI@piYzu@kd>`ivPZQ!F%b}h~I z4^-ud@FjCucr)QkOFtqYxhYfJBXv2pz%eY<-W`H8*bJ`Uz!a@PaO zzy2Fp57s7XUBpH_UnakPw9ek=;-^2=^49aR|0UpDXU~rYjh~q1K2G*U!N$LHru+Ew z_=U}6zG?P5O>1%Q^9u8$(tqb5b-cNMUAwWrd;fI$qw;Odd1EW?j$<0%3+3?=?7jjn zpX_#NBNd+xo|6t5XTW~%(%JRi3|1$V&7|JoR#o5LU&S#I^1B+kyjpvzaV)&2TBjeB zZ{Imuy>kDRF*U!z@6_?)`hM-)72bKZws7|!J6^@#4)|RezkH@zp025RPjx)<-#g12 zXVRN&T3U8;;#%x}2gUyY?W49EFROW09+C16sM(S2(&n=MTWAmP z-njza_mjr`=nb?RId#5J-a2Ytq3T;-lWprU8Q%u&fu`{sc?C3w>#yctkuPWqH1UMw z7eE`Ju_q-z2U-WU@VsH=YAH`YC20k;18P1k`6bX6XyO^kZ-ACAmTg`CbNGFn zI?8>2PI5n*xL($0>#N?!>Ex#YeQM8b+B!n*Z|P|F@o8bdGMFjnjg9+(DBrZt{XQKZ zIr*_~lkrQJs(F!|=->z5^1??X{t5Pbdi~^Z^FFqbs^3{9*toXtaK|x+`(vmdiHvtY zNRMc2{c!qZ*Z7!wJ|x%C1kMK&|8$SrTUf4*SZ{ZB@@ek{d>v!%8=fA}6x5$Nj{xgwO@w1KyhEHoV)sFXr+KKN3 z^GEs(jlQ{qS`T)>JjriR+QPaURDZJca+gXxTX$YIH6#{;5W`OU_@O&%zaP`LR zdD}FD<<0Hpc02Yb?>rkbg4H+WJy=w&&pG@Q#+B`_=g1$PT>Qx|(U|7FlqBc0x08E6 zxE{4zzX_IqY_o8F$v@G$&-Zd-*dLNU(HM^72kbf}$w#FF9LFWv!TMjnMAlpE8SlCa zo6lf1@A#$CVd zes0s4&v(KopT+888q=H)a(~v<-s9W|c|C^vAGKZiiyUto&kd3v^FsGJs0YNG z{OD*pE%6vk(sOf#m)+M%U3|{BR~W56>=E}XJie}-+i+t2()s2565jX2`SlaL>z4G> zId%VNd~&3}l{#9o0Oz|2mHMatoc^Cx-fddbgi?Jg%hPGkR^oV>`dbyK+bWH+yyuBr-kb%iN#bt?{5Xyp$0z3q4lfO@v8qttxN8g+KE5O_ydi8 zY)REG*>T$2OUCQHpk4hU)syLR8Q`a46o!z|V=YD~@1*Lqf^StrzL0-W97xt~H zej3mBlRq7eJ*(R3^oU;w`8|Z(r=|ZoDES$%Ht~ttp9z;2*%7TjuC80epC~P`=eHVf zsrA;_C|JEtG>@S6rDs(fI_&qIpngct-cI#Le4^Gg^|*xiCVNj+;&3^>IiL4ol08vt z5pR6cTY1aLj~`8MIS|K>?TTcKKtQ``q$Z~&0x5eeBNu4{zEWa z8aKJuYvNSYAFf{%aQvXlTgM;l>h52sKezamU4r4m^C^5z;u8D3I!--y-wN3c-jw~f z*mukd+XTauS4nF6v)%{Fiu6)hGX*nEU!p@}RVi^Vi-N zCkJ1@xaok;kC31A*WAaev%WjO@eA3H4(<=>-0Cx~0pBxB`OGi0;Pc+wO2GTPcz+U` zsdx=OrM5{whx5DGG46HKc}A__st2s{`u5!<_4Y^htu=#2_N%nJ zY@6G-<7zD{``7x5+RwzJYMbyNTF}S`?7sZo$JBht-q!3N&0k6V!HD-S6t-3S*+Ty* zu8yXclyP&5d-t2$$8aBH!sotTva3U%+B(|UP}W18-4ERI`R*I}OY9;0lU`2tC$WJ# z4xJs{>#g(^Rge7n(VXUcFRg3C;prErkq?$%=VdjniT6J@4pI4j@km}j#eLq9e4?~~ z^E;iN#>r~l=GWEntKfVveYAU?^|(4OdLLEW19qL>V)72^NSB|EZ~e$UpUR)r{B`!6 zUt#CRjpZdSiJiRtl}=Les|UP3nZS7q&tt0ECCxfb@mfC#R{x}*{vjR`p9eN<0byk8gE;=N8{uN1bD46Oxpg&lw7=RP@|XLGI&Q?*Q47aw7CXYD+7H|BnL+dSPJFRqun+8e*#Y7&>q>MB0w8fu&SO$2;DUT;ISZn+<7_X;wed5($~ z$vI8jEcIFe^&8OVeyH8Se#O4o8!yriO09RiapZpNUj*wv+4X$%TkFX>vCs1MYkxzP zn}-LhFUo_{(q1Z#y^W;*^zyPEtaIG`5AZ!HdrzsCSVq#^&!v3>Z60sXlk(oDq<-Zn zcmJ`kN`8r*zjJ@o?tC%a_>mpa68rAk0MAE|d{mkXc;6KHZ}~hQ(fYVL{$!`4tyvOh zot*fMW-$CZE2-nv+1uSNv6RfS{=BTO&Y#peqqv-=S5*Bqj#JycZ>nvwkKwtddcf;d zjaS@pEckrKcCenbEBQQkOL=i>?W5w*J6rara*oqd8fCHCA*`W>m))9CxfnW)@6Umf4Xf$IDlyr{}`@fz&A za5}x9{MaGhaTA}Gd8W@*^CkZ+&2_HU?cRRLzH)CcJ<=y?KQ8lW;6BJi+`SG+e{NCh zGTEOBJD;1Z_@xi4`+>$c)pbZ0r}8VA*Whh;oYFrCHx4-&i7C-1N?J++&Bj_nYF^uL#$FvLjkq$lE{Z zO_b(BKKE7WOS~#~yVrXI*HLwOS-Y$KitR1^&1R zxA9%oI*#YV=4;`6kn9R$?sa6|>7F;)5v_dEyB{&!_meo!+n?ogUsrlh)joZwd){ew zKM3VHuc`GrcbqC83Aa8>RzK=F8Q0oD($3a$-LcW8IE6*j{ZLx-I|b=aHnlR|_zXTO z>tOH?sb_0`-=e(I%X<4GJwICVxsQ+ATRwSl{mE*_FwQ!E>GRZiR5@IoXF5ASe#cO8 z?yRfU(V#Xtaco@w@XKeS@*aCWA$GR=e4c0=vaejGj!WZO6;INe-)W3JXEi=|zLtm9}ypXX`}OzV%smJ)Xy8wFfv~(fMoas_sX1dSUsc zlfCB$`78ZN;$z|b+y1wT7wK`D(0q4?^ctGy%?BesXCAv&ty79awDq={cil&y>`eCi z3-LMag?vwc>m%Oza{u+Syz4TjsUvf?dz{9;-u`%eYIp8;_eXLaEj$*i-gNd03cque z#3#0uoVOkJof7Itq9^gU4v@H5Go*g$=W3mjevEx*iuggP8TTIV9^wb}=cm`f`fRdw zx5e7rPhrICb~&66a(~pWPWCAsBupSbNKCqI)#6K_oJe5q^h>z!!6X^eAF zKaC6B>zmsrt_-FZJ2)Ip_0xl`UnL`$9_3vc@wkWV!_xHH?)lm5InA(sr%K zRUX`L;aOQ{4bax6Sihh1uD_g*oX44H+y05nr?-rIUgmA?^`MJec{rRt_hY{0y+7gl z6KyxxdXV;cj*a4(0e`Pd@1x?{`<_~_ombU1`Pb0|zF)%Sor)TV%X8bh$LXzyaR_JKVVBUUjbnYZb{K;5@~err(tMmgc^!!j0~J zte3rU_V%XX{CDs@y1M2$4e~oG&7J3+PXou3IlM2e@L(_;N6m-q zVn2}M-Rn$j+{qtNOLPAL$vI6w;EvCLy^oCB@pcaD6X)yNRz>!^wPm>LIEjZ3i-nl<{ z_fMCvxxbnh>E+n_R62iG@gY4<2RFFqG1$u+&%)u}avmpayO$Wvzx|}_PfYXv$kvMz zmman{r_S8`|0QYtgaUW*5>w|2UUG8pQ?6Aa~|C}EnJ;Ye)XH& z?b4@AP5o0`qA{QIx7goQoUMP&oxCVNqJ@8|c@Uqd$-bwO>wD{y9j61$_flH;{jYP6 zoX<9Uz9Sv-dIOK!d)K`VY@hGFHrV%5W81j=(GQskTP15;g<0Xk(F6}*j6YZDIe&BO|g3gZf z2h&yDTEB3whrunX9`{4-)(hTx9b6ac;rx;8bhPsm>95lDUN3uFO1<>U-t(ihgtuIm z2k~v3&!#o^<(up~#$-n{XUTr#FrNpwK1lMQw7!~qKWw~jU+1Uum^Y3kc0Xk4aj9Pl z_`Cv-+xf72yo%&7SUadrH?gJr_?Ybb2!8(3 z+q?T|t?rF`1=sEDQ{3lU>2%3&{n^`(Uw#vnw=R|aYxsPR(el}EPc)BF?Qtt%uclm`lp>>}a0%?EN-aKgfSrTBxeHar?&hGT+92laoh|eLuYQ zkc^+u9IqB0mU8PK?sZT3+5xYpl0K)6&Ak0vd6`G+@7_3cj`POzJ#l|1^&2aB$LDss zb}r<5BXxds{7Or$U(!oI7cBq!Zo%}(uRT-hr{9p&-dn{#js19KrdPsY zdrD`*<;DF~o|buaKuK;sBl$fO@)guLCCEvi)6$Akzp!zz^?guxA0O_Q+Oapo)hpRe zlqOzRaUg%C_1*a-_oIn`$A3CM1I=>_<{=WNG`r8YcaOxo#m--K{^xgokDhyC_gRO{ zJMk4+uQB$Xtpf3JUBu3+^O@pw{zsnwZRMtBewpmO^n@GHM#%56o0j`Hl-To`}!!#54s2fno?HV#&lanIuZt?D2R;PCPTt*pn!1vd5N3PCT|^*%O5> z7)tx8WiymTWhrh;sR{+mR>ao2v=jjaOg~yw+ERa|Eoxb6T3XaK|FgZi_q;l<&MVJN z!vA^d=h2+Gzx%uIcHVRDz2}~LE>*_=!Yv2$>wn!_T;iVhq|!tlVZGFL^L;$K@$nh7 zemLGwZO4CC``_?{Ene9gjeP1GZftFXf)jpq;e%-E*))VagP0#&B z{tBB9erK5XgTVh`E8{QcosZJzIWISX#*Mjgs1oaOaF3^W)&I8hu64xD4>&Hvj1Tak zY{u+71)N)^PVnl5E05weA{t+&h0!x z>~@!&;MpIw9avt{^S(jFe5V{A$K5WW`3}`NI}Vhb{8R3mJfie-@!IL$>`adBEgw@) z)_Q8@J*Sp=@1javH>S+`&MmV)^+sE739X+{zD(CkF>MSPwCD7UT??6w|e7KdI7I9`^EUh-SZ6O;j&`h_r*ADSIjtWdEU;?UX9UwO}b6G~6*b9P)3=DPsEPkhJT4>(mOJ>!9;ue;-w zCf-xQdNSL+*@KVgZdZtT{iz$>?Irnc+pflfyPhchrNQ3#SWXp<&%^!}aUB8sdoA<- z>GmJXX}wJM-&M0d0qieT?S4JKY;UK``tF$lJDza-UdvR%w!2}rYaiBl8m+q+zf$LE zYtWsqiJx=hDPq2L*?flp+u!)CEvJm^#C+~{;;*z{73TZidBex@OPAaB;r)0!Zr+b5 zKhB-c@7uwrkXY=peIP9m&%5ghCDIUff zFR{sk?zHnK zZ?2yqPKhUX*OU5PJ05V{Ud!sS?)oUXW%L~giWfJ}5mLmuW{uL`{AsLquQ#wK`J-jGp)&#|tvA(ebF7vc9O})H2(Y z{`9&#j^%gg&1ZayWySG+mlZU;5=y_tM$Z~2u$>-kdl~X$A;+@^~rYFy@eK*Z>pVTFG`%K(o>&=|& zt|vLyy`Fq==I)Pwe{Xuq=sQMOU+cYllM8aHXuKmm=I)Q0J$~;Rgrf zO2qp=r7PX`rQgt7y@MWKnL^)N!~FC`-Sw9K zL&vLG)n$S?jtY9}#QH?ApDL?Q(RNiIYsaf{rEPEeQeA&_V`tiYpPrO!*0rdiaSw`L zH}{cvfBD^7ZwieI0x$nTUOtt|+Ml?w3yv=tz4gc2{=y_H_1bD*xP_NueIgo(Yj8+^OYIqJTIRd*q{7o+uka%?rix7cK)_rX>Wr( zDB~xz+(xrI5BN}4(fDe@tiPHm*zs%jxULh(-)mXVw~F5Pt?b(I z#&S}h(#OTkx*?fsbY5njtjol??#EZmdx2Okcf0gaJI-lyJrN)2u9qtxc&&)#ReM~Y zGi~k%!5&}PB>45~?EW>sWXI1Z*SA0Que`iVnt8kRR`>SSe9QUOW9G#suRq#d5B974 z@!t6Ocd{l zJjmH=*);dPCC~jJmY*Q*2UA(Qe&WBztDnjZ?)HTB<~`pjEHAtDrJt|kTt(OaSpHtO zD^GFjZJ2pZjienHtSA1VX!D@*9=APMuWvi$Sy!-fp4WlR4|b1By@M*-!-rAciUInbk|R&$Mu@xW*t?qGyP_sed(X>9v6^z zZoF1UEq)pE9#Q=BT2J+-dOM!7J8C?$ z&^->Iuk4wpRC|Iuzu|bQtkvB4K=CVkd>+xbm!8W~c2aotZ|!(j%(}N3;=Ob%r~FAB z=O$V|sI=yeW92ipK9E->)`x-p=Ub-sxDKFCZ{`)QJh%U_zt^()(fhZ(#?kwo zz1r{NXUsb273Tb~D)au-rrXUpM>P+wZdFrhj*Dc9+mNfATxs<+N69y)6J z*Q;C~zxhC0U+WX@{?jK1?@y$<$0eWT7v#4-!i#I`9o^-Cy!*S%{~XWGlv$4>{gLkZfc?oc=L6#7@OJucUcZWu zD=p~b%FO;1AMe}FnD-0v-{r;8Cok&#E%UtBCpYn?-s%QMBaI__DF4S9o~C7etvNR{oJzp zW?Ns?tQVZ{T-PShco)`J-?HVx{)RcPz&0+^Pqgbfe@FN8ZxivcJiHx8&vldE<<)b7 zSP!=1`QA+YHXVl&`mRUgTiyM_c1OM48rE^nf7p(9RC-#6-1%R7om*f2Hg`Q_%sfx7 zUG=Noc?ZWg(EF}&&$wpe`C4ASVcQ-5b9=ij-+Z?%{WW`keYLw?aJ;W<&PF4L(v$cp zT@RIQ+kT3_SG<(h`O#v2e<@GArcF&p+ z*LeD||4rt6hWa<`{K@3)Z7dgWH{PY=nl$w@jmT;_-3mf8p7m`HSA#E7k+sjo)_HZ+XAlj+W>8 zGJm<9KTR~Q)I93e2lmuF&nJM_YuOm+o_Ab%$t&!*N=?T?@8o(ECcTfUpuPRbA8TfKmtd9!{eZ2QV)S^M8G??>e4bp6&$ z3CG9J*!7?T6!_j1%p(e!92#=MUKJCxyn3lP~N|9@tlVzwz6wOVN6;?O*fy z?)6uCz8#;u8Q%c;y_V%y*!to4>OI=O^4s0}fd^%y&$hevdV9N0yyuX3fXxGWwaLB3 zH+ivLZy+!KGdw?lPnC&zw|t7DBH!nqQSN&p9YLCE~o2M)!mDgnfR< zKSpmi&AMGFbU#=z>mAhohUhP^+gn^S<~s!ybbnsk=hlP$uJkw$v+*%)XZZwAKGp}@ znakY%)_z~(Ep+~X<8Yb(vfZEH{jgmw*t`^a&k%U$Teha`yzt436Z4WY&$au*GO^xs zgBWj1J+piLw9I@1urGnulLI_?Q+GMQ^Ob4lJXoI`*q=b}j{=@D=c6*ZPKEuxvN_P* z-SSNPx`Bxmo)RtV1M15$6*`F$|t(V0eHBq ze?cEtyScaHTMxJWXgtg9FV^SVPWE^|=#xk7&lBI9N&k^M4v8(df8}r3{S@e{nsp{% z+gH|lybr4Far_3`QNGdbFXq8^eY`tAQML1;6w!CY>cqNFwQJn=aWR^_zT;-maPViu2#I>!o@zFP_!6>ErV6 zw2udW3Pzr7_Yy4=MeL+x2nPbGm(`p6k|Mde+|LQ+ff9oA=>h8<**b z=3}IOjaMI7e^lFzBX<82_uLQ0U+K2D_8B+MwKM(qI^Qa$gyWiKJN}RE{v-8G8&Cd; z&WHL9HV*Qjj33jy*7x1K#{19DAJBu#N{{c`lrFUGtD1SbHRAaM)(6|Qr)W8q*1gkS zKu_z!?($0+cU)WNIghW5@&N4dl__&RFTcr-Gj&|m%rl4m8Rq)TrK5H`gX7ara^vwm zj<2PDL(6NJvSO}BO7FDw)X;aP62EEh2m7F`UEr?Q8Ziz7$L+ODe%!8)GI3tZ%-FoW z>chv?%=>$p|8VDP;*0KhB+U1Ju{^w;x~F@*G5>tGn{T{#;>5M9ym;UG%e9N*m0zvv zJ@X58J-1BzZ+zH}XP)SflP7In=6LrwRLnX>U{{NI-vj*Af7<#0@3qVicek@wc|WZD zqL5ym6!VL`Pqy0Woov(^uKFA@-NV3 z-OP`M<1%L5(=xgrteEdAw1{<4n`S@ANtu46dRptr{EIt&`B80OX;J52+_Nqv$j4>o zBHK^ApSztWp8HV8x6Jr!`QPpKL-DzI=1SY2H1YkIOxE3QnucFT^Asul^{m_eGBHmZ zkp(?UcUyko!1_e_!FLkGtzL|9Lwfz@Ef^YrOU)cl!d~ zy;W9;@5GcIbbj`svZ5tw}o$sTrHsK-<{w*5mEt@&5DOZkq9p@)frK4YZB* z)Sqng@&5aJJMr>p?8^|}r>qm-^8vqWSJ?dw;8B%v^d4-la%;r<7$B#1OvkVB19$rd zUh0c>e%3$MJ?@o%u=5|}G|>Duz%$RbWq!@p zQ~j=;e{u611o%{$xWhh<;!$|zW!jFa=lMkKySBXvbH7N*{b9iyud?k<|Ag*mny<8R zus8lS9na*e-TQ&(D^vf}TYu)0*X#cHZ@cwZp5^u{W#;wN-e%`h^WWV0jqQp5ms?-n z+%F_hzQggEf3@Yu&ANE7AIb*NpTK@xHnwcJu)m6)-!%`}y!yY|e$@WW-Uc~!Gw;4- zp5K>=`i`UdU2r^<_4m8$qmG`ZC4O7iOE!CYb$(%GeldGCcXp<5H^{N@vrFf4W`~6r zb1R+v<@v?gT&WW;t`rsn1%aI6%JR%~F*kFzAdf+~L%!tamtFFgjf_q?F2AIlVqwt; zvh>cbDqA|_ECxF){z4AK*!C|5j#+$xgJTHSK@f@&-gdyo1H~3zIK6y_%db%2EPfCM zTdxR_5fj4a3ZjNr=FASWm0ew2Sem&bH`~cCtgg%iy92#*#hK|v5EGVv*Yf-dq+1BL z)P`{(KR*qIN^N2*P}mU%!6*j11AB^#VGSWX42Sd<3H#4kjsm>BY{xnlH{Qt}HJ&__On8<~#FzzIbMN zx{!D9m0vD=b#cZer&yStfkX-WyILsZARoebDP&N9uPjYF{asmFSh~w0XJv_!e^)5b zf&BTRz}tbg@K8W4JQPq1ciJ!HhYYp&p@7Vgw5T7m+5ip8*?5N-(y@Ku7pO7N!_L=OkeCDad07YYk^XQ!9X z6lLlL@=uF;FYLdrBcBz1%>g%l-9b0L|3FIb2;^t8GYdJ<)6GoJ6JL_2>7!zXL2hmxsvV)LUr!&1FUSmvhBph;O+S!ljVu(<<3SB?o@Z%`ZC7 zn;M4`E#`N|S@UO2hGPD#$RT0C>RG%z0m-GO(+r?6C*Sz28*7YZT1!L^1?TnlpGYDWlP&due-#U=JjR7xli z0YB9Fh(iLrI4w?sIeoUU@Z3re<}iO{dG72I++c*{2z+J!tm&}=e05P+B(8x^FUVbC z{4Q~4mX*DPg`bD4zdFmca{KKa?Bm4gD>tlS332|J3=E~$T>1LdELQG z_Soq0?EZo5NM<~nRel+KWPDeD*W)s@HGdr$A*qiW)F`Zweaf>x^dC?@s4a( z$kBMFtyIW|zd`sgoo6Sy)K5yj25n=9$p~=)hp!e9ZO!n5%$#iyNVg%6O;Em}A z!bZRRPd0l>(8fwVPmUfN$sQV=oM_82YGNCohAXAmfW)%dGYj*l<&9%; zdM=l3-{>aIdhM_-P5cddyd#^PURhb5KfSt=%dQr4v*2+yd)M^xq7b7%af)4CSdsg( z*}0|V6?r){CohKQp@C(yx#i`h0%XiQrk z#i64`z9))OZWXD4qPA2G0q+o7?WhL4M;k(~_hQ1w21;`reSj0?U@ zQ5%kZ=BEql_l=(^#N_W~FVVktJ|8}D>d;t_xNTfol?`^baiasg7IuyvJvuTmnH?G% zJ$n4uh-j9&{R)ppPG-kOCntsYk>iI)hh!tpW;HI33P9mB;NyoybbzdI)!?!!K>ARn zx^2(+iP7VeLXj~@#7Ar&8_KAl0V?HB2#rINCytE{hj(SOf}R~48Jd_(5%~V=LOViy zSv8`@v<|JeQ&1QW3ku_+J8KKl@{eG1g#FS^iHD^~zW@(Q3FDTTf-mEv1R;OhxTPS( zw-khMOMz&oGI7*Dw~ihb-J-6TY<7I|o-)7p<_bz zBK!JGz;D;D@GIC6;tMJWXPS`2ikQpylg&57^;)w9F6H zyJda|4@(crvCI$gE%OE5&Ic6FHf|{h@ht_)FH!ZO(5Nm>o%gdNw+xMCkBv;GPaJON zi8$}$leOswB%TRhB((AL(1bWw96xdLSWxd$j>Jcg9~nJ9I(eJkqxDMs=2N31lj4l3 zQ%hVAh|>mvUTos`F!q zq2~P95g>zi7-Vo0w4i|*yu+XnZUxlfqax1jGn{OyD$XipMQ>wWr-^!zxQHlR>j`>@ zZ(ojq9C0NudQ2n>hyom49=7G+$N?W4s&JLb4m%}|YChmQ>@+PRbQ!Dd5xCP%f#V7Q z`O^MypaFNGkBwazyWoNgV&l2Tsq5$$iVJA@cXpv9uAo=4;tqO# zMO@dL+fapz$Cm;ZHwM|l5)7b7{)`%D5qG(>*_qYl;*xxp5W?FS$e&%FzAGz7CRdl` zEw1_ly#ihmBY*7&rTb#ns{MmvU{zl4L%A>ZOecP!LSwOU!-tZ>pBDR(*n`9|@@GPz zBs@*T=Mmz6@@M0h#V!|^{9#<)ILKcZ59&qaPpG4`aGd|Leo=#O^IiEP`L6r{+?78a z?L{aw{ba~Y(eD}DHouK`_9vP@aq5t48S=6~bty`YvwstOiM!-G`zy_N%7=a?rwI*e&D9e#HhsNpXSS$Zg_w@s<%iz>$R^ z9#Qe5!}7XRkMxK<85=z`tgITHI5B)6qr|lT*?8$?@P9M@pvQB>Gl4}hNVqJ9K<|_U zZDMxf#Ho|R;fymhQkdxV~>r@sSzflJ*)1}WsZu@K#dWclJ|hJzHXZs z9vT~K@7D*wxKn<*7>p=MJI#2M#LbKuZBGanXMo&du|1Te_HTR`YRVqh5~HH>RHR}f zi69?FyTq8R8hnNMW-x!OWag3eii3O@^@8zaYCKBzCt|2;L{|A^`nVbGl6D5;Z2AcR zw4(qoi1T1O|3iHBpG zA@sZ>h>x&T3^j|Vt-{u@zj7EJ%!lj2i2#QE&>%<_^N z;}!7~t~qgKr_TI&F*Gb|B0D`ZBOjZ=ygQf=S8LCU3$bL*nJYV8U)fpx&?h^$oYOnR zIN`V$-IfELs+WNihVE}=zjpGt$t=~;XT{~E7>^YX@t4jP#KVZwvvUip#k`8O{AcI6 zAVK#Vuww@jL|>W#9NSqU_%9*w*AV#I3H*IF9`66ei9q(;YD$ASuiYxoU4ToIgS+q} zr;ZO#NWQW?n_U&N$wUL1F0P2%?-g(;jEkPziHpmr5U%?5&hcvbv_TDH%4(T_)33-A z=>OF?w_-@$0j}hQ@FNp?! z4#;MQ$4(62B(7OPN|pWMv@S5w42RRgU$G^R6M9EQLk)1TrEqE-{=u(aipk#iNZ)h1J>I)#A=cRO&vN%@#fW}Pf-Z)T&Zw&zhmCQoS3}Pe(W#e0P}Cfyr`w+ zIhZiiftv|HA^hxgU`|-hSuro-x`SroPQX7ieYQQTK;|Ln&99!xiIdp^wqHC|nr~0T z3Gs#Wwv}Ny0&mZ9u<&WoehbCrg}cPndsvRdi+3)s6y-zaz@F7b^_*HhsuK^lPm6u> zo)!M;w?ACnH_N>E5dcLwc!$Qbr}W_yw~yVPJ()W*U(_=uWd0A2ojN?CuWj4CX#0La z+(U><9ypx}dt`qho~urz#Wiu89xr8kILx7y55j{uWW`mo zoM_wmoZ8GJHF9R|meuAO{w25{mB2|PvMq7ih+5wrE2cFI|N>b#HqlDNwr ziM#BPxXT_T-(im$6>``w#+ZaTo%Rb{o*+B?61XtOi3@X_xa=c3axeeL-yEsP%kzf*kj{?JvJWLqp~<`kcp3t3xnKvyS*TOyS*U1-CpF&BjQe8-Uh(^ zlxjy|Je&^}9?Ay`59Nb}i!gxw79PqIsXV_do*Ae~Yl=U;vUFBV!&%7{#q>r|{d!Da z-VZ7~R}ypX7SEX5L?IvHSv}&?iOVdP_F%sB%7sg>T)6bgg-fqO_`=e(>aZm!{@Qwr z;^|1v7}<$yBRg?zWGAkT?8LQ^owznKjLV*^-Ft@YY~v~&0{a78+0^zcz?Dr7T-oHn zl}&A2_GB)5+BmW&z-@a1+_opcZF>UTwkO<3t+J1VP`PXCI;%-bG8g_CS0~*!I$&O(8F}0OW|Um1wBp| zIE?=+5aT=x;w|oi9O74hA-)=@qHq}S3h~vzlY_5tiVuphoNPM}+xBZYW(Ver$=BF^ z<*>sZg*)uA0u++JphxVqqz>FT5XR+jj!SR&eQL~i#9?7syyjxM^KdrEo~|5Pvy$c3Li-f%~gAj_hpX$WDRZ zxw>T1+?FqJCB(8*^TD9Ne$}kixmU_UxFbI`zcYUn?#Nq(w;NtazU($~=gg8C4jjh; z_&5#{2Y18vOB~$Ac)LL&z3nG07>5Rfac~&p;4s3azo=cP?oi>fmviy$_7d>z_7dQB zyAZ2IESz@4N8yh6XdLE^1ojx*Nb10iB!q*QkY7qpdqEJ)2ZKVmc;_@+zj#B~kZ`25_wSiD4b1WsJU!ifu;!uaA$d)jFS?(kPUDs!Djyi;x75BK|18fYH`U4S69eRxqg>xT`Y;WU*A`AI$ZNQ zU|vM}jGh+(_ox_$`(D6d9tGgkypdk#nMB2x&ne`YMNImY3mLR03{iFl{8fvu=9I!5 zUNMjNxS2_0;qsQHTnBkEhqY!b|AHy4SIQqgb#mgw$?VX{lPC0~RB;IAUugIke*l4B)G1%i@t;T! zjh>ViVL1;Z%pD;Te|UKFjB_hrjgsSLt+Vt$&)9>(}eshwb~B* zlLY<@0>6sD_YwHj1P+Z3$5W32cg9)VN~u50zlOlYkc5-3-{R_&uO7CFBe4AI2{~rC zrGpRaZ(uokl)6*C9B-C?nExydci_(^@aGWt5P=^e@L>Ws&9TEClWraO5kk&U0#6e- zya0pab0fjOiNMDQ{1|~lhlTZ?Ao$}1elvlq&P43P^7Y$9ow)4FQic=S7Hr z^yH9u*KKHcSS%nScVYgN;bVN7z{M-7>JRfTB=83i_(cY{;xIlmOtqs25^^3y;14G7 zIDubG;1412hZ6Y13=V#c4;>v5%e~x6wWCW2IS(iB1d=~IG(I8TUm2#_`(p?>k417O z#MxcEOxBi!>-TcRKYr?1Ko%L%_V=W`LKV_R^tBF_^LWCZClUA+1pZ_K|8W9;3V~lq z;7J01DuF+Zz@JXw&mi!t2z(!bUrpcx1iqiZ4;VZcXP6f^oUZj_XT>7~F{yiQTJ-~F z9-VkTEvEwLhxYQCp#A(>K30MWJ>ud5@?qol%hmH}B}6P6^&RscD5_t6yxPAnrmt+^ zc{Y^$^zu^e_s;`dU%|jOl>1`(3I?{J+!xbVFt82fzL>s(fo&-F#q<>kY(u#(rmsli z<~ci*`(pZvWWeB1?o&_Fh2sW?a$jsng`jG1C}Dg8^g#*ucu7CUhZ1n$K?yiK?}rj_ z;6VvE@Sp@7cu)ckc0lRFK`xZQhd4qBc>0riJ_D41R}2m%;1EYBcTtMm%<8m8*h7yx@O5fxU^W~kP{9*io z0+TaUMCouWL_>T!p{xIGzF!{sy69p!J7{5Yb@`v#! z3rzkn{^J6ZKa4*`VDg9Yq`>44<4+Tq{9*j*0+T-*zbtl@z~m3(`vfL`7{6Lz@`rKR zqst%0<-Mx>VO-v;${)sM&nRn1Rw_NV9aWUh5x}=7t;kp9G^9Plb;Cchzi;NSvf!o(7AZLx>%kzW$!+JFu;C)m2 zdBoa1`VaUugWqEg037%)K{(h$*$;IIazH+|Cw|&(&!)j+#!!$0d~6T!?=d@oADh+k z?=g-64))`?LA}WHnEV4i$kAwk!#K0Rm8HN3Ttrz}1o*}r*rP219PH^g3IGRtEu>Xc;002wf1$dz7!VM#rpcP6W3Ey+W34it6t_XZ{)Y}mArUPC$FFv)wd$rxO`=I zdLe|vJTb8_Kz3AxHDYECnP-y^XS32(O2);v?T)kuc^FyQopICg>69<=**jM| zGuv1Jq$ldAiOW_VX72cU|1%aPgamzWg;^2$b=ZnR= zPIuU&aFG(&eu0ZPck<7Qin+@nzqqh)m!mxv1g;tYmM?IX&<FAKk?60^7VmKMw_=i-?6z?nmgS@vxdX*bEYPp$7@s*O z*ar&p4!l@AQ0%~q`PDg>UQz2#`Jx#)@!9!vPF!{m>I8}Gm)(F17xJCBknhA*bCH^n ze1R{x;wJH&n}3GD7jt)t13Kj|Dg`cF3Uc6Qq(Ls+%@^Mwaq@F_%1Cs|Sy*x7!hW%% zlP~NiaQpi^>bx)FChY0ti#1k+k)3%fzRlyt=NF}w9rg>p6BpgEQ_j+|hOu9w8+P(V zyK~AHc;0orB=7}!xrF7fE*56)a9l?z+;JTx+vEHJAqdC++)8o&KxaHgTN zj_jBmeAQpcjuq)O{c6W`rs_T&d{Hm6cODQId`OPLUG-I%b=RY;UzeQXtnP2+j4ipq zdixUsvRZ`RqnS*0=+J2PmXVVa?PY1&_k(aBdX2duhx6R4 ze}cfDN#KJ7K1AS$2z;2p4-@zZfgd68qXeEN@KFN4k-%>LT?Y0{Ao zV-Ei4Eu)7=G`)j=tdoE2)Y#`T#3Y~UNBEFoSC)TJMRg?4_ew`xhyu~F)EI%jaeyJKz?~RJNmS}nM z4*PF)$r&2cL37xXaq%ZkjYEWRJa0pMJ%1x`81tX!}_c>cCpPkuo@D3Gh&$uFYnKZ(nA=`|WGOb_eHyYLVnmbY)OZ*TYu z^Jn#^c#-^-`4#nx3sCqekVUHRF5GH|M*E;!9uU-sat*fmZkbJSkc20bT%UTgX zgo||%4<0b?D*1+(U0KS?cRb|qp|(eENHi3pkeoIb_+rUGv0hIg18`}lxc(OJO^6R= z&E^X7J6x)N(^KcIFSqD^Pb_4PUYIxU(Py$9>&(OWiF#jtPU@6@!S$7XO?*MaVO;O% z#O3QOKo9ff3zH69zSrD-%`3!L?+e50P+>gu{%qJz`97?Ek5wuO>^JXkcG#)jD|Eb{ z6})dK-?<9p$N_ipzFvnM@mfsig{y$C-y;KuL%4d63_K2S{eG4aAJVJwPB~)bM)87; zgRkBja^Uis8pNn}ZRU-S9vT@s27I`lnHUit^g1Dy8aF!tSLf?s`l0y#&h_E1?}-18 zsUvW|^f+_gx#7TpYp%Kez`!-vrLH}A{q@(T2Ci2J1aT1W`^e8B8odFozmf=c2KYJa zgYE$?zAGL2P`8DLKD-^^t76O}_+WE@tM56gu0nq2k+L8Bh37%$ao<^a$OeB;+W zfP+0)&gLuKevQAzjf0%@gS29h59jxOV-I}ETYd9$T0CMyb^oTZS**+B%n= zK0V(r9&0a%MO+OWd#m{mUhh}Ftko|*7AZQJ+-yIrRv`N^@qf_^w)dIi0ncXbJxY#4 zSTQf2-pDoIz^r4OeTxCFe z50-x+vJ>=PMBoo3aFgb-el-)!kVGNn@9&Q}@qNPtJ|2sOXI;qeAb`ZquaN3Jfxq&# zW7qqh3U8lxLi`1l>*B)%;<&2Be< zz<#x!cDn%}yq)L>Zznp!+ld~+&AQw;&hje@vYXJZb@H{X4qVylz*S>);K~OFu6%Id z%7*|K6NsGahbY`pF9JWi-+{~Z#$EAOxFh}wZ+Ad}JzCBIJsl&IZ$^%sBq06}-%&4; z?^>5e;V!*7F$F=KVM;UN$~`PUC%)^YCo|Z3C9W<)kv+NmlDtM&Vk|k!)APlgL%z6Z zamp9CQ@&gp)FpqlAQrOE;dvL~)uXJq$#vje^{Cc|hYAbDS>X^kj6;LLI8;ms7wgHl zn`t;c0tc;@ostjf(7`w9fN;=?-`zODm(Tq>;wkKr&;8xF6x6AA zQ7LxeZoYi(?~)@P<2&sakMZ4j&W+3Y0517*KESLPhe5+IbEn2oeyV(vagYi+{gU$p zI&e8pKv>yPFLIuM6Bpx@PFy^8cHwfK0D)`8$WAd$K+&=Na{hozj+{T>!p(eu4u8#j zfDT;Fb2}}24`h$TUEhU~xLQro!N1cbM>IUAe1SXV3*0GR;7<7>(5mz6ut&_7bJ?@B ztmqy7ia@*NhQq}qdNFqSnOkTcy}xSSA)aFOTA9E{66bkBah48u z;BvH|z+LvpJ93vj({hxfbKbZZMw?e35Jh?=z90t+UAP>Kao}eNzIqVl;ENMUhn!U~ z2=Nsz4RYebAQvtTa^eJE8ie@LoZ>8n3xk||@hH%V3xnKv2Y+GqY-y(0SzpB!H-2`y zc!z9z9rDG)G4(k_r1vZ}-~ROJ?5e!MK>VV_<<)Y4>+weMG;rCjca7&d=0$5C}EFZ79TrI^<& zI&kp}RDQ@KgzNR+vZ}S%a>UomgaW-IEPpwGLvnI?@ibZtrt1Z21HQn;x5r?8UDr73 zzW!kR8J_RRSjs>3S?8?!+%Zf5Qa3l^JELmZH2L|}#cA;&IP)jha+?;PaTiX?hr{Bc zOWSimyw5u%I0Z2t-6y&E2dZ*Fy&)Tm!FS_~m>BTaUt{=U0+~Dx_$~9DIpE9Z8;^hu zQNn(ZQxF8DS4=ny%YpCG!J)w4xWe$oM6@u!V7_Aqe7PRUb74c2upi`X|JNm2ub8+N zmQzD=tncETT3m)NVXNsUju)|#ILa40mMHf4!jHw7A5QlIqM)t zOb83hDIqyx$la0y`?Fd3{^X2!!%=)u_w?!tB#OZc1++)w=BsvD`OI4zC%*S5zw2!# zC5FHEr@n_iEuo&rt#Y}q zjfcKfZsD?NoH{lV$T>24d~|X|e&92mJ#l>OHf>P*dxi4r*7}3IS$WKN;6Nz1^|}xj znr&Dw07}4NJpw2JhxHer1iWC@4S*7G_+A2(fHw^vO8Gv%%oF*$0BjYd#N~~c{9*iN zfyp1nFA|viVf;Y?lRq2Z7rR(s@`rIb7fAjvF6RQtpN(H8EY;tn#JJn9%VIw&`0|JO z34zI?d%}7zFrT5_-t`GowRL&C@N4qq;ZgYw;M>MW!u^fh7&W_wNG?qO!GMPScxGhJ159QeCacg#$v|r+KP0GL)9XE-i$z59h zp)t5J$sQg(YUB@;2KHGaMk(>M?tpxc^|0b=4MM%C8I9xFw9+2Qcj;B%XO|9)WX3^? zMZUF478;~J*s zcY!@lJHTvR~FAbQ+V*dzHUaBVp#BicBsu&(m2IUp8`wKKGczZteBDjK4vb zj<_j%sQ5ehN`CLS)r*M@J?P2>6(ah|@B-iMbvfp8;prHm_6YNK?o@UL?Nq&| zS(skcAC5)17+Vs{uouJay1kBs>pe#`cp?`{Kyt+T2I3`R@rQ8vzW-?gm&2SLd@+uy zUckn3#E{FG6>$W{<#@YGPEm}jyYXq4USX#5{ZOUW5g&nz$6TFplgk4rLC8+^o~C?u zi|~SY0OopMQa-nxJs^hG5ntoZ_qfIT-Fhfqy8XX@{~Lk-jX(qufbkd*HQ4tEb$tTc zFs~N#cC(td`-FtzXYSGWt(XUL*0wbdwlR;Zcjw==9?%n z^m6@JM|yW(tLNimKWa=~{AIQul)UZ#u;aH)#1H!c^5nRh{DW~ps>FWiqr{?Po;-*n z`}!~Kt$xA2aWO|sjwe$kwlDp&cKllA{Rqs%@uTdk5c0r27;mLYtapo$hk3Z(zz@(% z)feDc9=G0-EjzDLefLehHC}Gl+s3-P9VLIx&4aj5^#C}IONo$&c{na*A}+Yzzz?tw z>W3<^UT(cnJkU$EAHcER^`E!noF@9U^!N4p!_bd!5^>ofamMyh`3^YN%Z+p6 zpY6Exf9a7uT}MFtpdC=97#})*YFOUtj)-Bqk>OL5V$GB6aC+$Egc@{(CwthBK@`8H ziF?O*85%|r!_e1>krDO$OU8m~7l3o+>2a>K{20c>ZO4bz2>j4V@nwwThqDv64vm}7 zuDA8VdgD~-l_wt{i9cUlk|yuH@(yZwP;apAIaPY)rL?>b`@XO9YRlx4X36_v`TW8> z8=f4QnADLIIWT$hlze<)h+rQ)U!}_Ux*j)dyh@kJSL?E5%K8@{?ab%FS7`hCwspRP zeO!59A3W!!N;#fmp2*8r?w51ob?e-$c$0r6pFJx^7Ubj&`Dg^kZ^ziTmeBTtePMZ> z@6rX&HNZZ2-b|J9xyXrA;`?CPlOu;mPmT;vPGl!fh=)TbhSadRSfNO%7WFnZdT3aU z=2G9*lSI%9>*iCXnP+h8ka!Fc$deBtCq(}+*>(iSWu49|hkb!O{q?`VK3Kn>D&6+U z$AaDMgS?tTd6gAk6+3x+WGs7P>~MB+^q789CudU#fo5Ay_<{Jrd;qG%aT)(nbHDn2 zoi9^2+xe*(fn}GPr?K$yVbK``DOQe~so9KBVQ9 z2tUHQyV;jm*YdWEJjyGavl^$dBV0{Q|-!7Ba zf1~X$%wNRv;+NZcDPI5MY#wD_0r99jn0mY|5AOG|eVd2}_m`Nrh5aS&-)c{=^}_fN zmY2H8j$h?qqj9Cpqv|972D{&&c(}ba-sHBghU8KAwL45+{AsoyJ49Rt-e~(l#RdCO zexuuuH6)MXRS}Ph-`3M@KL&{SwU9h2e%KG{yp?{F9T$pMVDiS%`InN1?Hl-(JI+m{ zm*VwRY(J>}s(-+aGsT-i@~G>GfrPt1fc6X}TwluVZr6X|YpO60_ZuMBcizHrhVP1C zdE>uq$B*Kb5U=_-?s~&|;d>xhZym{_c)N&4>FvAGu3zdrJ@{tZUrHYKgF0WXBY70B zhIm}Pus#%yU;Hh$9~5r@@wj@aJXk~WC|(uuD80L%)#qv7c@@_Ol`s8owc|qZ(uhad zhxJl4ILL>{$&gg^iy%JA|4gLHN)$*|D)p9 z|EqTWQtdpAc$9tI_*IZRs$Fg&9;LSxabBf<&5jF|_fv>R*~g6wgC3zj`ULboOlN>F1tovRPAjY>80|%hIrigQT}q{7yk`AE|k0s z;`RTN`}%&s@O<$D`+Vm&;Q87|i>Vj4OKLnK{Z2bBRDW7v@;1M)xAWlIx7~4WBE8hO zUf*xpeo#Cdm+kMk^>XWD3h9M)Z}IiZCXlfqtU1#zjE>ZOd=?PsQzJ6oiUD^*{ zT;fa~_<^4jV9@`PwH_!?SPP@Ywcw^!7iAcfJHaeD`^+ z?P%rY-^+^&*FG+9hpD&pb`<&-_(oj>u2hEw~TnyI8E%Syu4~4d6eGFhjjeFABwkzc+`BF7L(WiVV>SJ zlZWe#`y7^A{KGs-?>N#+@k)qC>D@p)ZvIhvcac1bm#Eosrp9vy5szyhb^kVQ z-baLfgW}bYUW!*j@~HVL@sHa6QoI2s59bSI-x`uf@v4YN)!R0chwY=}^?%Hc3&l$# z9@X9oh)4AY*gmR1-9qvxy-mcU^11Khw!c%KbN7>F#G~?l6Y(g$4aB4T;Kl{>sJx1O z!uFTqB@vJEcO3CjNqe0-XxCi(Hjq5ZzB=Mj_U$4b*FH*KVv2Vimj9$3XG$K93zaW5 zro0`*qn?w*f7iB;YUf=0GDsff?;7Hz|IXdss))z6k9r=kKH#2jhR3B^NG~NX{d;!& zC|&{asC>q8rpA@GkUWalWb*p9Y(Kd6QT028~H^_wmhmo zh}UiVsP>EVin>0?AbAuI?DqMwQMCP_uG=$Tv+IpI&wyUY7iwLD{?F>TfPJZ^J73mT zZTl#Har~(3HLwr#!ZxnoHRLZfub^rC06COiY#(*Kkss!b7pFdF=M{BbQbs%~|27ei z>USH6N6CwQ-nNgre!+2}@@gE(qj*pczWUup^?Sb85p`srPad=na=n{Bw%bP^(LUnn zeN!q=AugboTA!TX4B}DGUDgnf>YurOY$JJ;A1%bA z{OJFp9T#dIZ5r_?KMIIPo!_|rZXtP;zfHuW{O$Xa?Jw1jrx1_wm+MCv$)o((L_Erm z2I7(Z-?r^91R%3p514Sv~7>D@qjsrslhdAo?m ztv9M4s=dmNGiBcn;!)SJI4+cZQ-5jSmkmDB9p}~yZ61|>1L%5^%9nvx+x}8{nn65D zFZQ?aV{Sh%kBUp-MYg|GUiH7m_Jfia`zu>s>2YrR(nucFJ}SsQDzBP|N7;wtLfO|J zxBaE^FLklaqw;x^$=hJYFZK{yFXe9%@u)n-aiQWoj^t7PmJpA!59=j)U$^sW>Phar zsw2HrJ4!s%jvv)72e~}7-Zd4MJd#K8;(u-X8(+WNxenhtQ(le9+d;hQ)?=M|Gfey9 z53}P;jhpSf)#g$8hx3Kv4IsT#zc%nTTQ8M=EvCP4y$dBZeg*rXq~>42ekiH&E7%Vu zPzZprqvOBE3}m1vyYsc`&$R*9W&9arIJu)R11v zKCmB3N?!c`*?v&+aR1kOgu5LLAbIDTFI6Ouir+TkQSB)GH@3f2J1QU^r5EB0B^77b z4<*H`AiY$5Y#|>~C#9C|;7u8)x!L zOdjM3lvJKp(e(z!+eSR$;15%l?S!Iv+IrWcL(tX9`C-6 z#d@jntNV+WzRQjuWnbx1yFMshfhn(&;OT8L<@J?#@={D5gW3yt_BD_2=Ic!{^_C6KS04?gyx6ySeyn|q zS8tFnzUMAUqt{n&<4pUwdN-JQ>k;eS`nHaruig^h;nfG%-@K9Mi*w~BUY@Q;Y~K#k zKCZvX@ABdtJEr~h)dyGaz;}85M#k`bdg~F}S7q9_&9ra*pQ7y#T1@*gCwO_<|4+TO zBknqozJ6_OmzjT%Sf-@DZ-8jA2JsyP%-d!1`cG+l@%0dvmm+x0Z|dWLPhGFUd_*4) z<`MXKEfZ%Sum5{I`>-F>^(3~B;$eBzbtm?N;$eAIzF>bT9+pStRT{;Q;z2zW9@BkY z)B3;k);@gwB-v+^#dK3*cbIW$IuVs`Y3-=>)k}(Q^LG0&}-yT?1HB+0%Y%IJ@#?MK`XP`<)f=|Y=P$^E^A7d{%Y*X?=0O}l z9u>b1-al*qeezOF-W0*Zeo*#d9+l7QKcm}+?|g*iQGQ?^=?9uGkT~dmj?>OR^c_GP zXUM;Thqqz!)YlJ{{!?FPLp@W^NkFf!e*vCPFMOZQ=SR()r+vH)c zUZ`x_eo*Igu+P{30nZn|jX&Yp2lBXjef{6SSF~QAeJ#WDomaW`ZT=Zg@Ay~mow)eo zmv8Xw8~F2k$39=Z>K|}UcG@lpWbcb zhcEA2_maOp`!;&?*B8I72lDc&X?Wbc^7#Sv;j^zEvA>%S;`s~q`TS@YdG~c(5`WcO z-h1QxU|w8y4e!48cl|v5h5CfDAO0iCZr}H-#d&dwU#xlebzDl%;pyEu&-mf%x|Z?R z*H898gl8XAhp)W>59c%BP=@X8R=)#ZkG384J(QO(DZ{(3^JT3^f4%kbFrL3j!;9Kq zpMBMc{oQ5yo4DlO$$Ou_tsecw?I_%CR9iC7g`izg_p3X`UtfQK?`x^`83rC6ZTyl< zKl1;s$A@5iW82t)<1)TSdHt7azp%U#Qy$cVFAp{%mdDkL$EBtotDj3@f4TBtTmkr$ zJUre6JU9+Y>ifUgK0H1I@-Q!k;=Fr#Z~lT^Q1-!pMA_}U1vFnC^vv@-4+VL?cAoeV zUi+;K@pxRl>rA~MZ`|_YxXG5msec9QS&w*$;+!UlgG6$`6!-VuDnu@@_f&`>qegUd5nAzPO|x!?SPdD31qz z`1Ecu^>XELd8x-n>qogqdA@pU7uoXh_WxM4^;+JE-H7!LK9SdNP$a&BlctPDZG5i8(viLt1#uKKc*)3v z`KNHd)bV`A?C@Pr)_b(iCol1I9T%>@K6&|w<<)wW=NsRMKZBPC1BSY^GQ6nz$xWu-Mvr=Z@k<`; zEf0M1N)gMeM=URKZM6R8BbHa|QJycKdBE_Z%IAi8uL$}N-}yjo-W(TdoQ z^!2>>6$~$`_-!%uHko?k7xp%v+Lu>TDPCO4hR2PIFAw5>pvTvIJjgqrA4&6lSf9L- zdH)UMQtNk)GruLOmgY%+Ok=KVbI+qb^0uiokp;r$f^U{2Nq_aG|&CMR4lbHKPuosUf?)K=f&kxY! z^r^Oq~H)}uUMzfqs&GMADo5Xj?V#B|> zes!jOyG;8)udhCU=X;Jbc(}KGiArzne$qQI!t-~0uD3k!#bxKwJbBwp`=EY(decXE z{&MA2B9^y)h8GvEeOzAZXtZ&ue@$NxfqrT|sLhD=f<9k6Po|^wm#cS!sdqcC?E^o2 z>jnApo@?LWXtZ&uMJz9VW3={VnDUzQ_fCEI>TR28AJnf;UizkJ;|F?u>$n21&$qs) zv2Vw-Zf)as?T63bzA+we%J6*GL*R$kU-SNgPu`}{>+`o{*0uM^1N(f}VdKYmaVZ&I zRC>Ag0nev5L99cc&7NMJUs#!6%ub&9)y(w5LiVotm3+3iGQBcClby*=&o6@iR9^Y~Z5sQ0e)L_ytKSrJ z9m6tHUYRK`c_Gif22QlqWBB3(wysQ(l=Vudk11UxO)ciYYI7E6?AZFY}%|mzeU#AHnmt z&Xl*ol$Xfx{H-(P<(cvZ{)8958dF||DKCB-&)+qsybM!bl_{^vl()^4*J8?RG3BM7 z$BW-Ob9}PGl$S~H+DDTqum3STd8r5e&eR{cm zl$i2149|C7$0c;Q`tM)}=q4}EoG$?4e0tY_D9UbncY4$d z_uY7XH&Dl2H!AZY-QMuJJs<~4ZM)v;=Et~szK`RAuftkKFE_7z^1x0!&Hy-+{qP@A zcJl*hSTEpE_QQWf*-hRSbG`+L^XU!8vzuO!=X)QlJf-sh#^vF-upWsG67wE_4<$GM zfbZ@9rrqZSI37x_-f<(3n}66o&#<7W#r+w;P`=jUwv#4^C;kWD7p3l-=}wzm^T8)L&??KF!J^q7tjY~Km13O-SWOl z%s&VnuKwE}0=mfqnlFC4#C!`l9?E|Bk0`t8O_+HF_jUaGi0Atuv(xAk<~1G}N@hyRE&TyG&*{kJ~^M8O+m%8Qz}#?%`%FGlnmA#?P9?;{?Sf4E&@ z9{wKW?rYuOTg1G=TY0?JYur4DQ?K@Ith?nEeuek`TmHp*y#k+Ju6X=dChsZAF&OdA6OpMj-uuznf49*lzZF)=T+a` zyz}{9{h+>Ii{(N4!1hhOlDB>dmdDKlinnR>`ud^DPxIo8?W5XJ?HsQ@nlIz=u-@1# zk@u#f)0=#W=K116=>;50ea)x0!qIvelyEF`x3v<+jWVrA8J04S0Ck{;n}xk`f*=eN~=715NBUL$6vvdxA`QVziZ6; z0Q-D#-srJk^U2#`p5IDW@chlM@#5EHo~OBSsT6s7x$?L?d_G@)z59Hge=;wAT)mAl z&)+8VeA##vPhS1iJYFo~JgqX@QO2BSeEkMD&TBu;tG7+lulf2HuHIc{oJ-8}R@L|c z`crRk=V^7FSHI0y@_3-n*ALZR!;`mR?zcd$@A}zSA3MLu(+m3W^96kUS9uCAUn;NV z=}j@O$GP^k%zbE7?IX#&jvY5VtT%YSCs!)uW>)kYK859_)6=Kt7v@*)Hjd#qgTKDK zD))H3>yyXTJIK6_-Mo^QFL@&m$8WE30Y7~5Hkkbj$n&)~;Q8Xb_Vc=Z_~ca$&*ul| z^~r1XD9`6d`v36!SYzHF6^uNezZE8r8<#%j^#;iE#bwIK^VLVWN4-9IT>H4Zou~5J zZ}Jy-dBD|MGV*+Ru+gJlZv1?_M33iHpC8<~0MBP%uRLEqgFKjT0ndqX|C}-RmoT4| z;(5usOuVCc)?5p&s*C%hAxZVw}OXe5nSF*ErO)t-7#e419;{1zq z*_G+j3prIqxPB{7=k*7@)~_!Q%I5yf=kF$y7i0DtN#=dZF0;Sl#%06k_4zx{W8VAX z++vOoasA-(^5*`?=kGd`S2O*yPhOm8A2{!0%sk-wyJqzI>`O5HexAG%SDtai*Zu-T6uWs_s+ulqf_~P7T>gDED>aD!EjDLm4i_3@)7&7!_*7)Hc|L!+^3oeREo3+V&OF zZXW3K!~7nL7nre55?Z2!Ue^&7F@fOA!Oc|cf4{m*|GyQEa^>XVY z`P)2y#|_Wt?+(+C4W>MKj_N^PezII+?+Q-#9@Mk=Kx$-ja<>kwo z;o*Ggd|$V?GCRMxa@DH%XHmVXt4zW7DN)x)|ND4;qzw=If$ihQuX+RT{;2R(UcGVS zQhftY9@mc_c3$f_I?lfK#`UAd9B*$vSL@~Gi_gAI=6EOg;gffN@diG?d+)fPIgZq1 z^1xr;_2j?@dHq4g@VNEs(_3Zg-Hupq|A%<~rVTGDf6JHh@_<`!O{O1xAC9*FTYp4v ze)!%y+3e9iSf|%F{}iuV+i~9d9UT|EPA}#q4bRuVlnl?8FX<2T)=&EU*k#(6_(*Sg z;PaQ8r|U+qPhPD@`+WUNyvA$i1BU0TH?F^HOuf~J^|qLL`#;)S9{A#1F!Fr$TZve2 zlc~4wW6}CMW#sw%Ek~@k!PFc3cyIo~e16Dp-2VaY^S9KaUZ1>r#PSlK&~Yg|ru%bj z@E6WAur4Q#%hsp#c@X&2x;=TL*LR))Ilj2;7z(>N(~d6H?dZO?&-*>iEp4AKPm_k{tKV_M*o!l*LVKiW%`@=eO^8f z8lKPJvY7|q<3XPK;tV{Wzk{E)``x}N_j8vT(~liyT)6hFeTo<7s^M|t=Zi~=ski?R zw0%+OEf{&e`mIE)H~vR<9#Hc}noRpre;93C%0`|qE}IeSjeVMze@VlODi2Cby&Dnh z-DT=c{86;^i?3g(_a^d2uP+a35!)C43@;CAW6_Qm_dSMpe&hD1+e|-Nh8I;nr|Z1< z6$~#by<1GZ&4~4;KFjlW%J97Y{;B<55!F9)^Ps`BFZQ`;+xfVW=WD;Ei1pT)dUqq% zJNS8C9&qce{#pAxP0h<#XX@QCJa7IP1AW&`1Aol(H)D8Sy&vQCe^aKP^ySqyS1;3F zeBPq!qyG!MxD*V}8yBX1TTH#pi1ntv$n$r~@S^f}lc~26vEJmDc>azXUR3^WF!k0W z)|=So`OEFs@=ST_h8I=*c9?p(ehhp$+PJJS<*k35*H3c&!2Q||u})y^*R{XC`e@Yj zbus8q6W>e7n0ePed8P5*p8NUETgi{w_EFzU=>H9#zfC5uj`ULF-kWBAu`e#T-YR)w zJm+THUuwPex|t8`(+lYG1!l*RlC(Z|!K!^FAHe=gR{wukxuI1U+f1T#}^!Dd@ywaaX8|S)_=d*7&V!eZ3i)ia@&B*iBTQy?6EvDZ7zl_%3f|2L*x5Csr_#9rnHJS3b z{YL7qczHi%cv0p3CR1-CV!g?)^ZXq*JfFXnL0-LWFy(RUZI|gs;;*C4`@E6o%lq|+ z_3kkB#&>xB)`ofYmSM`{)?3xc^TlsFV!eeC?XNGNxqcM>AFmy8<#BmUrry54;pG8W z@05|}tG9B*dK*l=v2XO|ug?#Ni;q`|SZ}>odFXx`zRx>YimCZlREg(RCH|I|&w0b+ zwj+GM5B7~4`=}DzS7X{2|GVDuz&BqiW90erU@c<3+f2QXr@rxnR>b!8|2;2X3QXRX z;ra5a!sJ0*eD$09CeM#4!}HlU-qi9y|M{+mvU7_b|MTTvgXu>d+1HwMum6%XJfFYd zCvNAs{o?UX>iOG-(d+XU^!oCCw?{u<{wc`EegN*XkL&OHKk)ji%&oj}^qP?ecBYb# zcdi2j`+a_7{*h5$YF&*r#Mi=5A1rQ&NE5F!}SJwpyc{7*s}FDzIA@>W0$ZGw-4MdK`+=3KY(P=nK};|(Ct z%NXW@192`Y8o{9mYDB~`8o;4|XhenrB0)up!!wSr&T*v7uf4yuZ|~X7x@(;_KHeYn z^MTXhd%tVgJNxA1~(ylakJNPbN-)+XCAfdn(Z_5 zz@Aq_4|n&O;}Rt|N&RbUJjSiKOPyE6Bi;3Keb$ceG~=`TY>$VDYjb9tdz~-bxXryQ zK39u09;@cDy7gdyd?rsWuKBxEN4N&^GrV~}#r$j@krRGeU4A2$kL$B`JZz4;?*7D^ zbk7UgK4(@PTwK#1sn4A^cdu*a^@92L=26?{YR%?xTeZG9=g?Z+9Jh{}_;wxU_vTT% zU5;CEx%1mQ#M#@2U57mnIG@dN>(vmAhh487x3ub5>bMnacaMkJ-t4%h-@P8U<;K_U z3%72R)E9d^Og`pu)qGdC9!y*Ha&e<|y8FV7+l+GD`q%CDnZB6(&7*dE%Pb$at{JaA zZszyqQM=!6j~f>^r2M4$Z2P!%ZIXP_JkYKOwbj3LpXT?)tM$6a&D*1SzjN>{SWkPc z*Q^_69L%G39%%b#y!Jd;b-S5k{7!eh+;}7w$Gz`YP+z2RTQ!f>ZNKAIT(kbI`tRrJ zDAu>?VD3{BD$l=~R*vt$2HkPFzRcw~_hru){C58T+W9#Q2K!egUs5Bu*Q*R>sx(g2(CV(E8GreO1do zf1`HmOr_E{hR9Q4T)=O`^c1WCwq)5^{;O;-8?Yk zCi#Y2_D!_x>pZ#LdWTx}jrZu2)}a~lN#kb5SMm+^>9!C1^&ofslA-H$uY3HPbzDN6 zRPS)h*GmhO*E8z$cwG(c`l98```t0U-)+C{?%x9AYu?8;=Kb*Lntc3#=svSkOKwEUZ3yrg>i3akcpsE&JT3x0_$ovM+Dh=WN?K|G{`T$Go3!kkzEhW9*>c>$9dvQE>)Ke$J`-2ke~#&Oy!LrZ z@`OU+PQR zjcfWR=J!=yep+AnwchHG#&_cD?fS}ZwCi)PZr9hZyx#wG%j@6tF3LKV;kbo%{gcKw z+Ep2sCZOcYTlP7-wVU5KUC&qQU)XZo$sT>ux?$D>X*^2h^^1cZuS+b&ooLzD@!OpT zLoNFT>H5XeywZ-_Ow0L=QGU|64Jxne?BCSxcuXtfYWp{^N4xorw(Of~*%wXWeFtfL z`=8lvU$T~cwbIvjYrAz!QU9dvclcTD#;scRIm+v7`_FE-j`5a#W;>Uj2WMK28}Hd} zUqa>e%!`)e4m_vbI!0Uenemm@D`%kHI>MHHSG>_WtG7N&^%lywrVh#HK2MilbhnPv#vN70)%vDd z_Jzv(QT0E+-M(n+{ZDbyy#G(dmFDTh3wrBwS@z9-!rXCUx_-%G-*42`JM_Z;-}%iv z%K5c5uZp0@KA((vV8+p&2kwjDljfiK_fj2^(l<(+^!%ZX+ljG%Ak{IY%x`7fmbRmj z7xy-9QXOsQ*Y}b~H$Q1!nR=zZRR5_ugzac(AKiA85ZBhcFO_jk|D-;9FV)rIDetdg z;!5K-MscOS44l&L>wxi}=;nPm(r(E+E_`aPU4AaUcjcXQ*vYW78U=s5fH5ZrYz z#?I>Yaomvda|G!Ym{+D=&S(B^kFWW?d0cfrYIWCLm^$04BW>>AG^Hs0Nwhh^-Z?y>w87J`3<-1o9NLe%@=K-{a3czm!xH1*|N`jRlD_S`#jci-07Bm z17W*;8Ex4&)v~Yuz;^2$>CxBL_FF6Cx*x!LFRkO+`8@pUcKbJ>^o`Jdg!Xw=s@H!_ zyLBWj`%0y6s^#$=d~LgZ8SBy4*7o7PuH8DKmVJ54KIirA)~j6)Mp}+L*|M+izuN7~ zaF4#W=5y6!TygyyYPT;*%f7N@pZA7#>y4GZY}a;QZ%r%Xj-SzP+~|$H^{=gYKhljKtZN2Ujbn_tm2(}~RI{Qs;gs+IB7m7ckAMMQ{5bQpG^C>D0kgZo8#)$a$|nG>z^5a zsef87U#1&3txwDKM~_b2tmU}b>mHr)9X_bH{*^7g&#oQc&cTmPe#xU0SKAlwkly;z z)^n_t|ruV~rl9@B2Uk+03|2KLj9TkzZN_XD`&{Nt3LiO(J9AGUnl_2n15 zPG-*Iwz-L@`SrBTN#|3G$1RkfH?`x=d`y`ibKbS>lIpDA6VA^i~##;7Gx9l7Ec)RtEw(Of~+1GzoyY-H=?3--a*LQZi^$xe}n`qhB`9!<* z4z=tXZ`n7~vTyK{?e=f1N1yb%cA9+B^Q!x)-s+IzM&y&?j`kQ=@=dku>;H6beUb7r z`w>$AGKwqtCYAZw$4jRE*!(_(&2jI$*jy)liZgeeW&3j?!(-^5sk{1QbKK+#?C%o&UQBERD5C$E@yBM0JqB76Rs`IKJ+Zv3^)+~ij= z|AKFV8)P`+ORfVq>NWdv$}j&mxM_x)BF-tm^=;kkbIwD(HE}+}RbQhzzC(2|+-N_1 z((BNb^_zrN2>9Y03gknsh?CBzLg+%Rz^ zaS6js5a->ExMK`w`X{aT75QTF<&4k&9L;;;CK)a@_0s2wO&<34F+@IhipGucjT09U zH^Xop;-q<15|@+DeR}ge@IH@voqLd9Kf{^&q&^RlFC<^U_{NCyUcUK?^<{|RW~dHn zp5_zSE;EW7GrpMOO8pzi(3jvR=*tA->)emN)=$Ir@5{&IIGQ~VM#-0wZ<_I~?6dGW z^_+Ya`TDkP9$)7RwEg}Rb@&`dfu%n8lP@9PAmbY$t|TsExGAbb8jp;8-p^3S2;-Y1 zE+#HzxSF_vxN(LH&PV^;pCfL;aAw@3{tc5aBHt9_ONq;gs~K*BIOo5SUuV1KdC>VH z>IjMR7|zsD3iHn=Uq-$G#y3POiX6BjU?sY9AqqvUgbjr@ifUrt;`T+DD&#MQ)&GF<L?lC2yrQK{tnIKkr7uBS2O#GHF5rL5jSFdW;~>M)%RueB_ZDk;|qxMA4c4i;f9Tm zxN(M?Ag&~Cis4Kh(tb%rKJO9aS2I3;9QDS;b^4pfBQ&p=N3i5f3Z=5*S!G6R5 z!*z(0o-a${BJzcdZ-%&>xM7C#E<#_NHIQGza4~TqaXG^UJJGxn`Zq?tjC>X2nEs2|ExZ$0^N&O4S=dF$WoSmBM$cT%H>ti@=|0c;-kk4m)eV3vRcOB$6$Z#X% zlh(8RP39zX68xE=L^+aijY*=Ql=NNnFNoQyC1_0tKOl1 zVLdMH*wmSO-_m^9$3^{}+pTxxYdT*>TwC?l%DAQv(s~tq9d&5)lYH8^TCRGO@*Dcb zquZB~_H&kczhiIW(WztXQHrabR|8i+I(^9>rMTL@gx5SeebMGu|3A-9TL;H&=j?3$ zwA#n*oLyG?ck{>XoL$Ygt9{(g*=@CdH-FsDd4~CRwU665{%Zej{&*BdFVxE$wRg?Z3x zpSk%rczt)h92ZgCUi-Y%>kHW9mND1Aa=+VM2gl{g{*~9^JR394TwkV?eaR_5Y1~Xa zY5R3v_8X0^KYEu8lKyaO>ag2#Cku6sgxl)a$s_A7|FT z+q=h&<6_EBs>9^h*8Cf@`Z9J_a~)GuhZJ}8%eryv|33Pntydb4jC@jl(^kFHXE)b7 zsmyQYVqLv1ozHK^Fa1Pw+?hLd*R7a(j;??CrMmpmJ9NGQtBwKY^LeIDY1}3+)8*&= zpnJcGTmK@;PnuVKmm{t;U$k|MT76;HzdO-qDQ-&nNp-~JlemeN>$RV^xb<}42dLNd zksCMXYTf={@)g~?YvuTkT-omU z_FdDx|HqB5_hVh3Ysya=x0rkq7g+gm+tJGL=)-yS=4a`6JGZ@=e=m)%d$+DH_PpZy zoRiPQUuwP1lrBFLPr6R(7g)V#ktc1w3(xa%aCzDe8B$Zg#|?)Y=x_jH_H2bW)A zU9X`0b9246Z~A|99CtjY|E}&jxa&vQak=?7{Zovu={I*Ay|&_V?_1e%1Lpb>HaD_m zb6-Y()}0^64O#b@kGE>}Y2(@)=j;D@cYYi<@EZFK$9 za!b8li(PNqKDN(4?e0t4ak=@D{GxkaadC%!wz&Mb>!#R!=C)t2>duejv_6~T#$(Ki z%dLNflC$G-KAYpNvtx5wUv#o^dsA}SxLS^zr;DwZo6ojS%W-u~{;GSPa-1EPkNl+Zh+fp{zX?uMqFEU)XKQQUy)y1ajTYnL$$7dOiX5tlODC~-A$;|!M*7d#I66%02;TuR&&!#RIL zy%lja!}SyAZ-ls=eKC&qeo07NLY&8NBgB=&4KUm!arx5`H)J@o4oUN+CZDq{e8Y^d z@9*eKNZc611;k~43`oYY=`{%U)J2`3F1=X0*0%ItBA`OuJaGn>u-;^ zCByl|CB#iL+z@dkasFU)9SL#X4u~5u+&FPDaVf)<#1+I93^zlZ+mE<4!Mem^`#i+$W4KPCJ1?jvUqn8i@tJv_6PGjn z3+_e#vgaeeh?!Tz#MQ)c^Eo9hcmaIee4ZdKC61fV6>$}D+O;-(qj;Ccy%*3W^sep zHgnp(Xt~0Qn>?dA?!f)s^-k^9%xU9lxyXte-`YHGqe{+spt}z4I8wio)7D{g#j|w% z8$GI-D;~i5X|^}6FOv^-bKLm?#v|=d+I4Vo{YSdv4nMoO4%;{SrsnarxrzOoeVvE8 z$2T5q<`!FTbU?Gu&aZxTGw0u^d)}Iyq5j?3eO)1ww|Vr;H?xnO72mJ1;{W#Rl+io8 zj}s35wmHASx1xX2aYqwYIxgxx44*Www7$4yU!n9(6Q}KqRPVqez4cl0nf^&!-g;c! zeAea{I_>(h9(`p?*FEZ6qun}&d-O?llzZZRmbT`z8DA;x)Ihs&lQrAzbE)*%>pl0m z9n%+SyBu7r-8#lv_D#3!GkuAL>*g6wdY&0w8~u~|TKCXYQ`An=eB&pQU*)t&MA)zsu>owBo_c}SU zeBAj5qZY@-owB&`Vv7~WJ?+;s&QH2uUk>y?wUO($IPUn>h{bW|^VhG#xS4g3t0S{~ z-2EVHi{pHK*7?QUcnn({Hy)|Qad9Usj_aRqonOrP5+xVhhw(M%1$CJFjZOZhdmeE4 z)fQ)--^@6gN4$o{PpiJ3Hh(vdbI0P%*XlUWK(mjla`t@g`)zj}W_(xq=PSO|#$9`r zf4I81<;mUKx#{03|9r)_k6YyztNK>?^@?w``30-|!&QBDU+n!7bDq{J|9r)_aNxJA z`fQHNPl{{qt7`j#RerI$xCz5aan0vvwwS#m?iy>Y;lyvjahpf1FQYeHb>!+fJFfZn z^$mDG!2HZ{!Hqi3c;e%mk2l%l%dHzW$DOxnbKK|3ZH{}t!sfWoRoWbPy$qWRnCnc~ z9Ctkmo8zv#U~}HNy78D)a&7zK^K|*OJ#O6drQJXC{9$h&HfPpxiPOf_ZXeqGwA&H4 z{}TTj&s%QUeVp2^xBp}Ge0~K!Kh3=#I{Z(a&+ao<@6`UfJgtAG zdz}(&s*7vZQR#I+^6~Ed2<`p5xjKe_uB)S>I!vD2`%In9boFZcJfX~QTp72t`WM~W zJiew*X*^~uAJ-S}$-2I1K!0X^4asn?8n;c zknu?4Hl@tZj?2}njoZID`eJx)T?>hmj&H=T(!I}Q*TKa#c}e~2+d?WKDB#0=X?XiN!z)dAGcqu%}>p3rR(#QvJQ1z z0;N9Nec@iewH>$bX}Z4D%KmBdv+L!qE2;HqxsIo+w^H_{{}bKo+EVMV`@+3GH}y*I z&lpace>2n&x`^IxhHR_wyjPpQz36 z(dtWozph?K%TdA7_M7$SYioU}DXx@Xu%oUoeM-*E1F4P)@`?Gm$j^8y;kwSE??bxt zbNrojeKC1SamQQsY2$i3>*|JhsIBj3J&oK||*&SEwoBEEf-tiz z=QsJXX5Wkzm#cSd@9w^E<7W1kr2Xe<%g3GfZ+y~zqP8yu#kKci?f31qzJcd<_r+uS ztgR!meB5}95+~JR;!5LTIH}M5&qKZ1xRP(AM_*fY)IG+P>Ik0STVJH(dMWv&xDzeM z?YsbWNO67QwDUl!H&MnNZ#i!N6<8iyG#+lCt7Cw;w(1yF z#?4!f>%2%;Z$EKu)jOh$o3$LbR>tjnG5XS0y~E^_)|a%$xRS4G+2_Bcx4uaEB`y0( zrLXTw-TD{iy5nnReUa*o_vx*F(t1^pPl`L;a@>KJ>eh{jIB7cyuIR1LQeUQ&`8oTx zJ02nVr12POIqsw~ZryU+;AOgbFie~@56pHXjqijqZq;&Je^6KN5OGqy@m1~4`%;g=qmckniy&&-#k*ZW!?)_h!Gn(C0YUv1oIKVAPuiIe7wHtv)% zuCu?c&!uwQR^~_VPn)0Z;|wFpxaQwW<1yK*Pna(zuDR~7`Pr_c?*QHS4ineb_zvBy z+kdf-=Ww4->AV7Um^#__Q!H-$qs`mV$mj6BsWfg0`Lulr?pXcjwmVt(`DW(x_V&1y z6j#d6d!=ssFnyEqGn`{x7tzjdjN(f3FD6c^W4h%!hOgDF;{&hKZ6Bk=Y3G5o-cKpx zn(>f)D>-3Z>koDHuJpCE4rR)?HF0hAIXF;P?=W#v+^HXSAHV0;mzDh!#-mckUFj3X z!+*7|-XY?odbM#2N4MUu^a*{LX*oapd4_vGDt-<6XY%BpkF-85H{EjFf!B7|!PPr@ zY4`Kd!0(%%FDHM|e4dg0yb#fKt)zK1s^pwVw~mh}xmwAY@t2;rf`fGV)f;q=2Y0=P zO6kj5zCYOT>vii!N}M#lrhn4wWM^8pZp<94>vP}l;giNqn_u|{U4B~M@ucwx@73k!5GUp5-LLC&^fq0ewRPC*y?cA}`3G8G z|AV?ZIuCdEkNdoM^^ne|%}>k4k96lZ`GMx=nL*;D@y%ziM!4#=#<=(6r-+k$+B&pc z`X;QWQrx~ZyX%;FPV;pZ1L7o~$xm8$XV%iq`@X|;+}PUSr0rarU%rkmuGTlPp3XO+ ztaqr>ZoOmc>+%~qT*swXb??_{_hY&1TXeqK?c??*?e%Y|*Y^qjN&B5=uKxO0=|p#a z-1=wd$9>+<#5Kn^T;{%7X8sv&`ftd?-Y;I@`#Zy3*IfrUZsz_KCB2UFuf=*}$2FXE z{GfjZan1EWGrF&d?X&yGU6;7ey1r=jaC5z;f7*3J;?g5^+eh1RwLbray8OZub(}VC z-LlWbm7ZscgLSVfriqiD-};_`zDV<6;1J#OueOfrB;9z7Qd}v&sh0EWSH2IXtv4i} zG#(?DVY`+%ZQQ!YI;3^2@6dMVK}tSpd?%D~1Eo*fKmRb@_GYi+-1{j*JK9 zng`l>rLDtRuFJ2VI4M7E+~~&c{V;Q#XnTKXM44YkoQcoPgQ2~3&u_KmX_0Y3TKnlD4-GjX}`9aq*dqs*_g;&SuAu?KdQ!wEd1K z<7(%DwlB3ZzrJJJ?aMIvq`suexarN^&mY`+pzVwEV%_VHNhPO^YmYBiM-uC{w~{z% zdmAUtWYW+IqtiboKTVXT03}8zD~Wi}6VFv{vTVcOvR&EABA)q;X4Ijyq$GFL(U8 zQs(EMr0YwEI5RHXaZK}fY23!iC-tvX<~K2@dmZ4NtgF}GNB8_;>NUrKYvwrc7{xWm zy}9G#Gs?JwFYPTqsn4bkY5Q=M*Qe3?3}^bs9rvC(1>+;(0o>m8m(U(CGceD?cCTwelOC#88{-hY$sqm%p#`!5nV_I8X% zz9H_nWBO@tAK5Z+=|hc?*0abm!7wxcOXA$9*hzv^?7hVjIZRI zQu?%Y^uJSAM@XDhhc<4ej62zK+`f0|>J5l%tKRYZv3<1VtCV$gPDj0M#T_D_G*6S3 zrx2|68c0Q`~<;1nsKj%HVI{JxgEAEIgZq{<# zS{b+Rz3r|C!{n3JgS6$il`?MUeY$!(uhc#N4k>-w?PHvLQvb@9<9hGcZ6AZgwY7bW zDdQF`#|>WH+v^H(|L+63{*4mXR{y-$wp&O42X%FX#I;pNri?q;a@@XAUA+NuZPlA9 z<4&|3w{wQBUZ1$O>P?h!wd-W5^v$$f$KZ!_{fmi{`WL)e_dHW5ebYbeeqVz-4(xsy zb(ns0+W<4@?{L84M*h-#{!nCb+~>STm7Mndw<*iVyi{r*)(&D)B(Do%bvwOa9^$uGc_kKXCtA4TTwf+Ej+=j-yLEAW zi{s*^biB^Ym-O`Jd2f#g_r7HL(eCkxPHy&%TlsP0Rw_9=zv)ezd!KejO&i-12eUl#+8k)m<;=>sNB2k{eNS znUb^n$IXM<@@dx%&Zmt#{AsJt%sQ#{O;|qd`pnhQ8SBn(srz9=mQTC?!sRz^`Lz2v zoNvbRaqFpeJOQjC%qH=E;*)7V^=Hm@%>H~4WKmyGGS{&RF($#CJRy7k4bqwRXR>sDyz z-_ZG3Po?*3?K-sMtG@r+k96a~?Y}HGKkj~-wvS!MPg~qPXuB_*Pdg6`C(VQC0^NMc zi4)&Hvi6&}I_&XSDrf4I*4>dW>FUjh`%l%&ZEpkbT-^NQwj_kT|IhZQL`|KJN9Z)>m3SF0R(+ zUDjRiQho6vecX5yi}Z2ppL_Y@>g9aVB7NL-{c@$R|0|2DLpz_j{6Z@(H*S+k&Yq`S zexo1JJ#W<%x7T%ut0Ty}`^@Fnf2Qtvrtkgue46w;I6-lxI?Os{9=X^1oh!QQm_ECC zJ+;TfIji~oZky{ozS-w}u{$o;KikJ0$1JTnIG^c56uNn;&Cmai zZeEQOC)J^itL4V7*X1`&TwD3sU!rq~yAGdkj6EC& zw~s#$-w3X){texv%daG^t+-=1>*9vz5qCZMGO~4ZU);%d`{LZ9%Ws4@sW0}t;`Sq| zTXk`VZqwCk$6f02Q}_18#T`4V`FX+4FHk-oX`i>!Pw3(fe6pDvDi>Gp=%<=})1Qa0 zz6bMp^y$s>+3t(~>1Ln%gT>{??H|~2x&5J$A1*E~=da zwQkHPhNyrZG5G9KSsW`=D~E2`APF&;O2Jg9VK5|^-lGepHy%EWN-CK+lSeX zq))j1<2c*rGoSD2 z`+j#{xbq&&c4n>z%3asgj>{eIOs%-wd2_ap`#er%`+n6tZl(@t-L>O#=T!~e(cM4p zyhGc^oj*CgNFTRd&MeZ$ozFE`>gqLpHuHtO?y9vOaM#NythgL!_nG_Ln0se;9UN!s z=ykqu^WM&n<8mv%LFW1bTA%ZS?s}K%3za_8KWRTvTgRj_uGZK0!|uLt+i$c6&R1z` z9;C{+b{*WfRhExi4|1wQ+Rw4$jvm##o(}z}yMNq#wtd|5*0|;4*2%@rEADy5yQ{kn zF0Ne%*XP*sadDkB7dNjs-?TO^HL%z1l8YPtxVwMeUz_L40CBy}Kd#UAcyReScX#K< za?}^;d?`CFH=k{e+deWYznSkh_itp8^M#AsH`U#j!Lm8-B*m4+ZNl<#eb)BH=Ggr| zW!%NC8{GUGx~IE;-2Ss&2j}ZsOSc}3E91^6xq6-MI=FEg{7E;bo%dY5W0sGLTUgvu zNvCgO6&8; zdOBbK0lMRk+PK3VU0kg%S-(f0@IKhs2JQOt4RyZkaXM~gUxYf+je7H?&)%e0j;5zW9&Wht1VTj`z(Z8S6b$ny?pRIa}&)FZ>Sn-RDc&F}u z{l9=;1AKZQ{JzAm3Eug~W-H=E694KoS8x^iQ;A;-{vyEVbqa}J27mq{@U_IR4S)G+ z)a(6C=+8Qo&uhSk62C5Z_qE^?iSGlS6Q4``=HQ*z!Cy)IXV$}fn8A1zcP*Sh`#3H3e~eDqfM1Brhg_?-Ay;-3#bTLyn7@h<>h z6JJXFAsF8(g5UYKQ11)j_YVT^OMC#nBtDY(7lHQl2mX-wP~u+-z9v4A_?LkX4n;n>#1De^4+CFG{C?mQ;@ugc-UGlF zhr=I8{42p%%ka6USmHy3=+_(I~}0zQ2k{I$d{1MeRS-n(Du&q3fz;zNl)1bloL{E5UL3f?^& zd@k`DV}Cd&zLNMO;17r4cOMYyJraCPd?4{hflrsiA4~kv;Qb@OXA*x5_>%Zi;$!gf zk?=bY3iTcbz98P0_|4G&=qUIji9Z2;=V!TB>scoqm$uJCH@TX z&MDvviC>TMc?tPDc$|Mhhuxi(KXOYfUGws7gsU$L|ed;#}S+K3jqbyqHU_-5|sHOzl=-)y`7iiPg^ z__NcYNAocE^BlI;+~eFg^cBoL(vRNUujam=yVs&YW}e!8KsK2Fn>YLI0)Fr*z44=u z?~R{U`d6MGwN-EaxW|0L9{F0Czv=%_kN!@N^$zyv4|~jirbpiGG5@|E`Jo>3$+qon z{y1Cq#(O>HAN4q1ogVY)?=hcYWk1dKINoDFb0u&5zB2!{=N7NouYn%YoX}>oZs{_yIAh$9KXrze{)~aN!{m92D87j`#HxyY4*RluhCO< zyvZk5=CdL6PNC$@_BE{Rr^!E4=5OYItn{1tFtWX_|GQGX;cc6Ay&w!`f8W%9lh3Hq zZ}>jtdiZ3@XM99AzUvcTDYoCa`D5}KRpw*(s>ga~Zxh^8KO^P(Y4RCX@@D((+o897 zydL@f9{B;UJD=q1^uEYCSYLx>-S1z|)xG=;<22fiQxosd^Y zKP297;!mCDOX4%)qbB~0c|Mqc-(0UYZQ{?F=X2tN^-yoo#9uVedsoAs5??p*SI_e) z@fGpj#tr?sWuAAgf#2^SpRkF)XP%FVPl!*N_}|a-74aqUc@ux%JRe?*e7yCMPu0Y) zKfBS>S3!JCyt_$5y_?VT{x{(-h!2|h9q0Lscy|Nj6F2dD&GYVc@JGaFP5jH}`GokK z__B$A!#rOT?`(*CoF^@;_sHe*eDp2k6B6$?@u$x7CGi>YQ4@d0JRf`;{+jr-i9cta z&xsEnhy05s{-Sx_E8tIwubcR*=lPWQig<6+hW^|#&pY3N-`@!NgiZWC^L$KvLVVK1 z|9+mYh%brHoA~?Y`S5z=lRq8#R1N%b>(B0_nE6ko6qz9ci|6-4;uL6 zcbw-l;xppoCVsDZ-n{|-n)s}NKljCnq|3I2rmw1GeNoOwPcz9hbA;E%g#p7(Bs-`fHC z)D8UcSI_e)@iFmU-@^W!c*{KROu}CfA2#suJ@b4_yxWg_k_P_x-_P?E@e%QP1ApXw z^L(%^jtAz%R}K98*T2L}f2Z$eT<4&=8^Wv%t zkG%0xqjRcVC?Ddp27a3d=lPQSMoieQ&(X=p27HfT03SE-)0fQi1ABMp zlL>ry3)Y{A{AB}w#I5uGg7}3GpfMMH9cpJYN%E5nng)JI(Xa_mGdjH}dheYUt12^SpB@ z_;?MRKO8pjNA5Szm*h{#pEU7roackv;V+5LoA@K<`J8y~xyZk2;EyaT{u}81#IG;-cio?- z_z>Q&%;bo)O7J{ZCCZ!Yk`tbmU7c(dQG_v*hlCj1rot0nqJtmBQ&J~$sNITiT_+X(fh$j3Vkd?xS#)j0d$&HlHbUe7w-<$N6e zg8bzY{gvI%v*35%PWwwwUwyp+{=^=yPr&cI1NqlW z^iSLU`6T=q`NM4&*Pl)1nl<}1VI2>5J`I2HPUN2perF7PMZCM+;_@-u*QnjkbKoy? zKNI}Ux!?=po$VJ_@7%gS_m$f9o(F$)CGznX={Lup z$87&+;dicrKV78X^s}=2`8oJQ^4Egj`8@cH_;81%_0!$X8s7~5^sA^hS)||ev(NTV zV|}j3UoFya-v26R55;!P&o3i?|7*xU=wDoa%==&7$=&boIOFgq!X9D?qJFUJy!R$Y3%HOP?<97a+!yl4AS)|`=@A2%R z(ysaW75HoNSAySpF7^+zgRuXWT`lY%=I{qs)BN9gY5mFV{#*fnMgDA&e)D`fZ9ku0 z3BP|0&Hr7NmcMUrUsu6jl0Ops&R4;E*CL;S;m5YXIGg#Vp3h%{zaW3j_*cyR+5Z{; z?6=yW>@TXX(%?iF9xfUk*<1wNSlM@{*d^?A_l=e6($-$FjwBK;K8DeUd*oA6iU zcb>8Odb#|~_SI*dpWs{vzyEFIA1%^v*3U^h|8K)zlD`oAP66I4kdNmtu3nQ*Xph%- z;4jD@3VvrR@a}hzPcHCW|4lw)_Upmx;m^rmEz)o1XKDBU>F|fwBmZFc#r4zd{|wsm z=LYy|@@Gr*N4Eb)_|xwqe`k-SEEa>C?S`_$&B>N#yT5d-eG{zXqQY9|=5HuUW4GJD=ac@85!a z(nb2sd>gmNYZ(57{PiOJ=CE#UkJoQ0|NlY$;hsW2e@FQcp9?(KPgC!RJ^!cSFUemm z(!Y~~uY7Im^}z4pkEdz=KS!wdkKotJmaH{<8c0Oy_U#N8~RT>EDs+O|0`j zoqxdZ`~ms<1FNrB%>NE6|6}3L$e%9KZ{|Z{&xe1*Uz5LHqTjKP-_F3F{*mVYUW@CG z$$!G$e(#6h{}cSV;CCJbpAhfvy|{eLdeyP(eF%Q<&&VfOqQBp+_YwFD@@I?moBcOu z_6@AA;{$8p`cdv*kiYZX)%V9)i>^0Cd?fJP{9oBmJD;`T5C4jM(nb2s{28<7|0w#I zk-uJ|-?j5!5BUc*@(-W4`hIf#G5Js0^I?7XEAr<{^k;T|HiX~*8}fIbzqtI(_>NnC zuHJPVeB~DJq&Obsd=|%}{O?-NKh|{S{3f4%YrHsq7s|)^RrmTV@oA~!&GVOkyN);c zL`uJzKfbbF!w*>VjjPx2g*9FrZ~8ygqkpnTf6$|UTFLKB^PyIbm*Kr%>&Dmc`S*L{ z(;oAQzo+w?@vW8pG5lbU^KD8wzQ&(e&%e@qo9QwCP?^8k|DWzL|48XK+q{bkC{KI^7+^J3ng#nL!Yw$hWC{HG<;?q-{9ttSx=H4 z$9GV4WXko{`0HDB`Iz}I zuAC2sPkQ7-<$N&XHKrUd!)Hp~%%4y>f6V;%l-r}pCs*dP8_hRIx&Ex=mHXRf{?y9# z$M}7v-^_<0Wj_t?EBk5qNa;8IA5i+u`cqirT8u0#Wzz6RX`0K$tuLmE!OW<- zD^vPspN3X^)fe}+KRl(Z*R21!GM~Bg{^!0*Wxb}K6H0#{^iKABUA^Y{ZcsVj%<-SP zL&seyUNHOEG+rkENoD@#c!IaS&Tr;_sq`B@RMu>-t z)MI~Udd$D>F`xb(>vcTc{5SgpV@ki_qh9;dW4#?^{$_mL9{J%O^LKXWt)H2)pCiby% zF|!Y|e_6=qvrlBb@Z-w=lrFEYs#mP_9>?eKap8rzHr;_+J!N+v}9rvw5z3)Rl z)qVK9e<1Pe(D@Qm*uG+kUzhTy``u&`-vM9J{cB2z-vE3<`8dmjdLIWqUlaBE68{A7 z&RXCjiGLz^@1y8XD)G-k|6}3{iGLFO?#JM-C4MvTA?5EyLVv!1d~))K62Ce5Q{CYScMlTk^}zdQ!5>Kc7m-g%d@S)#hd(|W{!HSx2VW3h zO8f=LC;9~Z&cQ;xyTI>!61*?*yMeFG{Fitid`A9M;=e`X`zhp8Nc=P5Pl>N3{@LK& zSHkZdBJ}6G$S3(U_)y{p;P=MBClY@P`~~s3#D9;*_Z;{uiGM!w2|okgeVb743&98H zf)6DA2gt`i4}2`~FNWV=2kU1h@%w;xKL>v)@gGAz&ga29hYIz+4E~yUU*ZSBR~h_~ z#J?PT`33N)#Qzfcd+VYvCH$G-%8Eb$@y-lgC(i9Zm$ zdl~pr;{SqtoXf#G!$Q5Ufj?i5_J1V)b>N*2?f*#pe}NB)PbK~?n3hKbQDpz{lHy5AGN8|10v3X#dtd zLf}6De_{L*KMLO64*A3q{~_?{?`Zx@{7&E_@|O~SCit9q=SZR6kAcr$LK9l@6ZAIu&bpksxzN7@!1|DWWK$8K%-x%V%o9mF$_(J|;-K+f5RE`EewADYKh z;5+ns%skHeR(u7s|6g7HKA*ogCz$)UbLWSU!x^OGncmjj~@!7Vy^n z!rU17xNGBa0lzE!=6+-W@#a2b3;12YoBN%`#GCt=E#R&Dsb$0`Yccs)_iHPOH}_#% z;NKDXnESyw$H8mv^R|G0GI(>pIiGlQAGrm*bw9g^cyph+1^lM)oBQRZ#GCuzE#R&D z@fF0I`|K^?H-X>W@2@7_Uz6$Q#^BBU1ijyt$9%0)Bn)=6;$P@#a363-}IrbHC1#cyk}l1-x}XQ0GL{={ZcjzsB{! zV!D5*Pkc(}rM0~{YzXV^t82fuE@jl1@0(?SzLA=B9{|(+Jz9zn05Ahb{ z|8wxwi|}{vB=jZY_@9AKi4Td7IsT{M1L70n1CIX*_~Zq6|0^fn<@kHR*UtlA5nrv# z)H?+}Bi=n3_2wLZH+YBmfcS*te+)i|rW@GkKg@%1`P{yzd=>Ww)5O7J1^KJh-s=iu|*;g5(f*I??s9DGE4N_@ugmx3>R_zU7=j=vau zOngmz!13eY%V)svy&e5=IsQWM3GpHEmBZ9~0eGMIg!r7}&j(-ahJ1436OPZo2gFyz zdmR5c@b#|nyYE1~^&@y4zu@`tT<{_B0r3ULp99_@J|;fp_)mk+cR@ZG@e#*=5`08_ zNxaYTXM?Zaf!D9jJ5jI0@gE28lHVu3e3<=;{$X(f%y59k9i^4 zeL9=toC&{2{*?SN=Xc@H6U@hg_<4QT>2i+qVff3Pkbg~l!1*_ZKc@2;y>|)up8_!shb5@CE#r~KDIe|+K#&c7x6 zDfuJG|4z!E{3-D%=YJ~v{=aGdOa9Z~&m5Zn#7CU}Y4Dfi_ueh^X9WI`{2}o^=ieHB z?_Qe!lK*7*9rEXf=lt8iUy#2t{QLx6^>kXtIT8N+5u88fz6bS|4>0p*Tlk|Hn*YSl z>#gL0bzU(hd&^{PkhArp9{b9F!GNi|6%ag z51>CO@jmB&9{d^k3(0>d{2BRc!*l)@z+aQ!`=HRDx4|EhKP0}KVa7LrKX`=ZzvMpz zeuw-y@fqiT5&S9nE6IN_{Q3RpzdMS0W6u8)_#c%$K+3m&pH3= z;V;QwNd6H1at8U=#D|=J2!4;=KlMH&^ygLZC*%)__c;F>;E&0lNd8yCU)_uRbK-;F zG5voN{O;p0zLn&E1^g-b-4CN)m-D|B{)qem@$CFR0RDjdG4a)JnfxR8bMj}Be}DMv zf1^Jo@j2%|7=DM|k9IyHjPHK%XXN*ZPdNXf@Q37&B>&6d56PbrA9DV~;LpfkNd7_i z^MBF&C*I@y!|(@>$Ncfm6#DZr_#^U%#Mi%J#`g&LQ}QR0e_!}r^5?`Coc~DpEAm&8 z|E2I3|3rV>kD}g`^B)br{{-|WAfBE7htv5a%H~jVAkbh3R%lS`+KPP`B`3K<7$nSm} z^;W-P#`hHXosDV!6VJ~7J>hrA9}}N*{t@^y@@JC&S@7pI`co30aQ;)_ugUM6C5-PL z@Vn&qi4QsdY48V|(EOMDKKupUhbSf9R=m?-O5E%>4Nv z{O)En|0Vwu;CINM5}$GYGvJTNUr7GP!=L{E{jZ6SIsb>@cb<&=y-x}K*$DoK{2}oH z=l=-&A^8)@|2X(v^5?|6od2WnXXLLW|Az1vccMS;r%`Y93ub&%_-pb9#Iy5%1NdX| z$HeEH|19`}KJ-76{OiN-k-sE9;rwUApOW7h6UMg#zrP7xkDB<9^M4Y4e{-7ulK)FM z-znG_{*-u+^M4Bdg#3l%Uk~|*PlUfFzW#4!e8=D~$?u&b^k-f8BNzUV_=5AF1HZQg z`jbfhb>L6$!2HaKPdWc*;E%~)N&dCrPaco_-Or%ji1VKZe?k6$cy|7;1%Lg0TK|dn zIsfP3kDfyFU-GXBe@6b&@SHz`KPSI)t}wn1{2}>$;>({i^XCHioh@npOa6z~Tk(cT zu>sA0;xo>FA?3dp{DtIy5dLy~n*YSdoPV71-y44KJfS}iz+ZJ}{u3W?{)^xb$)8C6 z```~hfa9e(@h<1T1pb=*mE@nj;riSgV&Qr;|38a*tDiCB`!Dd(y5M8tbB_N9cyAr> z8Sx3n{|&sqHu#eGkmJYJUXg#g7I^1#$lv4mE6|^qK40J*BaH7~kWWBQHmOOby;{r3z%UqJW!vpYg_~a36?*Z{K z$A1&~yE}oer2I?xee%cT4>htC|B`r@Mo?`kr3Em|>A->@F+mL@w`Fq5(`QHqGdL!-s5TA1Xo4|VyAbpFM+?f9QoJ8yPW@G@Gm(b6G8?TGNd&DQiSM+(a1><`y&3}6R?h()CKMsF+ z8S>AG&pH44*dIuUcP~W#!BxzB_%i%H@d5EJ$A1g?XVm{n%Kt+6t4nGAlfSx>$>&Sp zQ{qeFbB@0Nd_cVOWz?H+{CaDxm>{*8|Kw-;|3&z-OKAR+Kji%9gAa*MiT5}@1Md)D z5MN)x^yfS1e?_m~BjVZoKL>w)G0lJC3(kKo_=xy$9Q{l={v7Zw@d@z}$6t^9gI%!x zc*L{$e+vHMBAWli`<(x5@Gmo6Gmif*@=q!MO3MFC_{(vc|KyK3 z{~6#D;!ENKj{g97pLpkD)a!Emd%;&O+L{i!c!>OBd3{w3rS5?^rqiQpsR6XH{jKLNZ; zd`^7C@yCNNEwWRIer*?{RQNc5}$DV z;ovjk3*tkL|18!YcVGC!QRKbq`gy?5Z`e`zmcOod0p)ec}`1>o3jwXI}%)e{BH1It}^f#1|aj0iP0I z5ubAWI+V}*;dj4={3DKE8+?5#_<(qyS--X}ib_{1`J}{GUu5e2KK5r~ z;tS$)j{iIS9`QBt3CGvqoo6F|?;Ge($nk#xpFazHNWAlICV%UGPYLnGD-dVF@t-O9 zQ@TG?PQ1BK)B^s;-~-|-;{zduCt|7vjNK4S~|c`Nwpzrg#%CtN7Sg*Y9Hb^Ih;E@ip-U$6NPn^R7XEGOnL{(E7Oy^S?L~dDQec z*U$L6yXV*Q0{P^xLq9|EoBP5o=>NCDN5tpE`&|Ct0$;oq{)%{q=JdNqk`QX!6AfJr*jN>!#0r4gAF~@%ne0>1? z&bLu-!13pS&xrSlcRBtu;6vgg;;U1cdOr<5-yiv;#OECUN$?Tz1@Q^TpAFt6z9v58 z__M$l`yn5%p!v`7DfpQ9kobCpsrO9q9`OnB1;@VweED+ZlM|nE{M*4N#8<>e9Df>k zpLq8>H2*pNRPfax@(GA{IDQ0tN_#8)RX{W%W2M|?qi&hdNG{>gIepCliL zH>bzB_58qxelx#+62o6^iTrEwC!GIS@CotZchS#~cuX@%8acy$65~h<9(M`OoqDfv-13J^}G5#}9(fh>wYnIDTL7 zA@LdU;j5VZ_W|z^UlQ+e{ENZoPeT6ABX{n-qB^$^Ynu8A)=epB!%@!t2)pK=3c`+XAl>_PZL z;#1DQ33!M2g!qW#HwGU)K<6_P?{oZG;EVggSHwFUzb1H(c=vYHn|^ka73X~|Sg+Oq zU)~3QKzz9$(|-rNPkc;##_^Bf^Y7^l{2B2v$3G0dz88E+e8BM!fe(pyzK?n{ZhRjE zpZ^6dmjWr{oVf|1ZE7 zbbpqb_-cJ-J->mDC)4?g1@UY?KZig01M=~Hfc#x9pPzwGe-Az(zS@`R|BcAU-<959 zBc9FYC-8^U@aM$moc|v1?*D*ye~A1Oj=ux>#0MasO3LSM_~YNfACN!i`acQ2{4My5 z_>jxzCgc;HhJ0e;+5X%Ne-_Z^Wr+7!KlqS%|3~Og{ZeMUZl-+b{3wTbHlG{ecaO&P zHY4H-&VK{=^a$_;@e#-0i+r3R^e2__`7ZqB$HCXc`<(xJ@Y!t@YOi@iuiILX1s2p{=5?P=2AZ2hCd*``(xCbasF>n zf4+=-V&Y?t-xB9vg*09P@$>Dm*2C-IcgUX+A8`I}f{!jlKF;09-{tsQ(Vvj|Q%d<< z3xDw?`2Ux)`v8!d+SdSnumXz4jy)C>L^0cUt+AkB!KkQ+Eg&cYYV7E>#Ev}{6bl+V z=v8Au0bA_l>NSc5d-RHcipGLsf3y32VMuoW9C`a5cNKqpeCJFiJCkz8Vt%@lF#prw zP5OX7lKgAv6S9v>FV4?Y);-z3_O2e7rJUpSzK7Gv8sp zDdpb@AKr#O5q-9!FrO*rC*%D1^y2*7j(o-Zls=a7Z-sYnMIZZp%ugWs&(X);3(qfu zUhH!V@(t#D^sbaY0p1JIC!x0_{{`oVk5{Pcb0hMTTad3lz<8q?VgAR%Tl6lyFZtfQ zUx4#t(TnqQE%MWw(I=pHr2K2(ZTgJfl>98rPs%>AuFqA-4=13H`61>fvxNBx;1#`3 zueQUVYxjP04!55JvHdu?uTD_$=f&m7k8VPrh~9cm=yNH&L2rD79!m0?bq?}v=DYOiGs67%@Zos$iRmNB*J6Imz43Sjx;|$jUok(U_oe*P z;oa-d$N2>F<48Wk{CMnR(u?zR8uAV1`}A2X%+DBj?^^Up>0`Mdr5};2? zA4&O#!u$00=a?T~@_(|AhsVpH7yBHHe2e)Wy(8rhhEK0R|AgL@{9ov!_C=pi*Jlv& z1Lmv$VZ7Os!u;EZ%AIDk9jH{FOR-DJ*DS+U*reO zPw3Ofh56qZK05+^tS>P?k>op}k3A556usDIC*+6BcjD08>=Wqv z?121eIL4dNn^OJKg_+9zcqX~ z1bx&TKHq!ed%O2vOQBE1$1BP6tA&dDpRJIum~SyZoGNS&E%2_3K0)3`^3Cw^Vem1% zE%{#X9(_h{NPbiJj>%)f! zBR{1#CBH7bLvMVI@n(++<6Rp*ItckTeJuGk;SG9^K9Kwx@bO^ehxD%GSA#d{6M9SX ztHS#SB42%j@hZu$3~$j}^v(vt^TmJ<1|i?2PaYNKa|QV90Qi7Dl>Bn=A$?5mNxl=j zqR;5#jfFmcV?7*qfAlfuVw{2G|AdeCgLmj%$^Q;-();w5+ zpVAxB{A_@qUpBq*EykNp7Ut(Ccw{{y^3@6r2`&)}oIkss1KlK&RopilBX z8w&lufsY;JtM4#gNAh36oAegFyQGjm8$R6%`7XVZ{Fm@HeLx>BA>@AnAGRPrrne>k zIlQ9J=+jO@ehTk4Bj3z0KfdHYg^!!y9ePvpAHye&@IHO4ggzg_`}7gLEBW`~(+1?H z^h)yY!Q1r4_ZV;Zw{ZQ>JMdvW@@;xs@^f+hkD~YJ)4zoLw~%ktAwQ(|C7-~1weShO zDf$1xCpGZu2aGrVQ|R*=yhU%(yOMtuKCqDQ(ksco44-WYAJB(?2z_3JSM)KxE%`67 z9&gkK`5ArsyO94J@(p_PM{fU;e+J&$0{ITTDftI@{n+O4K7IU~(B~=STl5jVEBPnj z?cT^w>6PT~N1tpnc;hE-|Gx@-rXt^=x9M%kKL#K5LcT|z&KL40!yEJ=y)XGk;Ju#6 zPv}j_KLqb@3a{pI`~OAg6Tw^b7JVT3`{9F4knhr4lK(e+)&oAEPkt8q+yn2>$Ml}$ zC&5P>BR``zBtH>8-U#0O8S|6Q6Z+f@@6kK-zU1$MPc}rpPj5>8PI!wxqK|(P`rH8@ zY=Hcf-j)1q@R$r|ZDG^zrvXpI$iL7=)<`}pG)CG`k3C6 z{3Y-XeMWCc{$hAVZ~lS#iM|o~Tm&Ee5B(i_NAhFgU3#BB`&!7q5Z<7V=wr!W03Uyj zJ}JE``SajCdgD(%exkI^TkHzmJ6 zyhm>+^mbkl`VWLR>1}#b^83IiAEA#&pFJ<+JMcbzNFPgn0K7$?&{PoEXWyEVK^AJIpWZ-zJMQ+i+W4e;>{^f8u14@dH~ z@E*NQZ%Tek_~=38d-T~e!gx1_cj-g=Sn|E#4f=#Wko+d_afCiHv-^tz$$uA4<(5Ljim*(A3nYpeG>XW@;||Q^lDl3a3%jeyh(4-Tay14KDh^dTzVz> zui<_AfIfLrn4j737JW<~N`5AMIthI;dQbA7!w2+cXY{Zo|0%pp@6a2P{|G*th(11j z`h+mv_u)hOh(411Gw=?5O7BblX?R6%bU_bC@=w7>ccZ^eZ%Y12c$eOz&mI@X`vkl} zAJWH?e;hu(3w;v$K=RYzJ$ls@JzU98g*WLfdQ0+C;FCMi$E8=2e+=HI59pI=!u&i6 zZ_&r}q2wpSr+1)FM(;`f5%_@KTn;^K$v+Hl(>wHrjN9^R$*=(8!pc&~#u=tKHg^5fv+ThS+> z4V_V!7kr;AnV@-aS(2vj@CQ@6s#D?*i|PMt(qVA0g!L3?GexkLlClg5MF| zrO)Vn$?pIkk3_z?66Z(qHoQmg(8t4sKHI}5`FeEpuH?6c_vs^gCHZaO(-G*O(uao& zeYS=V=#7=(Y{|F4+w?YlI#kGSgwKvdACKOYd;`2gAJWG|g#0>q_Xy-C^h)v;d^{Xp zt-|rTLjIQU9=%1M9wzwJ;gey=cjn?9pY z_Z9L#g%5W|zPSdRFZqw*qn+R#`gk89|3mnAM|huJN&bC!lRl!i_ZITsgZFnpewz1p z1pf|vV8a{T;o`jnKOH{X9^R%`l79<6r1$8<0YZKPujoVibWg!Q4exG;J_)@k`6uBG zdbK9UyN8fJ72ewx`4+vB{A2JYy-OeNF62J~?{9W8pEKXihv*-zjs8Bpd!x|j7I>FFqF0i?2|iv6 z`6+#PgOGm%yhm@Wjq%!&zaHMCx9QXCh5T#b{Wa0Yqc?RgoXl z+mb&6-lEUw)2oI2)8W%qkZ-Qb?O*c$f)D5&dQ3zu`4<8%oX=ra^v(L406Rj-lR7+;PYMb`@<()k#EzRk{<}~(|h#sMM9rl;4S))-j#e`__Pc9B=k!1J279u zs|_*UaIDa02l(J`tQTj|+mhc7KKl#arS~rs^0$Ex=>vLG@-6W0pU98t-3x^LMtJWJ z_>4Y0U-0$t$?x#yMwlO4^0n|jy+fa#C*;?_r@tZJr}rhlCA>`^(VLRr0zUf{`6+#T zuF$6^yhCqnjPbgX-xNNYk9?b6Nq%E^m)@ff&k_1;2p|7~{E*(3{08tQeL|m}E#$8c zpZtt`)q~G>$*&7<(OdMU`8D7beMTRi zCG=ShKKc>)<|f?!CBF*1LGRF~XA1c%!+Sp<->3H_Z?KOKAJLnV?*^ZI51-PH*z$1!|D zA6bHb8a{a%UiHR!P02q2pFRa|(Ysp;`P1ODC*fWCu#e!Uz(-HO2lR&IC&R~&!^iZ_ z7DE2R@X0jzj6U96@DIYLQ{m0cF+WQ355Q+r;2nCqw~&7yyrTE%{mle_FTC*>@+11V zm*6MCn~%b$^seOZhPNie8(Uz!VNW4HgbyBpx9QVO1%ETV^Dw+e?@0b8c=sXrkUrQ% z$iD&Jdk{XMSCStOpPm7)`e3|v4B9|${7aEhkpru&Sd}N;0=r0gXB+#k3D#sKK)b39|P|n z3-8hUl0OOFJ_bIdHzj`pygC{_p^yI%`W(mpqu^By#_LM{82Dr)yhX1hKN>zb3f`p; ze;4|Ugm*^32lTe&hr=63!pHRKZ$kbM_8$(P(fg7=g#CxXo3)r9Q}Tn^|8RJRKK@nc zvp@R}h4<-Q$?wDdE__6RS1K}O| z_(!3S32zR9_vu~9uM2M-03XpS$*&D>?+>5Shd&5?)`VC4!5fVjuOazm;EjRsHhuKH zkiQgsvJbpR??`@0_}IqhVTJTrCgd-{{y*~gCw(A!1s^)-qna>YOY&di^@h6_yhZQ+ zEUZ^E2i_Y1@6s#D&w{u1gb(P$c|v|d-vd6Tw>GwkZBzSjSkzC&+H-iHrXgZJsHpvpdQ6PRM!n>a#KcEli2z_>hk5l-V-j@7!@FsmmpUxKYw}wx@#Or5sJ8u7y zZ-TczMIVRWlzbiYKY{n@<5@zVE#YnYh~AZaZ}{+IEpKqZ^C;YB0r&bCBGhg@&UZEFJ;}i#~i) z=(84lI)L}T)7z3?6W)FweFFM45%Sl7&t|~K^uFX*g?H#PdQ;7^aR2az z(C2pC4{Ojn^seORBj0-$`98gp{7+n8`Z@TBKK!rHCu9Dz@F~45`ML1PGw{Za7;pNz zkUs}Ljp1#2U-C2IZF-O1l>GnT!>5rS(#Nj}eLjO%^a;Hy`4rxL3i)a$ZvT@11U`Ne z-l7lxBlP(Q-lTWwZOOk6?>~Y3fIfXy$bS#sdJpe+VtQZl@4yF-BR``zCI2jZHVxj~ zncM#>LZ2Akp?BzA$v*{eOhvv=uO$Bjyf+0tq7Ppd`b>jQ9)nNmZOK0hZ_yilx&6N+ zGQCLz?(N9-=TLU@51}n!~68sZNhjDgAc~TNA$_9fexkMaXyHE&7B$ko+F-!PUrD{V`rk z^8MkntKcpA z=%28Ee&2666Q;=?y~v()~fP zE`LSN|8V4I^uClIV}2suPn6$xB=+xy{BQ$q|9f)#m-0*ZL;3V#eizQaiTsE@zFwH0 zH__kW{Z{#XR$~4K@CNgZ0o?wj{I}rq`@d{@F<+s-+r;fZ_fmf8ezg3)GBN)TtWRjJ zkNHWM?~NDc=WX=2d4F7fpPQIJANl@z$hY>w{1{Sx>Ha&HUd;aq`RTgI59p)og#PcM zzs36j^ZWY5{O`GbBd;gVnD0pW?;$_G-_Ue0UNQe0NA!V||332b`zupj{%qu%%s2MNcr7V^ef+%hc>iX8-=;V}Un1Wh%I%-|$v9zt zO81k7^kV)O$Pb1fKcV-e{Esj{F7I#6?^6}?KSzG%BH!AF+rO0mG4k{KXI*+RKSjR7 z{D3~XMwp*Zkniw*-u%8?G5-_fyN98F#(YQ0{}lNP?ib!yv;BXB{PioWFG5=2F`-h;vF_7E8lwZ2PJHJm`%)b@+>A}eN zn4erF%+HsYAD{P+=l6|^`4f+i$3*){$HWL$@}Z` z`{c#`*D!w_?*EzZOZlby_hViEE0OOG#{6XTrj-8;`p4{_uL~gdzm)kKA>Y{_^BEs2 z%ui{(0-s*YzZm)PhRBcTT`B)N^mn-)LcR`ym_HWzCi9I0xIIYurS%!?+*kjC;^)U* zfP8-g^!Mn)V}$wn5&c!ZUW6|HJmjY)@)LSn%Kr)Z`Fa#;kY@Yu0dF(kqEC+&`u_|c zvVXqLMRj^g>;Iq4`S~x-PX)~PrTkynhwE>|y8dS&-|=w%BBM8@{NIruFh5_{L+pPB z^27DH{U6Bff3z?^rS(R9dNKcC9aU!JcIUF^^Eb!x=^`yfB%{UZVMeJQ`Reon0G?{NNkzez@KO8G0G zzdHo|^L2T|{sWM2@_rNNU~d0M3G-84FNj{u-yQiO?>C9)T`Au{e~0T41CM{L=bJcJ8ZxL2>)v3HbrDgy#r&j43jIs#S>@|eiTTaQ4|)GczA@nb;_m!{PCFWbmSNZ<`Fw9RN<(JkU%hwST^S400u^wOlFyE5$OY5Pf^kRN* zmpy*rm)%<8o5JD79`g+;zqCGNzRshVzdZ8e4E+=4 zM?-}9DXmwTuRAH`cSXMc9rCSVm>);VFRh=MuY)P(cSgSbE%F2A$F9)7w4P^7FXk`9 z`JapYjNX;`#Q(Ksy(t5KYy_i1>`QdEj zC-jk&Ut0e*U&mI=pNV|MeCtTek1yprm>=sH%ul|qu9*KB^5ZYjKVZHo<(Jm`jp@bw zPmrJ4*#Bho@%F;}?}z^R`osA;!eai1oFC>pBQQU%lwVp8IbYXU%%6dLb2P7)X1v72#caSMsmGr;X?z&@0JLfsa-|eoP;3 zE%bR5-k{IuZOK0ZZ+1hzISTWWZYAVD4DT-w@6h{_e-J)h4&J9XCI0|?))hXYk6VO3 z_rW{#DZMNCd)dDh^KXpCc$MVufseYNk4>L63wGYll&dB9!0 z{}6a@N#q;HV!XEG4}tfWfVb(>dLjQn`1m=#o}u?8zaP9i5^lmp-f&`ZRL9!;v4*+mf$`_lCj8^ufwP zejUeqIDAHLNxlX?8v<`0hxtiX67si%k6d_%-jnhr3NA#&7 z_@3~=A@C`^FZqq>&p{vKc#PMSyb13fgnXMmUQy_?4!k!Q-lKOV-<_V<(}wg)^2cF& zvj-tRp$}IO`mBU}=Ky$h0>xG#)g9hA3F9>+{{g(c2E0x0OXGbP-dP>q%Y9d&|8#hF zHTaO;l>8g;-m35kebz?e;T~GBJzFubXg() zQFvc#qzd{FXRA zX3~fBmgLVtzTXA;NuDpwj}LFrt5Y#vCFP$EZ+Aw%MV~A!%+DD3a9Mbl-jn=E@X<2x z0llB1SG)D2PJlP)V|qvO9=x|S@-uo<^2fj@OTn9`aeMew=ra=DAC1?04t*f`BjJN* zkniXIOkqBU!y8Y-NAya{Kb-kbz^C-#Cqn0MoLwZy4gP9+}C-m`0LZ1WSy$9gc>2QJM4}eeZhqvfm$?pem(Yy4PH@DY9bfiT`(;Dd?qDSagQo#CCk;f*tq>q~w|c;ha3o8FPU&Hi`5d-SH{ zw`2d?;Y0fDePO)Yu>WoF34JX2t>CkFaJ);Mh1@{$P4H%je2dQn@$ebFA^G*;qqi|XrjH)!dqSUe;LU51@6bn*UlZOM z2k+DSl3yL(WuJ)Nk^Cy~>T2Yt^rqyy!5hps&c-<7cZKmT1Mf}8{Mhua}~j%K9c+_c%OYTdSCKiz`MI5-#iyR9LawIZ!zDY&!!9g zXTaP2FrPksAo+LT)lTRW(OZ*OrSKBZ6I68gLWA5Dih&V%zL|2llQ9lT9%Nd8rL zV_SHSK6+E=^CG-+Gq#_Q-jV$C?B9(1gg%}m^LxX`^y%F~{@w6yFZhh!m;9aZRs*(A^8)0WlE0n#8zbML zkM9!t+{*qN!29&BS(mN$JBog+AB7$9#WeTnJ}NK7bEjM7~X* z-XY{)0`Dw={vN$A`3vEL)4BcAo02~V-gp5%p^tAD`kV=G{{^qc!nu+^72bai-lA8M zKLtL07T%=~Zxi~Q1fTo{AJE&9KOWxU{o^rxdaID{!ACLjGkRb0$G``_!kZT%*OdGy zc=Ks^hdvI4K1ac)Ps023uH=Wqhflyq^h)wBy!$wON*~@L^f`$Ar@{s8u$ z0&mlMlHZ&CAA|Sk4ax7x{*S_k^wG;gpMLP(WcY;Mk^D~dr^2gCkej_E$3ADkXY_{T*M^Vxhc_=pkLU%V z&zkTay+a?|Aow-lLq30f`s8}SFU|h@p-)6_Nd824i$2ZsXAA4YF9C0yhJ52Pj(3*e zJHgun;cfchOTixwpY03p(R(um|2OU@a!-N}>76eG{};SsenM~kPw;=hNBbaOU5@b@ zp9_9Iyfql!qR&#nZ-w#3d&9f*$)|$Pknhn4^wB4Rp9>!xi2Rs7_*n3pqmS>vXY}4j zf}e%_bT4@G3e1o5q2RxO&j!Ie^wtN0Pw5B1`}D^9f`1J@q>t#c_XNKV#_O<8N}s$d z_?M9%?TJ1{!0rDX!M_CW(%baG+k$@s-sAmQ9=$hR@Xy1io1;%i@4O}W=imeSgg%@k z_-B~k9r@}?jMtnf_^05*-tZQEc$eURgLmlNJpWF?KML=!iu@qYzg_ST!@HZo$9ev3 zf`00Qb14R73s z>vJM{CHc7+uXQhcN*^96^cleZlX(5lwHU80`90y|WzgTIPmd7tXQ5AUC-OadU-G+g zer|^k=}pP^hfi*WPw3;}LZ4mXvs>WRbr`QJ`JLg7o8c{bCHc2F|2M(A^x-g}&$h^S zZh#NyZOOla{CGTkOrIVuIRgzDoH1B7Ywu=C6nT z>6OU0`M$-L@=NcJJbE#IZO(sy{E$9%h5p^q-{kwX{C$_0e=FuEx&rx%@9TUizx004 zq8Ia5MSp|&F1;z`uLN&ijy^Gce3&ra<>4d#Jj&=@$#;fN_<2C)joAK`wTRpQf06I=^Iu%%n^OMk@a{X@{^{KVg+8yc|8AI{j6Sf0 z>up|wH<)kUjQO!7e?G34@ZRS3PoHcl{5Z1cOUJ7%9(NY~NaXuZ;q_sDTwC;|Czv9&e9zzH~f4)A?hO z@A7;>e%xQ|Upl|w@H~O&k3+u2^Bwtl2+^0$cSO4U6ObQ1gZWQ&zI6V@;CUCZ&&kLS zcz!28Pb2!$`5;f1KL+_3j}PbPjl}%Y`Kd≥V==p3ln9V~P2t^JNy#dx_phe*8SQ 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

      PMDQQEedJ4=KV9jhFD&T0dzJ56z)ATp z?owY&@ZZrtZrqek7ysNzUxew~AHKNsi#uwrCnWp1Yad?LK4>3!>mxt@kMpN1o%BVS zzWo5;_5KmMUYzour=>f6appgIes#<2c9*Bq#Xon_mtc6bzdt>Bj8t)i4sTSg`lgdaySjoNxR%ah*+{52>$6z}q!xt_?3f6X!o4 z%Rf54jecPvJxofqkMK@+?KhIBjqk)QlWgawLr8rw0dM>ZD^3G_md%62^D}$tc(i=s zCVKuOWv}m4cjp@oAs&&{6W_LogGw}vi$|$|cjbLP8(sj3XRv&33|b~t|MT`6W%}re z?mHFlUro-y*;~QzV3~uwP%>~H6qYTF#7hWxPfxVt`H*-a*1u4Dw<_MB7oU!^w_4D5 z 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 z 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

      tZ&69+a%iDC zsg93%1k^`Ou`e+WXG}RhI#{Jqx>tI)4jgsFJbHA|`_kW>=RWHGxF~0$fFM ze;!H{C%koU)+}02KnySRyL{niHL-@@r`C_%FK9Dg!CZi)T#L8h%9IZOs)#~cDdKQJ z+!yRfbP(CweU&X?C`hHlE#(WiOv1i~mtQ+C#XHWH#E!BKq9fknC=dm>)QSKj>a1l!Er3Zs>z zaTitIhEiz^y5+Ni<$`6*4cBnMkD|1za7~_N^83&xgL!ZwI7;5GYL>wk5Yw-Q+jsv^Bua5(UvUbE?=IjvTLzkc&TV(T`j;bJ5bN8#LX| z)zx^)?`Cc-c}>JM(8n_MZ&;H`-#%O~?iE8pUL&M12`x|Yy+LSBRdeK`ee9`BCbq07 zs(3C}+P69*VR~LM_?{rgtEDGuh`p>tIQAXfQR(i}6L5oV)q)p_a)d8~N!K-Vkq=Yj zvoDA`6f9c=<-1U%sE8QlTD?{U0<#4kwblC~TIBy~+-sVwJ!xg}TNalhI#b`96pyC6 zh+CMI*1~={SuJyL$=czR1tojqt!lhmjZbX`U{@!gET7+B`nC)Xeg> zHxFmBR?512jbnOGHO>64Ho}F~7`vyeWpa!BUKg(l#YMukTv_Amx&X^FUk6}hKZKv8$T57s`3X$+u+J5bM_m+SCx_nhl2DifNSu3ypAE$O0o1@-JJO@P?&i8m5R_jG;B>7G>LrOF0%v zI{px%J&KtlrYvqPJ)?L9=939$*w_mhuL@C=sgA(V@*7X0*;E#bP@7Yx{L(_b*~Z(B z0qnM7sO1Yk3=tIy?qcRcpV-B-e;gUFm5!As(HJ}2`y<*@trQ2`b_~1XI+xhfl+H*u z8BsUTrNxrQiaq;gkdzf-#!{||5_VTgOb;v8pz-ItswN4R>4wx%H4{GWCrK` zS|nLs3K(x`(l12^VK?=4sQ|M(80p0~G7~&GN8R!a zSJNUGgV`E{Y7lz<+|Y<{xs60km-PT8jJaMO$LlRU{vkebl-x%PpS?t<=y2HSx(C+9 z*kE|~qaxpe9=4?iS9ml1%plh(wcg&;kHb2&pX3RBX=3erM3!+JHh|NgUt28KBz@7>{q?+}hsWD2^vzw6Sq_wXreZ+}OAv;Jk+)Jz0i^B z9?Hv7b>%5TK8SYq4;ve(-Pj5J^`XBx^k+l=rO;RZ==^o)XYab)N{M*ZJxa`ZHdGwW+?|$;4uScdw2Kp6W`_mu0?bkMM`GfaOe&FgG9(rw}?>KbR zx4!X3ue$!?_rCsNAA9@<|KsTj)sD+U@PG6hFaFA(+;+=5p7(ceyXx`Z{nlqh`ZJU` zj;G!7>N`I4`Om)OhyUV#zN>ocQ(oy<@(>E-?&sh1nrol=_J=(6n=gLt_*ZWIYNTHi z{CnOzKKa_sFJAeIORxUi3od!qJ&FF($2sRGs`uXW{ja(0qQR#>^MMDw=cn(9@~;jx zdg+`0^Itx7&$DlN^Dn>U8)tv@QO}O_>w^8i{JEDt;jQm~+jA~@=Qn=vaZh{rm6867 z!T%?J^uvFA=lh;{=M&%jvNv4t>o1GsjoS-C`oD+#eC_uidFpll_3rn*@wVT(`h}lA leO07?KKTD{Kl;@hE_};95C7K}z3y3m^WXpb_DC=L{{xDrRAvAG literal 0 HcmV?d00001 diff --git a/mlx/include/MLX42/MLX42_Input.h b/mlx/include/MLX42/MLX42_Input.h new file mode 100644 index 0000000..107a72d --- /dev/null +++ b/mlx/include/MLX42/MLX42_Input.h @@ -0,0 +1,231 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* MLX42_Keys.h :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 02:29:06 by W2Wizard #+# #+# */ +/* Updated: 2022/03/02 16:48:27 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +/** + * These are copied from GLFW. + * + * Any new entries should have the exact same values as defined + * over in the glfw3.h file. + */ + +#ifndef MLX42_INPUT_H +# define MLX42_INPUT_H + +/** + * A key action such as pressing or releasing a key. + * + * @param RELEASE Execute when the key is being released. + * @param PRESS Execute when the key is being pressed. + * @param REPEAT Execute when the key is being held down. + */ +typedef enum action +{ + MLX_RELEASE = 0, + MLX_PRESS = 1, + MLX_REPEAT = 2, +} action_t; + +/** + * Key modifiers, such as shift, control or alt. + * These keys are flags meaning you can combine them to detect + * key combinations such as CTRL + ALT so CTRL | ALT. + * + * @param SHIFT The shift key. + * @param CONTROL The control key. + * @param ALT The alt key. + * @param SUPERKEY The Superkey such as the Windows Key or Command. + * @param CAPSLOCK The capslock key. + * @param NUMLOCK The numlock key. + */ +typedef enum modifier_key +{ + MLX_SHIFT = 0x0001, + MLX_CONTROL = 0x0002, + MLX_ALT = 0x0004, + MLX_SUPERKEY = 0x0008, + MLX_CAPSLOCK = 0x0010, + MLX_NUMLOCK = 0x0020, +} modifier_key_t; + +/** + * The mouse button keycodes. + * @param LEFT The left mouse button. + * @param RIGHT The right mouse button. + * @param MIDDLE The middle mouse button, aka the Scrollwheel. + */ +typedef enum mouse_key +{ + MLX_MOUSE_BUTTON_LEFT = 0, + MLX_MOUSE_BUTTON_RIGHT = 1, + MLX_MOUSE_BUTTON_MIDDLE = 2, +} mouse_key_t; + +/** + * Various mouse/cursor states. + * @param NORMAL Simple visibile default cursor. + * @param HIDDEN The cursor is not rendered, still functions however. + * @param DISABLED The cursor is not rendered, nor is it functional. + */ +typedef enum mouse_mode +{ + MLX_MOUSE_NORMAL = 0x00034001, + MLX_MOUSE_HIDDEN = 0x00034002, + MLX_MOUSE_DISABLED = 0x00034003, +} mouse_mode_t; + +/** + * Various cursors that are standart. + * @param ARROW The regular arrow cursor. + * @param IBEAM The text input I-beam cursor shape. + * @param CROSSHAIR The crosshair shape cursor. + * @param HAND The hand shape cursos. + * @param HRESIZE The horizontal resize arrow shape. + * @param VRESIZE The vertical resize arrow shape. + */ +typedef enum cursor +{ + MLX_CURSOR_ARROW = 0x00036001, + MLX_CURSOR_IBEAM = 0x00036002, + MLX_CURSOR_CROSSHAIR = 0x00036003, + MLX_CURSOR_HAND = 0x00036004, + MLX_CURSOR_HRESIZE = 0x00036005, + MLX_CURSOR_VRESIZE = 0x00036006, +} cursor_t; + +/** + * All sorts of keyboard keycodes. + * + * KP = Keypad. + */ +typedef enum keys +{ + MLX_KEY_SPACE = 32, + MLX_KEY_APOSTROPHE = 39, + MLX_KEY_COMMA = 44, + MLX_KEY_MINUS = 45, + MLX_KEY_PERIOD = 46, + MLX_KEY_SLASH = 47, + MLX_KEY_0 = 48, + MLX_KEY_1 = 49, + MLX_KEY_2 = 50, + MLX_KEY_3 = 51, + MLX_KEY_4 = 52, + MLX_KEY_5 = 53, + MLX_KEY_6 = 54, + MLX_KEY_7 = 55, + MLX_KEY_8 = 56, + MLX_KEY_9 = 57, + MLX_KEY_SEMICOLON = 59, + MLX_KEY_EQUAL = 61, + MLX_KEY_A = 65, + MLX_KEY_B = 66, + MLX_KEY_C = 67, + MLX_KEY_D = 68, + MLX_KEY_E = 69, + MLX_KEY_F = 70, + MLX_KEY_G = 71, + MLX_KEY_H = 72, + MLX_KEY_I = 73, + MLX_KEY_J = 74, + MLX_KEY_K = 75, + MLX_KEY_L = 76, + MLX_KEY_M = 77, + MLX_KEY_N = 78, + MLX_KEY_O = 79, + MLX_KEY_P = 80, + MLX_KEY_Q = 81, + MLX_KEY_R = 82, + MLX_KEY_S = 83, + MLX_KEY_T = 84, + MLX_KEY_U = 85, + MLX_KEY_V = 86, + MLX_KEY_W = 87, + MLX_KEY_X = 88, + MLX_KEY_Y = 89, + MLX_KEY_Z = 90, + MLX_KEY_LEFT_BRACKET = 91, + MLX_KEY_BACKSLASH = 92, + MLX_KEY_RIGHT_BRACKET = 93, + MLX_KEY_GRAVE_ACCENT = 96, + MLX_KEY_ESCAPE = 256, + MLX_KEY_ENTER = 257, + MLX_KEY_TAB = 258, + MLX_KEY_BACKSPACE = 259, + MLX_KEY_INSERT = 260, + MLX_KEY_DELETE = 261, + MLX_KEY_RIGHT = 262, + MLX_KEY_LEFT = 263, + MLX_KEY_DOWN = 264, + MLX_KEY_UP = 265, + MLX_KEY_PAGE_UP = 266, + MLX_KEY_PAGE_DOWN = 267, + MLX_KEY_HOME = 268, + MLX_KEY_END = 269, + MLX_KEY_CAPS_LOCK = 280, + MLX_KEY_SCROLL_LOCK = 281, + MLX_KEY_NUM_LOCK = 282, + MLX_KEY_PRINT_SCREEN = 283, + MLX_KEY_PAUSE = 284, + MLX_KEY_F1 = 290, + MLX_KEY_F2 = 291, + MLX_KEY_F3 = 292, + MLX_KEY_F4 = 293, + MLX_KEY_F5 = 294, + MLX_KEY_F6 = 295, + MLX_KEY_F7 = 296, + MLX_KEY_F8 = 297, + MLX_KEY_F9 = 298, + MLX_KEY_F10 = 299, + MLX_KEY_F11 = 300, + MLX_KEY_F12 = 301, + MLX_KEY_F13 = 302, + MLX_KEY_F14 = 303, + MLX_KEY_F15 = 304, + MLX_KEY_F16 = 305, + MLX_KEY_F17 = 306, + MLX_KEY_F18 = 307, + MLX_KEY_F19 = 308, + MLX_KEY_F20 = 309, + MLX_KEY_F21 = 310, + MLX_KEY_F22 = 311, + MLX_KEY_F23 = 312, + MLX_KEY_F24 = 313, + MLX_KEY_F25 = 314, + MLX_KEY_KP_0 = 320, + MLX_KEY_KP_1 = 321, + MLX_KEY_KP_2 = 322, + MLX_KEY_KP_3 = 323, + MLX_KEY_KP_4 = 324, + MLX_KEY_KP_5 = 325, + MLX_KEY_KP_6 = 326, + MLX_KEY_KP_7 = 327, + MLX_KEY_KP_8 = 328, + MLX_KEY_KP_9 = 329, + MLX_KEY_KP_DECIMAL = 330, + MLX_KEY_KP_DIVIDE = 331, + MLX_KEY_KP_MULTIPLY = 332, + MLX_KEY_KP_SUBTRACT = 333, + MLX_KEY_KP_ADD = 334, + MLX_KEY_KP_ENTER = 335, + MLX_KEY_KP_EQUAL = 336, + MLX_KEY_LEFT_SHIFT = 340, + MLX_KEY_LEFT_CONTROL = 341, + MLX_KEY_LEFT_ALT = 342, + MLX_KEY_LEFT_SUPER = 343, + MLX_KEY_RIGHT_SHIFT = 344, + MLX_KEY_RIGHT_CONTROL = 345, + MLX_KEY_RIGHT_ALT = 346, + MLX_KEY_RIGHT_SUPER = 347, + MLX_KEY_MENU = 348, +} keys_t; + +#endif diff --git a/mlx/include/MLX42/MLX42_Int.h b/mlx/include/MLX42/MLX42_Int.h new file mode 100644 index 0000000..11b0a9a --- /dev/null +++ b/mlx/include/MLX42/MLX42_Int.h @@ -0,0 +1,257 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* MLX42_Int.h :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/27 23:55:34 by W2Wizard #+# #+# */ +/* Updated: 2022/07/21 10:46:43 by sbos ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#ifndef MLX42_INT_H +# define MLX42_INT_H +# define LODEPNG_NO_COMPILE_ALLOCATORS +# include "MLX42/MLX42.h" +# include "lodepng/lodepng.h" +# include "glad/glad.h" +# include "KHR/khrplatform.h" +# if defined(__APPLE__) +# define GL_SILENCE_DEPRECATION +# endif +# include +# include +# include +# include +# if defined(__linux__) +# include +# else +# include +# endif +# if defined(_WIN32) +# include +# else +# include +# endif +# include /* isspace, isprint, ... */ +# include /* strlen, memmove, ... */ +# include /* va_arg, va_end, ... */ +# include /* assert, static_assert, ... */ +# ifndef MLX_SWAP_INTERVAL +# define MLX_SWAP_INTERVAL 1 +# endif +# ifndef MLX_BATCH_SIZE +# define MLX_BATCH_SIZE 12000 +# endif +# define BPP sizeof(int32_t) /* Only support RGBA */ +# define GETLINE_BUFF 1280 +# define MLX_MAX_STRING 512 /* Arbitrary string limit */ +# define MLX_ASSERT(cond, msg) assert(cond && msg); +# define MLX_NONNULL(var) MLX_ASSERT(var, "Value can't be null"); /* Assert instead of attribute */ + +/** + * The shader code is extracted from the shader files + * and converted into a .c file as a single string at + * compile time. This keeps shader files external but + * still integrated into the program letting you use + * the executable anywhere without having to take the + * shaders with you. + * + * Most modern frameworks like .NET do this by having resource files + * instead. + * + * See: https://bit.ly/3LJYG0r + */ + +extern const char* vert_shader; +extern const char* frag_shader; + +// Flag to indicate if the render queue has to be sorted. +extern bool sort_queue; + +// Settings array, use the enum 'key' to get the value. +extern int32_t mlx_settings[MLX_SETTINGS_MAX]; + +//= Types =// + +// A single vertex, identical to the layout in the shader. +typedef struct vertex +{ + float x; + float y; + float z; + float u; + float v; + int8_t tex; +} vertex_t; + +// Layout for linked list. +typedef struct mlx_list +{ + void* content; + struct mlx_list* next; + struct mlx_list* prev; +} mlx_list_t; + +//= Hook structs =// +/** + * There are 2 types of hooks, special and generics. + * + * Specials: Are specific callback functions to a specific action + * such as window resizing or key presses. These are attached to the + * callbacks of glfw. In case MLX itself needs the callback we call + * the specials in that callback since there can only ever be a single + * callback. + * + * Generics: Generics are MLX42 specific hooks and can have multiple + * hooks at the same time, these are executed every frame and can be + * used as an alternative for key presses or animations for instance. + * + * NOTE: Hooks could be achieved with va_args to have any amount + * of args sized functor but we can't/don't want to let the user + * deal with va_args and having to look up what args are what, etc... + * + * We want to keep it straight forward with functors already describing + * what params they have. + */ + +typedef struct mlx_srcoll +{ + void* param; + mlx_scrollfunc func; +} mlx_scroll_t; + +typedef struct mlx_mouse +{ + void* param; + mlx_mousefunc func; +} mlx_mouse_t; + +typedef struct mlx_cursor +{ + void* param; + mlx_cursorfunc func; +} mlx_cursor_t; + +typedef struct mlx_close +{ + void* param; + mlx_closefunc func; +} mlx_close_t; + +typedef struct mlx_resize +{ + void* param; + mlx_resizefunc func; +} mlx_resize_t; + +typedef struct mlx_key +{ + void* param; + mlx_keyfunc func; +} mlx_key_t; + +typedef struct mlx_hook +{ + void* param; + void (*func)(void*); +} mlx_hook_t; + +//= Rendering =// +/** + * For rendering we need to store most of OpenGLs stuff + * such as the vertex array object, vertex buffer object & + * the shader program. As well as hooks and the zdepth level. + * + * Additionally we represent draw calls with a linked list + * queue that point to the image and the index of which instance. + * Again, instances only carry xyz data, so coupled with the image it + * lets us know where to draw a copy of the image. + * + * Texture contexts are kept in a struct alongside the capacity + * of the array of instances, since the array is realloced like a vector. + */ + +// MLX instance context. +typedef struct mlx_ctx +{ + GLuint vao; + GLuint vbo; + GLuint shaderprogram; + + uint32_t initialWidth; + uint32_t initialHeight; + + mlx_list_t* hooks; + mlx_list_t* images; + mlx_list_t* render_queue; + + mlx_scroll_t scroll_hook; + mlx_mouse_t mouse_hook; + mlx_cursor_t cursor_hook; + mlx_key_t key_hook; + mlx_resize_t resize_hook; + mlx_close_t close_hook; + + int32_t zdepth; + int32_t bound_textures[16]; + int32_t batch_size; + vertex_t batch_vertices[MLX_BATCH_SIZE]; +} mlx_ctx_t; + +// Draw call queue entry. +typedef struct draw_queue +{ + mlx_image_t* image; + int32_t instanceid; +} draw_queue_t; + +// Image context. +typedef struct mlx_image_ctx +{ + GLuint texture; + size_t instances_capacity; +} mlx_image_ctx_t; + +//= Functions =// +/** + * All sorts of internal functions shared in the library that + * should not be accessible to the user! No touch! + */ + +//= Linked List Functions =// + +mlx_list_t* mlx_lstnew(void* content); +mlx_list_t* mlx_lstlast(mlx_list_t* lst); +int32_t mlx_lstsize(mlx_list_t* lst); +void mlx_lstclear(mlx_list_t** lst, void (*del)(void*)); +void mlx_lstadd_back(mlx_list_t** lst, mlx_list_t* new); +void mlx_lstadd_front(mlx_list_t** lst, mlx_list_t* new); +mlx_list_t* mlx_lstremove(mlx_list_t** lst, void* value, bool (*comp)(void*, void*)); +void mlx_sort_renderqueue(mlx_list_t** lst); + +//= Misc functions =// + +bool mlx_equal_image(void* lstcontent, void* value); +bool mlx_equal_inst(void* lstcontent, void* value); +void mlx_draw_pixel(uint8_t* pixel, uint32_t color); + +//= Error/log Handling Functions =// + +bool mlx_error(mlx_errno_t val); +bool mlx_freen(int32_t count, ...); + +//= OpenGL Functions =// + +void mlx_update_matrix(const mlx_t* mlx, int32_t width, int32_t height); +void mlx_draw_instance(mlx_ctx_t* mlx, mlx_image_t* img, mlx_instance_t* instance); +void mlx_flush_batch(mlx_ctx_t* mlx); + +// Utils Functions =// + +bool mlx_getline(char** out, size_t* out_size, FILE* file); +uint32_t mlx_rgba_to_mono(uint32_t color); +int32_t mlx_atoi_base(const char* str, int32_t base); +uint64_t mlx_fnv_hash(char* str, size_t len); +#endif diff --git a/mlx/include/glad/glad.h b/mlx/include/glad/glad.h new file mode 100644 index 0000000..cf23d23 --- /dev/null +++ b/mlx/include/glad/glad.h @@ -0,0 +1,5169 @@ +/* + + OpenGL loader generated by glad 0.1.35 on Wed Aug 10 09:50:58 2022. + + Language/Generator: C/C++ + Specification: gl + APIs: gl=4.6 + Profile: compatibility + Extensions: + + Loader: True + Local files: False + Omit khrplatform: False + Reproducible: False + + Commandline: + --profile="compatibility" --api="gl=4.6" --generator="c" --spec="gl" --extensions="" + Online: + https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D4.6 +*/ + + +#ifndef __glad_h_ +#define __glad_h_ + +#ifdef __gl_h_ +#error OpenGL header already included, remove this include, glad already provides it +#endif +#define __gl_h_ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define APIENTRY __stdcall +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif + +#ifndef GLAPIENTRY +#define GLAPIENTRY APIENTRY +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct gladGLversionStruct { + int major; + int minor; +}; + +typedef void* (* GLADloadproc)(const char *name); + +#ifndef GLAPI +# if defined(GLAD_GLAPI_EXPORT) +# if defined(_WIN32) || defined(__CYGWIN__) +# if defined(GLAD_GLAPI_EXPORT_BUILD) +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllexport)) extern +# else +# define GLAPI __declspec(dllexport) extern +# endif +# else +# if defined(__GNUC__) +# define GLAPI __attribute__ ((dllimport)) extern +# else +# define GLAPI __declspec(dllimport) extern +# endif +# endif +# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD) +# define GLAPI __attribute__ ((visibility ("default"))) extern +# else +# define GLAPI extern +# endif +# else +# define GLAPI extern +# endif +#endif + +GLAPI struct gladGLversionStruct GLVersion; + +GLAPI int gladLoadGL(void); + +GLAPI int gladLoadGLLoader(GLADloadproc); + +#include +typedef unsigned int GLenum; +typedef unsigned char GLboolean; +typedef unsigned int GLbitfield; +typedef void GLvoid; +typedef khronos_int8_t GLbyte; +typedef khronos_uint8_t GLubyte; +typedef khronos_int16_t GLshort; +typedef khronos_uint16_t GLushort; +typedef int GLint; +typedef unsigned int GLuint; +typedef khronos_int32_t GLclampx; +typedef int GLsizei; +typedef khronos_float_t GLfloat; +typedef khronos_float_t GLclampf; +typedef double GLdouble; +typedef double GLclampd; +typedef void *GLeglClientBufferEXT; +typedef void *GLeglImageOES; +typedef char GLchar; +typedef char GLcharARB; +#ifdef __APPLE__ +typedef void *GLhandleARB; +#else +typedef unsigned int GLhandleARB; +#endif +typedef khronos_uint16_t GLhalf; +typedef khronos_uint16_t GLhalfARB; +typedef khronos_int32_t GLfixed; +typedef khronos_intptr_t GLintptr; +typedef khronos_intptr_t GLintptrARB; +typedef khronos_ssize_t GLsizeiptr; +typedef khronos_ssize_t GLsizeiptrARB; +typedef khronos_int64_t GLint64; +typedef khronos_int64_t GLint64EXT; +typedef khronos_uint64_t GLuint64; +typedef khronos_uint64_t GLuint64EXT; +typedef struct __GLsync *GLsync; +struct _cl_context; +struct _cl_event; +typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); +typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); +typedef unsigned short GLhalfNV; +typedef GLintptr GLvdpauSurfaceNV; +typedef void (APIENTRY *GLVULKANPROCNV)(void); +#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_QUADS 0x0007 +#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_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_NONE 0 +#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_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_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_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#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_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_VIEWPORT 0x0BA2 +#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_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#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_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +#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_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#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_TEXTURE 0x1702 +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +#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_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +#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_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_REPEAT 0x2901 +#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_ACCUM_BUFFER_BIT 0x00000200 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#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 0xFFFFFFFF +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C +#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_EXP2 0x0801 +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 +#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_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_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_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#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_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#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_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_LOGIC_OP 0x0BF1 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#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_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_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_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_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_COMPONENTS 0x1003 +#define GL_TEXTURE_BORDER 0x1005 +#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_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#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_COLOR_INDEX 0x1900 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +#define GL_BITMAP 0x1A00 +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 +#define GL_S 0x2000 +#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_CLAMP 0x2900 +#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_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_COLOR_LOGIC_OP 0x0BF2 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_INTERNAL_FORMAT 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_DOUBLE 0x140A +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +#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_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF +#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_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +#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_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#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_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_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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 0xFFFFFFFF +#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 0xFFFFFFFFFFFFFFFF +#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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 +#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 +#ifndef GL_VERSION_1_0 +#define GL_VERSION_1_0 1 +GLAPI int GLAD_GL_VERSION_1_0; +typedef void (APIENTRYP PFNGLCULLFACEPROC)(GLenum mode); +GLAPI PFNGLCULLFACEPROC glad_glCullFace; +#define glCullFace glad_glCullFace +typedef void (APIENTRYP PFNGLFRONTFACEPROC)(GLenum mode); +GLAPI PFNGLFRONTFACEPROC glad_glFrontFace; +#define glFrontFace glad_glFrontFace +typedef void (APIENTRYP PFNGLHINTPROC)(GLenum target, GLenum mode); +GLAPI PFNGLHINTPROC glad_glHint; +#define glHint glad_glHint +typedef void (APIENTRYP PFNGLLINEWIDTHPROC)(GLfloat width); +GLAPI PFNGLLINEWIDTHPROC glad_glLineWidth; +#define glLineWidth glad_glLineWidth +typedef void (APIENTRYP PFNGLPOINTSIZEPROC)(GLfloat size); +GLAPI PFNGLPOINTSIZEPROC glad_glPointSize; +#define glPointSize glad_glPointSize +typedef void (APIENTRYP PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode); +GLAPI PFNGLPOLYGONMODEPROC glad_glPolygonMode; +#define glPolygonMode glad_glPolygonMode +typedef void (APIENTRYP PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLSCISSORPROC glad_glScissor; +#define glScissor glad_glScissor +typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param); +GLAPI PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +#define glTexParameterf glad_glTexParameterf +typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +#define glTexParameterfv glad_glTexParameterfv +typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); +GLAPI PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +#define glTexParameteri glad_glTexParameteri +typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +#define glTexParameteriv glad_glTexParameteriv +typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXIMAGE1DPROC glad_glTexImage1D; +#define glTexImage1D glad_glTexImage1D +typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +#define glTexImage2D glad_glTexImage2D +typedef void (APIENTRYP PFNGLDRAWBUFFERPROC)(GLenum buf); +GLAPI PFNGLDRAWBUFFERPROC glad_glDrawBuffer; +#define glDrawBuffer glad_glDrawBuffer +typedef void (APIENTRYP PFNGLCLEARPROC)(GLbitfield mask); +GLAPI PFNGLCLEARPROC glad_glClear; +#define glClear glad_glClear +typedef void (APIENTRYP PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCLEARCOLORPROC glad_glClearColor; +#define glClearColor glad_glClearColor +typedef void (APIENTRYP PFNGLCLEARSTENCILPROC)(GLint s); +GLAPI PFNGLCLEARSTENCILPROC glad_glClearStencil; +#define glClearStencil glad_glClearStencil +typedef void (APIENTRYP PFNGLCLEARDEPTHPROC)(GLdouble depth); +GLAPI PFNGLCLEARDEPTHPROC glad_glClearDepth; +#define glClearDepth glad_glClearDepth +typedef void (APIENTRYP PFNGLSTENCILMASKPROC)(GLuint mask); +GLAPI PFNGLSTENCILMASKPROC glad_glStencilMask; +#define glStencilMask glad_glStencilMask +typedef void (APIENTRYP PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI PFNGLCOLORMASKPROC glad_glColorMask; +#define glColorMask glad_glColorMask +typedef void (APIENTRYP PFNGLDEPTHMASKPROC)(GLboolean flag); +GLAPI PFNGLDEPTHMASKPROC glad_glDepthMask; +#define glDepthMask glad_glDepthMask +typedef void (APIENTRYP PFNGLDISABLEPROC)(GLenum cap); +GLAPI PFNGLDISABLEPROC glad_glDisable; +#define glDisable glad_glDisable +typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap); +GLAPI PFNGLENABLEPROC glad_glEnable; +#define glEnable glad_glEnable +typedef void (APIENTRYP PFNGLFINISHPROC)(void); +GLAPI PFNGLFINISHPROC glad_glFinish; +#define glFinish glad_glFinish +typedef void (APIENTRYP PFNGLFLUSHPROC)(void); +GLAPI PFNGLFLUSHPROC glad_glFlush; +#define glFlush glad_glFlush +typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); +GLAPI PFNGLBLENDFUNCPROC glad_glBlendFunc; +#define glBlendFunc glad_glBlendFunc +typedef void (APIENTRYP PFNGLLOGICOPPROC)(GLenum opcode); +GLAPI PFNGLLOGICOPPROC glad_glLogicOp; +#define glLogicOp glad_glLogicOp +typedef void (APIENTRYP PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask); +GLAPI PFNGLSTENCILFUNCPROC glad_glStencilFunc; +#define glStencilFunc glad_glStencilFunc +typedef void (APIENTRYP PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass); +GLAPI PFNGLSTENCILOPPROC glad_glStencilOp; +#define glStencilOp glad_glStencilOp +typedef void (APIENTRYP PFNGLDEPTHFUNCPROC)(GLenum func); +GLAPI PFNGLDEPTHFUNCPROC glad_glDepthFunc; +#define glDepthFunc glad_glDepthFunc +typedef void (APIENTRYP PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLPIXELSTOREFPROC glad_glPixelStoref; +#define glPixelStoref glad_glPixelStoref +typedef void (APIENTRYP PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param); +GLAPI PFNGLPIXELSTOREIPROC glad_glPixelStorei; +#define glPixelStorei glad_glPixelStorei +typedef void (APIENTRYP PFNGLREADBUFFERPROC)(GLenum src); +GLAPI PFNGLREADBUFFERPROC glad_glReadBuffer; +#define glReadBuffer glad_glReadBuffer +typedef void (APIENTRYP PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); +GLAPI PFNGLREADPIXELSPROC glad_glReadPixels; +#define glReadPixels glad_glReadPixels +typedef void (APIENTRYP PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data); +GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +#define glGetBooleanv glad_glGetBooleanv +typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data); +GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev; +#define glGetDoublev glad_glGetDoublev +typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(void); +GLAPI PFNGLGETERRORPROC glad_glGetError; +#define glGetError glad_glGetError +typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data); +GLAPI PFNGLGETFLOATVPROC glad_glGetFloatv; +#define glGetFloatv glad_glGetFloatv +typedef void (APIENTRYP PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data); +GLAPI PFNGLGETINTEGERVPROC glad_glGetIntegerv; +#define glGetIntegerv glad_glGetIntegerv +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name); +GLAPI PFNGLGETSTRINGPROC glad_glGetString; +#define glGetString glad_glGetString +typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void *pixels); +GLAPI PFNGLGETTEXIMAGEPROC glad_glGetTexImage; +#define glGetTexImage glad_glGetTexImage +typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +#define glGetTexParameterfv glad_glGetTexParameterfv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +#define glGetTexParameteriv glad_glGetTexParameteriv +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; +#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; +#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv +typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap); +GLAPI PFNGLISENABLEDPROC glad_glIsEnabled; +#define glIsEnabled glad_glIsEnabled +typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f); +GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange; +#define glDepthRange glad_glDepthRange +typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLVIEWPORTPROC glad_glViewport; +#define glViewport glad_glViewport +typedef void (APIENTRYP PFNGLNEWLISTPROC)(GLuint list, GLenum mode); +GLAPI PFNGLNEWLISTPROC glad_glNewList; +#define glNewList glad_glNewList +typedef void (APIENTRYP PFNGLENDLISTPROC)(void); +GLAPI PFNGLENDLISTPROC glad_glEndList; +#define glEndList glad_glEndList +typedef void (APIENTRYP PFNGLCALLLISTPROC)(GLuint list); +GLAPI PFNGLCALLLISTPROC glad_glCallList; +#define glCallList glad_glCallList +typedef void (APIENTRYP PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const void *lists); +GLAPI PFNGLCALLLISTSPROC glad_glCallLists; +#define glCallLists glad_glCallLists +typedef void (APIENTRYP PFNGLDELETELISTSPROC)(GLuint list, GLsizei range); +GLAPI PFNGLDELETELISTSPROC glad_glDeleteLists; +#define glDeleteLists glad_glDeleteLists +typedef GLuint (APIENTRYP PFNGLGENLISTSPROC)(GLsizei range); +GLAPI PFNGLGENLISTSPROC glad_glGenLists; +#define glGenLists glad_glGenLists +typedef void (APIENTRYP PFNGLLISTBASEPROC)(GLuint base); +GLAPI PFNGLLISTBASEPROC glad_glListBase; +#define glListBase glad_glListBase +typedef void (APIENTRYP PFNGLBEGINPROC)(GLenum mode); +GLAPI PFNGLBEGINPROC glad_glBegin; +#define glBegin glad_glBegin +typedef void (APIENTRYP PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +GLAPI PFNGLBITMAPPROC glad_glBitmap; +#define glBitmap glad_glBitmap +typedef void (APIENTRYP PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); +GLAPI PFNGLCOLOR3BPROC glad_glColor3b; +#define glColor3b glad_glColor3b +typedef void (APIENTRYP PFNGLCOLOR3BVPROC)(const GLbyte *v); +GLAPI PFNGLCOLOR3BVPROC glad_glColor3bv; +#define glColor3bv glad_glColor3bv +typedef void (APIENTRYP PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); +GLAPI PFNGLCOLOR3DPROC glad_glColor3d; +#define glColor3d glad_glColor3d +typedef void (APIENTRYP PFNGLCOLOR3DVPROC)(const GLdouble *v); +GLAPI PFNGLCOLOR3DVPROC glad_glColor3dv; +#define glColor3dv glad_glColor3dv +typedef void (APIENTRYP PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); +GLAPI PFNGLCOLOR3FPROC glad_glColor3f; +#define glColor3f glad_glColor3f +typedef void (APIENTRYP PFNGLCOLOR3FVPROC)(const GLfloat *v); +GLAPI PFNGLCOLOR3FVPROC glad_glColor3fv; +#define glColor3fv glad_glColor3fv +typedef void (APIENTRYP PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue); +GLAPI PFNGLCOLOR3IPROC glad_glColor3i; +#define glColor3i glad_glColor3i +typedef void (APIENTRYP PFNGLCOLOR3IVPROC)(const GLint *v); +GLAPI PFNGLCOLOR3IVPROC glad_glColor3iv; +#define glColor3iv glad_glColor3iv +typedef void (APIENTRYP PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); +GLAPI PFNGLCOLOR3SPROC glad_glColor3s; +#define glColor3s glad_glColor3s +typedef void (APIENTRYP PFNGLCOLOR3SVPROC)(const GLshort *v); +GLAPI PFNGLCOLOR3SVPROC glad_glColor3sv; +#define glColor3sv glad_glColor3sv +typedef void (APIENTRYP PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); +GLAPI PFNGLCOLOR3UBPROC glad_glColor3ub; +#define glColor3ub glad_glColor3ub +typedef void (APIENTRYP PFNGLCOLOR3UBVPROC)(const GLubyte *v); +GLAPI PFNGLCOLOR3UBVPROC glad_glColor3ubv; +#define glColor3ubv glad_glColor3ubv +typedef void (APIENTRYP PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); +GLAPI PFNGLCOLOR3UIPROC glad_glColor3ui; +#define glColor3ui glad_glColor3ui +typedef void (APIENTRYP PFNGLCOLOR3UIVPROC)(const GLuint *v); +GLAPI PFNGLCOLOR3UIVPROC glad_glColor3uiv; +#define glColor3uiv glad_glColor3uiv +typedef void (APIENTRYP PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); +GLAPI PFNGLCOLOR3USPROC glad_glColor3us; +#define glColor3us glad_glColor3us +typedef void (APIENTRYP PFNGLCOLOR3USVPROC)(const GLushort *v); +GLAPI PFNGLCOLOR3USVPROC glad_glColor3usv; +#define glColor3usv glad_glColor3usv +typedef void (APIENTRYP PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +GLAPI PFNGLCOLOR4BPROC glad_glColor4b; +#define glColor4b glad_glColor4b +typedef void (APIENTRYP PFNGLCOLOR4BVPROC)(const GLbyte *v); +GLAPI PFNGLCOLOR4BVPROC glad_glColor4bv; +#define glColor4bv glad_glColor4bv +typedef void (APIENTRYP PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +GLAPI PFNGLCOLOR4DPROC glad_glColor4d; +#define glColor4d glad_glColor4d +typedef void (APIENTRYP PFNGLCOLOR4DVPROC)(const GLdouble *v); +GLAPI PFNGLCOLOR4DVPROC glad_glColor4dv; +#define glColor4dv glad_glColor4dv +typedef void (APIENTRYP PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCOLOR4FPROC glad_glColor4f; +#define glColor4f glad_glColor4f +typedef void (APIENTRYP PFNGLCOLOR4FVPROC)(const GLfloat *v); +GLAPI PFNGLCOLOR4FVPROC glad_glColor4fv; +#define glColor4fv glad_glColor4fv +typedef void (APIENTRYP PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha); +GLAPI PFNGLCOLOR4IPROC glad_glColor4i; +#define glColor4i glad_glColor4i +typedef void (APIENTRYP PFNGLCOLOR4IVPROC)(const GLint *v); +GLAPI PFNGLCOLOR4IVPROC glad_glColor4iv; +#define glColor4iv glad_glColor4iv +typedef void (APIENTRYP PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha); +GLAPI PFNGLCOLOR4SPROC glad_glColor4s; +#define glColor4s glad_glColor4s +typedef void (APIENTRYP PFNGLCOLOR4SVPROC)(const GLshort *v); +GLAPI PFNGLCOLOR4SVPROC glad_glColor4sv; +#define glColor4sv glad_glColor4sv +typedef void (APIENTRYP PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +GLAPI PFNGLCOLOR4UBPROC glad_glColor4ub; +#define glColor4ub glad_glColor4ub +typedef void (APIENTRYP PFNGLCOLOR4UBVPROC)(const GLubyte *v); +GLAPI PFNGLCOLOR4UBVPROC glad_glColor4ubv; +#define glColor4ubv glad_glColor4ubv +typedef void (APIENTRYP PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha); +GLAPI PFNGLCOLOR4UIPROC glad_glColor4ui; +#define glColor4ui glad_glColor4ui +typedef void (APIENTRYP PFNGLCOLOR4UIVPROC)(const GLuint *v); +GLAPI PFNGLCOLOR4UIVPROC glad_glColor4uiv; +#define glColor4uiv glad_glColor4uiv +typedef void (APIENTRYP PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha); +GLAPI PFNGLCOLOR4USPROC glad_glColor4us; +#define glColor4us glad_glColor4us +typedef void (APIENTRYP PFNGLCOLOR4USVPROC)(const GLushort *v); +GLAPI PFNGLCOLOR4USVPROC glad_glColor4usv; +#define glColor4usv glad_glColor4usv +typedef void (APIENTRYP PFNGLEDGEFLAGPROC)(GLboolean flag); +GLAPI PFNGLEDGEFLAGPROC glad_glEdgeFlag; +#define glEdgeFlag glad_glEdgeFlag +typedef void (APIENTRYP PFNGLEDGEFLAGVPROC)(const GLboolean *flag); +GLAPI PFNGLEDGEFLAGVPROC glad_glEdgeFlagv; +#define glEdgeFlagv glad_glEdgeFlagv +typedef void (APIENTRYP PFNGLENDPROC)(void); +GLAPI PFNGLENDPROC glad_glEnd; +#define glEnd glad_glEnd +typedef void (APIENTRYP PFNGLINDEXDPROC)(GLdouble c); +GLAPI PFNGLINDEXDPROC glad_glIndexd; +#define glIndexd glad_glIndexd +typedef void (APIENTRYP PFNGLINDEXDVPROC)(const GLdouble *c); +GLAPI PFNGLINDEXDVPROC glad_glIndexdv; +#define glIndexdv glad_glIndexdv +typedef void (APIENTRYP PFNGLINDEXFPROC)(GLfloat c); +GLAPI PFNGLINDEXFPROC glad_glIndexf; +#define glIndexf glad_glIndexf +typedef void (APIENTRYP PFNGLINDEXFVPROC)(const GLfloat *c); +GLAPI PFNGLINDEXFVPROC glad_glIndexfv; +#define glIndexfv glad_glIndexfv +typedef void (APIENTRYP PFNGLINDEXIPROC)(GLint c); +GLAPI PFNGLINDEXIPROC glad_glIndexi; +#define glIndexi glad_glIndexi +typedef void (APIENTRYP PFNGLINDEXIVPROC)(const GLint *c); +GLAPI PFNGLINDEXIVPROC glad_glIndexiv; +#define glIndexiv glad_glIndexiv +typedef void (APIENTRYP PFNGLINDEXSPROC)(GLshort c); +GLAPI PFNGLINDEXSPROC glad_glIndexs; +#define glIndexs glad_glIndexs +typedef void (APIENTRYP PFNGLINDEXSVPROC)(const GLshort *c); +GLAPI PFNGLINDEXSVPROC glad_glIndexsv; +#define glIndexsv glad_glIndexsv +typedef void (APIENTRYP PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz); +GLAPI PFNGLNORMAL3BPROC glad_glNormal3b; +#define glNormal3b glad_glNormal3b +typedef void (APIENTRYP PFNGLNORMAL3BVPROC)(const GLbyte *v); +GLAPI PFNGLNORMAL3BVPROC glad_glNormal3bv; +#define glNormal3bv glad_glNormal3bv +typedef void (APIENTRYP PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz); +GLAPI PFNGLNORMAL3DPROC glad_glNormal3d; +#define glNormal3d glad_glNormal3d +typedef void (APIENTRYP PFNGLNORMAL3DVPROC)(const GLdouble *v); +GLAPI PFNGLNORMAL3DVPROC glad_glNormal3dv; +#define glNormal3dv glad_glNormal3dv +typedef void (APIENTRYP PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz); +GLAPI PFNGLNORMAL3FPROC glad_glNormal3f; +#define glNormal3f glad_glNormal3f +typedef void (APIENTRYP PFNGLNORMAL3FVPROC)(const GLfloat *v); +GLAPI PFNGLNORMAL3FVPROC glad_glNormal3fv; +#define glNormal3fv glad_glNormal3fv +typedef void (APIENTRYP PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz); +GLAPI PFNGLNORMAL3IPROC glad_glNormal3i; +#define glNormal3i glad_glNormal3i +typedef void (APIENTRYP PFNGLNORMAL3IVPROC)(const GLint *v); +GLAPI PFNGLNORMAL3IVPROC glad_glNormal3iv; +#define glNormal3iv glad_glNormal3iv +typedef void (APIENTRYP PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz); +GLAPI PFNGLNORMAL3SPROC glad_glNormal3s; +#define glNormal3s glad_glNormal3s +typedef void (APIENTRYP PFNGLNORMAL3SVPROC)(const GLshort *v); +GLAPI PFNGLNORMAL3SVPROC glad_glNormal3sv; +#define glNormal3sv glad_glNormal3sv +typedef void (APIENTRYP PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y); +GLAPI PFNGLRASTERPOS2DPROC glad_glRasterPos2d; +#define glRasterPos2d glad_glRasterPos2d +typedef void (APIENTRYP PFNGLRASTERPOS2DVPROC)(const GLdouble *v); +GLAPI PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv; +#define glRasterPos2dv glad_glRasterPos2dv +typedef void (APIENTRYP PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y); +GLAPI PFNGLRASTERPOS2FPROC glad_glRasterPos2f; +#define glRasterPos2f glad_glRasterPos2f +typedef void (APIENTRYP PFNGLRASTERPOS2FVPROC)(const GLfloat *v); +GLAPI PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv; +#define glRasterPos2fv glad_glRasterPos2fv +typedef void (APIENTRYP PFNGLRASTERPOS2IPROC)(GLint x, GLint y); +GLAPI PFNGLRASTERPOS2IPROC glad_glRasterPos2i; +#define glRasterPos2i glad_glRasterPos2i +typedef void (APIENTRYP PFNGLRASTERPOS2IVPROC)(const GLint *v); +GLAPI PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv; +#define glRasterPos2iv glad_glRasterPos2iv +typedef void (APIENTRYP PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y); +GLAPI PFNGLRASTERPOS2SPROC glad_glRasterPos2s; +#define glRasterPos2s glad_glRasterPos2s +typedef void (APIENTRYP PFNGLRASTERPOS2SVPROC)(const GLshort *v); +GLAPI PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv; +#define glRasterPos2sv glad_glRasterPos2sv +typedef void (APIENTRYP PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLRASTERPOS3DPROC glad_glRasterPos3d; +#define glRasterPos3d glad_glRasterPos3d +typedef void (APIENTRYP PFNGLRASTERPOS3DVPROC)(const GLdouble *v); +GLAPI PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv; +#define glRasterPos3dv glad_glRasterPos3dv +typedef void (APIENTRYP PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLRASTERPOS3FPROC glad_glRasterPos3f; +#define glRasterPos3f glad_glRasterPos3f +typedef void (APIENTRYP PFNGLRASTERPOS3FVPROC)(const GLfloat *v); +GLAPI PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv; +#define glRasterPos3fv glad_glRasterPos3fv +typedef void (APIENTRYP PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z); +GLAPI PFNGLRASTERPOS3IPROC glad_glRasterPos3i; +#define glRasterPos3i glad_glRasterPos3i +typedef void (APIENTRYP PFNGLRASTERPOS3IVPROC)(const GLint *v); +GLAPI PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv; +#define glRasterPos3iv glad_glRasterPos3iv +typedef void (APIENTRYP PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z); +GLAPI PFNGLRASTERPOS3SPROC glad_glRasterPos3s; +#define glRasterPos3s glad_glRasterPos3s +typedef void (APIENTRYP PFNGLRASTERPOS3SVPROC)(const GLshort *v); +GLAPI PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv; +#define glRasterPos3sv glad_glRasterPos3sv +typedef void (APIENTRYP PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLRASTERPOS4DPROC glad_glRasterPos4d; +#define glRasterPos4d glad_glRasterPos4d +typedef void (APIENTRYP PFNGLRASTERPOS4DVPROC)(const GLdouble *v); +GLAPI PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv; +#define glRasterPos4dv glad_glRasterPos4dv +typedef void (APIENTRYP PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI PFNGLRASTERPOS4FPROC glad_glRasterPos4f; +#define glRasterPos4f glad_glRasterPos4f +typedef void (APIENTRYP PFNGLRASTERPOS4FVPROC)(const GLfloat *v); +GLAPI PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv; +#define glRasterPos4fv glad_glRasterPos4fv +typedef void (APIENTRYP PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w); +GLAPI PFNGLRASTERPOS4IPROC glad_glRasterPos4i; +#define glRasterPos4i glad_glRasterPos4i +typedef void (APIENTRYP PFNGLRASTERPOS4IVPROC)(const GLint *v); +GLAPI PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv; +#define glRasterPos4iv glad_glRasterPos4iv +typedef void (APIENTRYP PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI PFNGLRASTERPOS4SPROC glad_glRasterPos4s; +#define glRasterPos4s glad_glRasterPos4s +typedef void (APIENTRYP PFNGLRASTERPOS4SVPROC)(const GLshort *v); +GLAPI PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv; +#define glRasterPos4sv glad_glRasterPos4sv +typedef void (APIENTRYP PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +GLAPI PFNGLRECTDPROC glad_glRectd; +#define glRectd glad_glRectd +typedef void (APIENTRYP PFNGLRECTDVPROC)(const GLdouble *v1, const GLdouble *v2); +GLAPI PFNGLRECTDVPROC glad_glRectdv; +#define glRectdv glad_glRectdv +typedef void (APIENTRYP PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +GLAPI PFNGLRECTFPROC glad_glRectf; +#define glRectf glad_glRectf +typedef void (APIENTRYP PFNGLRECTFVPROC)(const GLfloat *v1, const GLfloat *v2); +GLAPI PFNGLRECTFVPROC glad_glRectfv; +#define glRectfv glad_glRectfv +typedef void (APIENTRYP PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2); +GLAPI PFNGLRECTIPROC glad_glRecti; +#define glRecti glad_glRecti +typedef void (APIENTRYP PFNGLRECTIVPROC)(const GLint *v1, const GLint *v2); +GLAPI PFNGLRECTIVPROC glad_glRectiv; +#define glRectiv glad_glRectiv +typedef void (APIENTRYP PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2); +GLAPI PFNGLRECTSPROC glad_glRects; +#define glRects glad_glRects +typedef void (APIENTRYP PFNGLRECTSVPROC)(const GLshort *v1, const GLshort *v2); +GLAPI PFNGLRECTSVPROC glad_glRectsv; +#define glRectsv glad_glRectsv +typedef void (APIENTRYP PFNGLTEXCOORD1DPROC)(GLdouble s); +GLAPI PFNGLTEXCOORD1DPROC glad_glTexCoord1d; +#define glTexCoord1d glad_glTexCoord1d +typedef void (APIENTRYP PFNGLTEXCOORD1DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv; +#define glTexCoord1dv glad_glTexCoord1dv +typedef void (APIENTRYP PFNGLTEXCOORD1FPROC)(GLfloat s); +GLAPI PFNGLTEXCOORD1FPROC glad_glTexCoord1f; +#define glTexCoord1f glad_glTexCoord1f +typedef void (APIENTRYP PFNGLTEXCOORD1FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv; +#define glTexCoord1fv glad_glTexCoord1fv +typedef void (APIENTRYP PFNGLTEXCOORD1IPROC)(GLint s); +GLAPI PFNGLTEXCOORD1IPROC glad_glTexCoord1i; +#define glTexCoord1i glad_glTexCoord1i +typedef void (APIENTRYP PFNGLTEXCOORD1IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv; +#define glTexCoord1iv glad_glTexCoord1iv +typedef void (APIENTRYP PFNGLTEXCOORD1SPROC)(GLshort s); +GLAPI PFNGLTEXCOORD1SPROC glad_glTexCoord1s; +#define glTexCoord1s glad_glTexCoord1s +typedef void (APIENTRYP PFNGLTEXCOORD1SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv; +#define glTexCoord1sv glad_glTexCoord1sv +typedef void (APIENTRYP PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t); +GLAPI PFNGLTEXCOORD2DPROC glad_glTexCoord2d; +#define glTexCoord2d glad_glTexCoord2d +typedef void (APIENTRYP PFNGLTEXCOORD2DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv; +#define glTexCoord2dv glad_glTexCoord2dv +typedef void (APIENTRYP PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t); +GLAPI PFNGLTEXCOORD2FPROC glad_glTexCoord2f; +#define glTexCoord2f glad_glTexCoord2f +typedef void (APIENTRYP PFNGLTEXCOORD2FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv; +#define glTexCoord2fv glad_glTexCoord2fv +typedef void (APIENTRYP PFNGLTEXCOORD2IPROC)(GLint s, GLint t); +GLAPI PFNGLTEXCOORD2IPROC glad_glTexCoord2i; +#define glTexCoord2i glad_glTexCoord2i +typedef void (APIENTRYP PFNGLTEXCOORD2IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv; +#define glTexCoord2iv glad_glTexCoord2iv +typedef void (APIENTRYP PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t); +GLAPI PFNGLTEXCOORD2SPROC glad_glTexCoord2s; +#define glTexCoord2s glad_glTexCoord2s +typedef void (APIENTRYP PFNGLTEXCOORD2SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv; +#define glTexCoord2sv glad_glTexCoord2sv +typedef void (APIENTRYP PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r); +GLAPI PFNGLTEXCOORD3DPROC glad_glTexCoord3d; +#define glTexCoord3d glad_glTexCoord3d +typedef void (APIENTRYP PFNGLTEXCOORD3DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv; +#define glTexCoord3dv glad_glTexCoord3dv +typedef void (APIENTRYP PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r); +GLAPI PFNGLTEXCOORD3FPROC glad_glTexCoord3f; +#define glTexCoord3f glad_glTexCoord3f +typedef void (APIENTRYP PFNGLTEXCOORD3FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv; +#define glTexCoord3fv glad_glTexCoord3fv +typedef void (APIENTRYP PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r); +GLAPI PFNGLTEXCOORD3IPROC glad_glTexCoord3i; +#define glTexCoord3i glad_glTexCoord3i +typedef void (APIENTRYP PFNGLTEXCOORD3IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv; +#define glTexCoord3iv glad_glTexCoord3iv +typedef void (APIENTRYP PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r); +GLAPI PFNGLTEXCOORD3SPROC glad_glTexCoord3s; +#define glTexCoord3s glad_glTexCoord3s +typedef void (APIENTRYP PFNGLTEXCOORD3SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv; +#define glTexCoord3sv glad_glTexCoord3sv +typedef void (APIENTRYP PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI PFNGLTEXCOORD4DPROC glad_glTexCoord4d; +#define glTexCoord4d glad_glTexCoord4d +typedef void (APIENTRYP PFNGLTEXCOORD4DVPROC)(const GLdouble *v); +GLAPI PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv; +#define glTexCoord4dv glad_glTexCoord4dv +typedef void (APIENTRYP PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI PFNGLTEXCOORD4FPROC glad_glTexCoord4f; +#define glTexCoord4f glad_glTexCoord4f +typedef void (APIENTRYP PFNGLTEXCOORD4FVPROC)(const GLfloat *v); +GLAPI PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv; +#define glTexCoord4fv glad_glTexCoord4fv +typedef void (APIENTRYP PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q); +GLAPI PFNGLTEXCOORD4IPROC glad_glTexCoord4i; +#define glTexCoord4i glad_glTexCoord4i +typedef void (APIENTRYP PFNGLTEXCOORD4IVPROC)(const GLint *v); +GLAPI PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv; +#define glTexCoord4iv glad_glTexCoord4iv +typedef void (APIENTRYP PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI PFNGLTEXCOORD4SPROC glad_glTexCoord4s; +#define glTexCoord4s glad_glTexCoord4s +typedef void (APIENTRYP PFNGLTEXCOORD4SVPROC)(const GLshort *v); +GLAPI PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv; +#define glTexCoord4sv glad_glTexCoord4sv +typedef void (APIENTRYP PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y); +GLAPI PFNGLVERTEX2DPROC glad_glVertex2d; +#define glVertex2d glad_glVertex2d +typedef void (APIENTRYP PFNGLVERTEX2DVPROC)(const GLdouble *v); +GLAPI PFNGLVERTEX2DVPROC glad_glVertex2dv; +#define glVertex2dv glad_glVertex2dv +typedef void (APIENTRYP PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y); +GLAPI PFNGLVERTEX2FPROC glad_glVertex2f; +#define glVertex2f glad_glVertex2f +typedef void (APIENTRYP PFNGLVERTEX2FVPROC)(const GLfloat *v); +GLAPI PFNGLVERTEX2FVPROC glad_glVertex2fv; +#define glVertex2fv glad_glVertex2fv +typedef void (APIENTRYP PFNGLVERTEX2IPROC)(GLint x, GLint y); +GLAPI PFNGLVERTEX2IPROC glad_glVertex2i; +#define glVertex2i glad_glVertex2i +typedef void (APIENTRYP PFNGLVERTEX2IVPROC)(const GLint *v); +GLAPI PFNGLVERTEX2IVPROC glad_glVertex2iv; +#define glVertex2iv glad_glVertex2iv +typedef void (APIENTRYP PFNGLVERTEX2SPROC)(GLshort x, GLshort y); +GLAPI PFNGLVERTEX2SPROC glad_glVertex2s; +#define glVertex2s glad_glVertex2s +typedef void (APIENTRYP PFNGLVERTEX2SVPROC)(const GLshort *v); +GLAPI PFNGLVERTEX2SVPROC glad_glVertex2sv; +#define glVertex2sv glad_glVertex2sv +typedef void (APIENTRYP PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLVERTEX3DPROC glad_glVertex3d; +#define glVertex3d glad_glVertex3d +typedef void (APIENTRYP PFNGLVERTEX3DVPROC)(const GLdouble *v); +GLAPI PFNGLVERTEX3DVPROC glad_glVertex3dv; +#define glVertex3dv glad_glVertex3dv +typedef void (APIENTRYP PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLVERTEX3FPROC glad_glVertex3f; +#define glVertex3f glad_glVertex3f +typedef void (APIENTRYP PFNGLVERTEX3FVPROC)(const GLfloat *v); +GLAPI PFNGLVERTEX3FVPROC glad_glVertex3fv; +#define glVertex3fv glad_glVertex3fv +typedef void (APIENTRYP PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z); +GLAPI PFNGLVERTEX3IPROC glad_glVertex3i; +#define glVertex3i glad_glVertex3i +typedef void (APIENTRYP PFNGLVERTEX3IVPROC)(const GLint *v); +GLAPI PFNGLVERTEX3IVPROC glad_glVertex3iv; +#define glVertex3iv glad_glVertex3iv +typedef void (APIENTRYP PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z); +GLAPI PFNGLVERTEX3SPROC glad_glVertex3s; +#define glVertex3s glad_glVertex3s +typedef void (APIENTRYP PFNGLVERTEX3SVPROC)(const GLshort *v); +GLAPI PFNGLVERTEX3SVPROC glad_glVertex3sv; +#define glVertex3sv glad_glVertex3sv +typedef void (APIENTRYP PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLVERTEX4DPROC glad_glVertex4d; +#define glVertex4d glad_glVertex4d +typedef void (APIENTRYP PFNGLVERTEX4DVPROC)(const GLdouble *v); +GLAPI PFNGLVERTEX4DVPROC glad_glVertex4dv; +#define glVertex4dv glad_glVertex4dv +typedef void (APIENTRYP PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI PFNGLVERTEX4FPROC glad_glVertex4f; +#define glVertex4f glad_glVertex4f +typedef void (APIENTRYP PFNGLVERTEX4FVPROC)(const GLfloat *v); +GLAPI PFNGLVERTEX4FVPROC glad_glVertex4fv; +#define glVertex4fv glad_glVertex4fv +typedef void (APIENTRYP PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w); +GLAPI PFNGLVERTEX4IPROC glad_glVertex4i; +#define glVertex4i glad_glVertex4i +typedef void (APIENTRYP PFNGLVERTEX4IVPROC)(const GLint *v); +GLAPI PFNGLVERTEX4IVPROC glad_glVertex4iv; +#define glVertex4iv glad_glVertex4iv +typedef void (APIENTRYP PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI PFNGLVERTEX4SPROC glad_glVertex4s; +#define glVertex4s glad_glVertex4s +typedef void (APIENTRYP PFNGLVERTEX4SVPROC)(const GLshort *v); +GLAPI PFNGLVERTEX4SVPROC glad_glVertex4sv; +#define glVertex4sv glad_glVertex4sv +typedef void (APIENTRYP PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble *equation); +GLAPI PFNGLCLIPPLANEPROC glad_glClipPlane; +#define glClipPlane glad_glClipPlane +typedef void (APIENTRYP PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode); +GLAPI PFNGLCOLORMATERIALPROC glad_glColorMaterial; +#define glColorMaterial glad_glColorMaterial +typedef void (APIENTRYP PFNGLFOGFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLFOGFPROC glad_glFogf; +#define glFogf glad_glFogf +typedef void (APIENTRYP PFNGLFOGFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLFOGFVPROC glad_glFogfv; +#define glFogfv glad_glFogfv +typedef void (APIENTRYP PFNGLFOGIPROC)(GLenum pname, GLint param); +GLAPI PFNGLFOGIPROC glad_glFogi; +#define glFogi glad_glFogi +typedef void (APIENTRYP PFNGLFOGIVPROC)(GLenum pname, const GLint *params); +GLAPI PFNGLFOGIVPROC glad_glFogiv; +#define glFogiv glad_glFogiv +typedef void (APIENTRYP PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param); +GLAPI PFNGLLIGHTFPROC glad_glLightf; +#define glLightf glad_glLightf +typedef void (APIENTRYP PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat *params); +GLAPI PFNGLLIGHTFVPROC glad_glLightfv; +#define glLightfv glad_glLightfv +typedef void (APIENTRYP PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param); +GLAPI PFNGLLIGHTIPROC glad_glLighti; +#define glLighti glad_glLighti +typedef void (APIENTRYP PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint *params); +GLAPI PFNGLLIGHTIVPROC glad_glLightiv; +#define glLightiv glad_glLightiv +typedef void (APIENTRYP PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLLIGHTMODELFPROC glad_glLightModelf; +#define glLightModelf glad_glLightModelf +typedef void (APIENTRYP PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLLIGHTMODELFVPROC glad_glLightModelfv; +#define glLightModelfv glad_glLightModelfv +typedef void (APIENTRYP PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param); +GLAPI PFNGLLIGHTMODELIPROC glad_glLightModeli; +#define glLightModeli glad_glLightModeli +typedef void (APIENTRYP PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint *params); +GLAPI PFNGLLIGHTMODELIVPROC glad_glLightModeliv; +#define glLightModeliv glad_glLightModeliv +typedef void (APIENTRYP PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern); +GLAPI PFNGLLINESTIPPLEPROC glad_glLineStipple; +#define glLineStipple glad_glLineStipple +typedef void (APIENTRYP PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param); +GLAPI PFNGLMATERIALFPROC glad_glMaterialf; +#define glMaterialf glad_glMaterialf +typedef void (APIENTRYP PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat *params); +GLAPI PFNGLMATERIALFVPROC glad_glMaterialfv; +#define glMaterialfv glad_glMaterialfv +typedef void (APIENTRYP PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param); +GLAPI PFNGLMATERIALIPROC glad_glMateriali; +#define glMateriali glad_glMateriali +typedef void (APIENTRYP PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint *params); +GLAPI PFNGLMATERIALIVPROC glad_glMaterialiv; +#define glMaterialiv glad_glMaterialiv +typedef void (APIENTRYP PFNGLPOLYGONSTIPPLEPROC)(const GLubyte *mask); +GLAPI PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple; +#define glPolygonStipple glad_glPolygonStipple +typedef void (APIENTRYP PFNGLSHADEMODELPROC)(GLenum mode); +GLAPI PFNGLSHADEMODELPROC glad_glShadeModel; +#define glShadeModel glad_glShadeModel +typedef void (APIENTRYP PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param); +GLAPI PFNGLTEXENVFPROC glad_glTexEnvf; +#define glTexEnvf glad_glTexEnvf +typedef void (APIENTRYP PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXENVFVPROC glad_glTexEnvfv; +#define glTexEnvfv glad_glTexEnvfv +typedef void (APIENTRYP PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param); +GLAPI PFNGLTEXENVIPROC glad_glTexEnvi; +#define glTexEnvi glad_glTexEnvi +typedef void (APIENTRYP PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXENVIVPROC glad_glTexEnviv; +#define glTexEnviv glad_glTexEnviv +typedef void (APIENTRYP PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param); +GLAPI PFNGLTEXGENDPROC glad_glTexGend; +#define glTexGend glad_glTexGend +typedef void (APIENTRYP PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble *params); +GLAPI PFNGLTEXGENDVPROC glad_glTexGendv; +#define glTexGendv glad_glTexGendv +typedef void (APIENTRYP PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param); +GLAPI PFNGLTEXGENFPROC glad_glTexGenf; +#define glTexGenf glad_glTexGenf +typedef void (APIENTRYP PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat *params); +GLAPI PFNGLTEXGENFVPROC glad_glTexGenfv; +#define glTexGenfv glad_glTexGenfv +typedef void (APIENTRYP PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param); +GLAPI PFNGLTEXGENIPROC glad_glTexGeni; +#define glTexGeni glad_glTexGeni +typedef void (APIENTRYP PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint *params); +GLAPI PFNGLTEXGENIVPROC glad_glTexGeniv; +#define glTexGeniv glad_glTexGeniv +typedef void (APIENTRYP PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat *buffer); +GLAPI PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer; +#define glFeedbackBuffer glad_glFeedbackBuffer +typedef void (APIENTRYP PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint *buffer); +GLAPI PFNGLSELECTBUFFERPROC glad_glSelectBuffer; +#define glSelectBuffer glad_glSelectBuffer +typedef GLint (APIENTRYP PFNGLRENDERMODEPROC)(GLenum mode); +GLAPI PFNGLRENDERMODEPROC glad_glRenderMode; +#define glRenderMode glad_glRenderMode +typedef void (APIENTRYP PFNGLINITNAMESPROC)(void); +GLAPI PFNGLINITNAMESPROC glad_glInitNames; +#define glInitNames glad_glInitNames +typedef void (APIENTRYP PFNGLLOADNAMEPROC)(GLuint name); +GLAPI PFNGLLOADNAMEPROC glad_glLoadName; +#define glLoadName glad_glLoadName +typedef void (APIENTRYP PFNGLPASSTHROUGHPROC)(GLfloat token); +GLAPI PFNGLPASSTHROUGHPROC glad_glPassThrough; +#define glPassThrough glad_glPassThrough +typedef void (APIENTRYP PFNGLPOPNAMEPROC)(void); +GLAPI PFNGLPOPNAMEPROC glad_glPopName; +#define glPopName glad_glPopName +typedef void (APIENTRYP PFNGLPUSHNAMEPROC)(GLuint name); +GLAPI PFNGLPUSHNAMEPROC glad_glPushName; +#define glPushName glad_glPushName +typedef void (APIENTRYP PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLCLEARACCUMPROC glad_glClearAccum; +#define glClearAccum glad_glClearAccum +typedef void (APIENTRYP PFNGLCLEARINDEXPROC)(GLfloat c); +GLAPI PFNGLCLEARINDEXPROC glad_glClearIndex; +#define glClearIndex glad_glClearIndex +typedef void (APIENTRYP PFNGLINDEXMASKPROC)(GLuint mask); +GLAPI PFNGLINDEXMASKPROC glad_glIndexMask; +#define glIndexMask glad_glIndexMask +typedef void (APIENTRYP PFNGLACCUMPROC)(GLenum op, GLfloat value); +GLAPI PFNGLACCUMPROC glad_glAccum; +#define glAccum glad_glAccum +typedef void (APIENTRYP PFNGLPOPATTRIBPROC)(void); +GLAPI PFNGLPOPATTRIBPROC glad_glPopAttrib; +#define glPopAttrib glad_glPopAttrib +typedef void (APIENTRYP PFNGLPUSHATTRIBPROC)(GLbitfield mask); +GLAPI PFNGLPUSHATTRIBPROC glad_glPushAttrib; +#define glPushAttrib glad_glPushAttrib +typedef void (APIENTRYP PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +GLAPI PFNGLMAP1DPROC glad_glMap1d; +#define glMap1d glad_glMap1d +typedef void (APIENTRYP PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +GLAPI PFNGLMAP1FPROC glad_glMap1f; +#define glMap1f glad_glMap1f +typedef void (APIENTRYP PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +GLAPI PFNGLMAP2DPROC glad_glMap2d; +#define glMap2d glad_glMap2d +typedef void (APIENTRYP PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +GLAPI PFNGLMAP2FPROC glad_glMap2f; +#define glMap2f glad_glMap2f +typedef void (APIENTRYP PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2); +GLAPI PFNGLMAPGRID1DPROC glad_glMapGrid1d; +#define glMapGrid1d glad_glMapGrid1d +typedef void (APIENTRYP PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2); +GLAPI PFNGLMAPGRID1FPROC glad_glMapGrid1f; +#define glMapGrid1f glad_glMapGrid1f +typedef void (APIENTRYP PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +GLAPI PFNGLMAPGRID2DPROC glad_glMapGrid2d; +#define glMapGrid2d glad_glMapGrid2d +typedef void (APIENTRYP PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +GLAPI PFNGLMAPGRID2FPROC glad_glMapGrid2f; +#define glMapGrid2f glad_glMapGrid2f +typedef void (APIENTRYP PFNGLEVALCOORD1DPROC)(GLdouble u); +GLAPI PFNGLEVALCOORD1DPROC glad_glEvalCoord1d; +#define glEvalCoord1d glad_glEvalCoord1d +typedef void (APIENTRYP PFNGLEVALCOORD1DVPROC)(const GLdouble *u); +GLAPI PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv; +#define glEvalCoord1dv glad_glEvalCoord1dv +typedef void (APIENTRYP PFNGLEVALCOORD1FPROC)(GLfloat u); +GLAPI PFNGLEVALCOORD1FPROC glad_glEvalCoord1f; +#define glEvalCoord1f glad_glEvalCoord1f +typedef void (APIENTRYP PFNGLEVALCOORD1FVPROC)(const GLfloat *u); +GLAPI PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv; +#define glEvalCoord1fv glad_glEvalCoord1fv +typedef void (APIENTRYP PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v); +GLAPI PFNGLEVALCOORD2DPROC glad_glEvalCoord2d; +#define glEvalCoord2d glad_glEvalCoord2d +typedef void (APIENTRYP PFNGLEVALCOORD2DVPROC)(const GLdouble *u); +GLAPI PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv; +#define glEvalCoord2dv glad_glEvalCoord2dv +typedef void (APIENTRYP PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v); +GLAPI PFNGLEVALCOORD2FPROC glad_glEvalCoord2f; +#define glEvalCoord2f glad_glEvalCoord2f +typedef void (APIENTRYP PFNGLEVALCOORD2FVPROC)(const GLfloat *u); +GLAPI PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv; +#define glEvalCoord2fv glad_glEvalCoord2fv +typedef void (APIENTRYP PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2); +GLAPI PFNGLEVALMESH1PROC glad_glEvalMesh1; +#define glEvalMesh1 glad_glEvalMesh1 +typedef void (APIENTRYP PFNGLEVALPOINT1PROC)(GLint i); +GLAPI PFNGLEVALPOINT1PROC glad_glEvalPoint1; +#define glEvalPoint1 glad_glEvalPoint1 +typedef void (APIENTRYP PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +GLAPI PFNGLEVALMESH2PROC glad_glEvalMesh2; +#define glEvalMesh2 glad_glEvalMesh2 +typedef void (APIENTRYP PFNGLEVALPOINT2PROC)(GLint i, GLint j); +GLAPI PFNGLEVALPOINT2PROC glad_glEvalPoint2; +#define glEvalPoint2 glad_glEvalPoint2 +typedef void (APIENTRYP PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref); +GLAPI PFNGLALPHAFUNCPROC glad_glAlphaFunc; +#define glAlphaFunc glad_glAlphaFunc +typedef void (APIENTRYP PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor); +GLAPI PFNGLPIXELZOOMPROC glad_glPixelZoom; +#define glPixelZoom glad_glPixelZoom +typedef void (APIENTRYP PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf; +#define glPixelTransferf glad_glPixelTransferf +typedef void (APIENTRYP PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param); +GLAPI PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi; +#define glPixelTransferi glad_glPixelTransferi +typedef void (APIENTRYP PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat *values); +GLAPI PFNGLPIXELMAPFVPROC glad_glPixelMapfv; +#define glPixelMapfv glad_glPixelMapfv +typedef void (APIENTRYP PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint *values); +GLAPI PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv; +#define glPixelMapuiv glad_glPixelMapuiv +typedef void (APIENTRYP PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort *values); +GLAPI PFNGLPIXELMAPUSVPROC glad_glPixelMapusv; +#define glPixelMapusv glad_glPixelMapusv +typedef void (APIENTRYP PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +GLAPI PFNGLCOPYPIXELSPROC glad_glCopyPixels; +#define glCopyPixels glad_glCopyPixels +typedef void (APIENTRYP PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLDRAWPIXELSPROC glad_glDrawPixels; +#define glDrawPixels glad_glDrawPixels +typedef void (APIENTRYP PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble *equation); +GLAPI PFNGLGETCLIPPLANEPROC glad_glGetClipPlane; +#define glGetClipPlane glad_glGetClipPlane +typedef void (APIENTRYP PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat *params); +GLAPI PFNGLGETLIGHTFVPROC glad_glGetLightfv; +#define glGetLightfv glad_glGetLightfv +typedef void (APIENTRYP PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint *params); +GLAPI PFNGLGETLIGHTIVPROC glad_glGetLightiv; +#define glGetLightiv glad_glGetLightiv +typedef void (APIENTRYP PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble *v); +GLAPI PFNGLGETMAPDVPROC glad_glGetMapdv; +#define glGetMapdv glad_glGetMapdv +typedef void (APIENTRYP PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat *v); +GLAPI PFNGLGETMAPFVPROC glad_glGetMapfv; +#define glGetMapfv glad_glGetMapfv +typedef void (APIENTRYP PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint *v); +GLAPI PFNGLGETMAPIVPROC glad_glGetMapiv; +#define glGetMapiv glad_glGetMapiv +typedef void (APIENTRYP PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat *params); +GLAPI PFNGLGETMATERIALFVPROC glad_glGetMaterialfv; +#define glGetMaterialfv glad_glGetMaterialfv +typedef void (APIENTRYP PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint *params); +GLAPI PFNGLGETMATERIALIVPROC glad_glGetMaterialiv; +#define glGetMaterialiv glad_glGetMaterialiv +typedef void (APIENTRYP PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat *values); +GLAPI PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv; +#define glGetPixelMapfv glad_glGetPixelMapfv +typedef void (APIENTRYP PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint *values); +GLAPI PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv; +#define glGetPixelMapuiv glad_glGetPixelMapuiv +typedef void (APIENTRYP PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort *values); +GLAPI PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv; +#define glGetPixelMapusv glad_glGetPixelMapusv +typedef void (APIENTRYP PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte *mask); +GLAPI PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple; +#define glGetPolygonStipple glad_glGetPolygonStipple +typedef void (APIENTRYP PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv; +#define glGetTexEnvfv glad_glGetTexEnvfv +typedef void (APIENTRYP PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXENVIVPROC glad_glGetTexEnviv; +#define glGetTexEnviv glad_glGetTexEnviv +typedef void (APIENTRYP PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble *params); +GLAPI PFNGLGETTEXGENDVPROC glad_glGetTexGendv; +#define glGetTexGendv glad_glGetTexGendv +typedef void (APIENTRYP PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXGENFVPROC glad_glGetTexGenfv; +#define glGetTexGenfv glad_glGetTexGenfv +typedef void (APIENTRYP PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXGENIVPROC glad_glGetTexGeniv; +#define glGetTexGeniv glad_glGetTexGeniv +typedef GLboolean (APIENTRYP PFNGLISLISTPROC)(GLuint list); +GLAPI PFNGLISLISTPROC glad_glIsList; +#define glIsList glad_glIsList +typedef void (APIENTRYP PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI PFNGLFRUSTUMPROC glad_glFrustum; +#define glFrustum glad_glFrustum +typedef void (APIENTRYP PFNGLLOADIDENTITYPROC)(void); +GLAPI PFNGLLOADIDENTITYPROC glad_glLoadIdentity; +#define glLoadIdentity glad_glLoadIdentity +typedef void (APIENTRYP PFNGLLOADMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLLOADMATRIXFPROC glad_glLoadMatrixf; +#define glLoadMatrixf glad_glLoadMatrixf +typedef void (APIENTRYP PFNGLLOADMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLLOADMATRIXDPROC glad_glLoadMatrixd; +#define glLoadMatrixd glad_glLoadMatrixd +typedef void (APIENTRYP PFNGLMATRIXMODEPROC)(GLenum mode); +GLAPI PFNGLMATRIXMODEPROC glad_glMatrixMode; +#define glMatrixMode glad_glMatrixMode +typedef void (APIENTRYP PFNGLMULTMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLMULTMATRIXFPROC glad_glMultMatrixf; +#define glMultMatrixf glad_glMultMatrixf +typedef void (APIENTRYP PFNGLMULTMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLMULTMATRIXDPROC glad_glMultMatrixd; +#define glMultMatrixd glad_glMultMatrixd +typedef void (APIENTRYP PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +GLAPI PFNGLORTHOPROC glad_glOrtho; +#define glOrtho glad_glOrtho +typedef void (APIENTRYP PFNGLPOPMATRIXPROC)(void); +GLAPI PFNGLPOPMATRIXPROC glad_glPopMatrix; +#define glPopMatrix glad_glPopMatrix +typedef void (APIENTRYP PFNGLPUSHMATRIXPROC)(void); +GLAPI PFNGLPUSHMATRIXPROC glad_glPushMatrix; +#define glPushMatrix glad_glPushMatrix +typedef void (APIENTRYP PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLROTATEDPROC glad_glRotated; +#define glRotated glad_glRotated +typedef void (APIENTRYP PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLROTATEFPROC glad_glRotatef; +#define glRotatef glad_glRotatef +typedef void (APIENTRYP PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLSCALEDPROC glad_glScaled; +#define glScaled glad_glScaled +typedef void (APIENTRYP PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLSCALEFPROC glad_glScalef; +#define glScalef glad_glScalef +typedef void (APIENTRYP PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLTRANSLATEDPROC glad_glTranslated; +#define glTranslated glad_glTranslated +typedef void (APIENTRYP PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLTRANSLATEFPROC glad_glTranslatef; +#define glTranslatef glad_glTranslatef +#endif +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 +GLAPI int GLAD_GL_VERSION_1_1; +typedef void (APIENTRYP PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); +GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays; +#define glDrawArrays glad_glDrawArrays +typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices); +GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements; +#define glDrawElements glad_glDrawElements +typedef void (APIENTRYP PFNGLGETPOINTERVPROC)(GLenum pname, void **params); +GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv; +#define glGetPointerv glad_glGetPointerv +typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); +GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +#define glPolygonOffset glad_glPolygonOffset +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; +#define glCopyTexImage1D glad_glCopyTexImage1D +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +#define glCopyTexImage2D glad_glCopyTexImage2D +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; +#define glCopyTexSubImage1D glad_glCopyTexSubImage1D +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +#define glCopyTexSubImage2D glad_glCopyTexSubImage2D +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; +#define glTexSubImage1D glad_glTexSubImage1D +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +#define glTexSubImage2D glad_glTexSubImage2D +typedef void (APIENTRYP PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); +GLAPI PFNGLBINDTEXTUREPROC glad_glBindTexture; +#define glBindTexture glad_glBindTexture +typedef void (APIENTRYP PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures); +GLAPI PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +#define glDeleteTextures glad_glDeleteTextures +typedef void (APIENTRYP PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures); +GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures; +#define glGenTextures glad_glGenTextures +typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture); +GLAPI PFNGLISTEXTUREPROC glad_glIsTexture; +#define glIsTexture glad_glIsTexture +typedef void (APIENTRYP PFNGLARRAYELEMENTPROC)(GLint i); +GLAPI PFNGLARRAYELEMENTPROC glad_glArrayElement; +#define glArrayElement glad_glArrayElement +typedef void (APIENTRYP PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLCOLORPOINTERPROC glad_glColorPointer; +#define glColorPointer glad_glColorPointer +typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEPROC)(GLenum array); +GLAPI PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState; +#define glDisableClientState glad_glDisableClientState +typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const void *pointer); +GLAPI PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer; +#define glEdgeFlagPointer glad_glEdgeFlagPointer +typedef void (APIENTRYP PFNGLENABLECLIENTSTATEPROC)(GLenum array); +GLAPI PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState; +#define glEnableClientState glad_glEnableClientState +typedef void (APIENTRYP PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLINDEXPOINTERPROC glad_glIndexPointer; +#define glIndexPointer glad_glIndexPointer +typedef void (APIENTRYP PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const void *pointer); +GLAPI PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays; +#define glInterleavedArrays glad_glInterleavedArrays +typedef void (APIENTRYP PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLNORMALPOINTERPROC glad_glNormalPointer; +#define glNormalPointer glad_glNormalPointer +typedef void (APIENTRYP PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer; +#define glTexCoordPointer glad_glTexCoordPointer +typedef void (APIENTRYP PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXPOINTERPROC glad_glVertexPointer; +#define glVertexPointer glad_glVertexPointer +typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences); +GLAPI PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident; +#define glAreTexturesResident glad_glAreTexturesResident +typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint *textures, const GLfloat *priorities); +GLAPI PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures; +#define glPrioritizeTextures glad_glPrioritizeTextures +typedef void (APIENTRYP PFNGLINDEXUBPROC)(GLubyte c); +GLAPI PFNGLINDEXUBPROC glad_glIndexub; +#define glIndexub glad_glIndexub +typedef void (APIENTRYP PFNGLINDEXUBVPROC)(const GLubyte *c); +GLAPI PFNGLINDEXUBVPROC glad_glIndexubv; +#define glIndexubv glad_glIndexubv +typedef void (APIENTRYP PFNGLPOPCLIENTATTRIBPROC)(void); +GLAPI PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib; +#define glPopClientAttrib glad_glPopClientAttrib +typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask); +GLAPI PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib; +#define glPushClientAttrib glad_glPushClientAttrib +#endif +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +GLAPI int GLAD_GL_VERSION_1_2; +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); +GLAPI PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; +#define glDrawRangeElements glad_glDrawRangeElements +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); +GLAPI PFNGLTEXIMAGE3DPROC glad_glTexImage3D; +#define glTexImage3D glad_glTexImage3D +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); +GLAPI PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; +#define glTexSubImage3D glad_glTexSubImage3D +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; +#define glCopyTexSubImage3D glad_glCopyTexSubImage3D +#endif +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +GLAPI int GLAD_GL_VERSION_1_3; +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture); +GLAPI PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +#define glActiveTexture glad_glActiveTexture +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); +GLAPI PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +#define glSampleCoverage glad_glSampleCoverage +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; +#define glCompressedTexImage3D glad_glCompressedTexImage3D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +#define glCompressedTexImage2D glad_glCompressedTexImage2D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; +#define glCompressedTexImage1D glad_glCompressedTexImage1D +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); +GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; +#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; +#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img); +GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; +#define glGetCompressedTexImage glad_glGetCompressedTexImage +typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture); +GLAPI PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture; +#define glClientActiveTexture glad_glClientActiveTexture +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s); +GLAPI PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d; +#define glMultiTexCoord1d glad_glMultiTexCoord1d +typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv; +#define glMultiTexCoord1dv glad_glMultiTexCoord1dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s); +GLAPI PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f; +#define glMultiTexCoord1f glad_glMultiTexCoord1f +typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv; +#define glMultiTexCoord1fv glad_glMultiTexCoord1fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s); +GLAPI PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i; +#define glMultiTexCoord1i glad_glMultiTexCoord1i +typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv; +#define glMultiTexCoord1iv glad_glMultiTexCoord1iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s); +GLAPI PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s; +#define glMultiTexCoord1s glad_glMultiTexCoord1s +typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv; +#define glMultiTexCoord1sv glad_glMultiTexCoord1sv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t); +GLAPI PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d; +#define glMultiTexCoord2d glad_glMultiTexCoord2d +typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv; +#define glMultiTexCoord2dv glad_glMultiTexCoord2dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t); +GLAPI PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f; +#define glMultiTexCoord2f glad_glMultiTexCoord2f +typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv; +#define glMultiTexCoord2fv glad_glMultiTexCoord2fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t); +GLAPI PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i; +#define glMultiTexCoord2i glad_glMultiTexCoord2i +typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv; +#define glMultiTexCoord2iv glad_glMultiTexCoord2iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t); +GLAPI PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s; +#define glMultiTexCoord2s glad_glMultiTexCoord2s +typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv; +#define glMultiTexCoord2sv glad_glMultiTexCoord2sv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); +GLAPI PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d; +#define glMultiTexCoord3d glad_glMultiTexCoord3d +typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv; +#define glMultiTexCoord3dv glad_glMultiTexCoord3dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); +GLAPI PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f; +#define glMultiTexCoord3f glad_glMultiTexCoord3f +typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv; +#define glMultiTexCoord3fv glad_glMultiTexCoord3fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r); +GLAPI PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i; +#define glMultiTexCoord3i glad_glMultiTexCoord3i +typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv; +#define glMultiTexCoord3iv glad_glMultiTexCoord3iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r); +GLAPI PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s; +#define glMultiTexCoord3s glad_glMultiTexCoord3s +typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv; +#define glMultiTexCoord3sv glad_glMultiTexCoord3sv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +GLAPI PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d; +#define glMultiTexCoord4d glad_glMultiTexCoord4d +typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble *v); +GLAPI PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv; +#define glMultiTexCoord4dv glad_glMultiTexCoord4dv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +GLAPI PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f; +#define glMultiTexCoord4f glad_glMultiTexCoord4f +typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat *v); +GLAPI PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv; +#define glMultiTexCoord4fv glad_glMultiTexCoord4fv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); +GLAPI PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i; +#define glMultiTexCoord4i glad_glMultiTexCoord4i +typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint *v); +GLAPI PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv; +#define glMultiTexCoord4iv glad_glMultiTexCoord4iv +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +GLAPI PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s; +#define glMultiTexCoord4s glad_glMultiTexCoord4s +typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort *v); +GLAPI PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv; +#define glMultiTexCoord4sv glad_glMultiTexCoord4sv +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf; +#define glLoadTransposeMatrixf glad_glLoadTransposeMatrixf +typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd; +#define glLoadTransposeMatrixd glad_glLoadTransposeMatrixd +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat *m); +GLAPI PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf; +#define glMultTransposeMatrixf glad_glMultTransposeMatrixf +typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble *m); +GLAPI PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd; +#define glMultTransposeMatrixd glad_glMultTransposeMatrixd +#endif +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +GLAPI int GLAD_GL_VERSION_1_4; +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GLAPI PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; +#define glBlendFuncSeparate glad_glBlendFuncSeparate +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +GLAPI PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; +#define glMultiDrawArrays glad_glMultiDrawArrays +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount); +GLAPI PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; +#define glMultiDrawElements glad_glMultiDrawElements +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); +GLAPI PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +#define glPointParameterf glad_glPointParameterf +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params); +GLAPI PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +#define glPointParameterfv glad_glPointParameterfv +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); +GLAPI PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; +#define glPointParameteri glad_glPointParameteri +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params); +GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; +#define glPointParameteriv glad_glPointParameteriv +typedef void (APIENTRYP PFNGLFOGCOORDFPROC)(GLfloat coord); +GLAPI PFNGLFOGCOORDFPROC glad_glFogCoordf; +#define glFogCoordf glad_glFogCoordf +typedef void (APIENTRYP PFNGLFOGCOORDFVPROC)(const GLfloat *coord); +GLAPI PFNGLFOGCOORDFVPROC glad_glFogCoordfv; +#define glFogCoordfv glad_glFogCoordfv +typedef void (APIENTRYP PFNGLFOGCOORDDPROC)(GLdouble coord); +GLAPI PFNGLFOGCOORDDPROC glad_glFogCoordd; +#define glFogCoordd glad_glFogCoordd +typedef void (APIENTRYP PFNGLFOGCOORDDVPROC)(const GLdouble *coord); +GLAPI PFNGLFOGCOORDDVPROC glad_glFogCoorddv; +#define glFogCoorddv glad_glFogCoorddv +typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer; +#define glFogCoordPointer glad_glFogCoordPointer +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); +GLAPI PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b; +#define glSecondaryColor3b glad_glSecondaryColor3b +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte *v); +GLAPI PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv; +#define glSecondaryColor3bv glad_glSecondaryColor3bv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); +GLAPI PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d; +#define glSecondaryColor3d glad_glSecondaryColor3d +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble *v); +GLAPI PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv; +#define glSecondaryColor3dv glad_glSecondaryColor3dv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); +GLAPI PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f; +#define glSecondaryColor3f glad_glSecondaryColor3f +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat *v); +GLAPI PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv; +#define glSecondaryColor3fv glad_glSecondaryColor3fv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue); +GLAPI PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i; +#define glSecondaryColor3i glad_glSecondaryColor3i +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC)(const GLint *v); +GLAPI PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv; +#define glSecondaryColor3iv glad_glSecondaryColor3iv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); +GLAPI PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s; +#define glSecondaryColor3s glad_glSecondaryColor3s +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC)(const GLshort *v); +GLAPI PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv; +#define glSecondaryColor3sv glad_glSecondaryColor3sv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); +GLAPI PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub; +#define glSecondaryColor3ub glad_glSecondaryColor3ub +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte *v); +GLAPI PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv; +#define glSecondaryColor3ubv glad_glSecondaryColor3ubv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); +GLAPI PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui; +#define glSecondaryColor3ui glad_glSecondaryColor3ui +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint *v); +GLAPI PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv; +#define glSecondaryColor3uiv glad_glSecondaryColor3uiv +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); +GLAPI PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us; +#define glSecondaryColor3us glad_glSecondaryColor3us +typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC)(const GLushort *v); +GLAPI PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv; +#define glSecondaryColor3usv glad_glSecondaryColor3usv +typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer; +#define glSecondaryColorPointer glad_glSecondaryColorPointer +typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y); +GLAPI PFNGLWINDOWPOS2DPROC glad_glWindowPos2d; +#define glWindowPos2d glad_glWindowPos2d +typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC)(const GLdouble *v); +GLAPI PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv; +#define glWindowPos2dv glad_glWindowPos2dv +typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y); +GLAPI PFNGLWINDOWPOS2FPROC glad_glWindowPos2f; +#define glWindowPos2f glad_glWindowPos2f +typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC)(const GLfloat *v); +GLAPI PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv; +#define glWindowPos2fv glad_glWindowPos2fv +typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC)(GLint x, GLint y); +GLAPI PFNGLWINDOWPOS2IPROC glad_glWindowPos2i; +#define glWindowPos2i glad_glWindowPos2i +typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC)(const GLint *v); +GLAPI PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv; +#define glWindowPos2iv glad_glWindowPos2iv +typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y); +GLAPI PFNGLWINDOWPOS2SPROC glad_glWindowPos2s; +#define glWindowPos2s glad_glWindowPos2s +typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC)(const GLshort *v); +GLAPI PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv; +#define glWindowPos2sv glad_glWindowPos2sv +typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLWINDOWPOS3DPROC glad_glWindowPos3d; +#define glWindowPos3d glad_glWindowPos3d +typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC)(const GLdouble *v); +GLAPI PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv; +#define glWindowPos3dv glad_glWindowPos3dv +typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLWINDOWPOS3FPROC glad_glWindowPos3f; +#define glWindowPos3f glad_glWindowPos3f +typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC)(const GLfloat *v); +GLAPI PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv; +#define glWindowPos3fv glad_glWindowPos3fv +typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z); +GLAPI PFNGLWINDOWPOS3IPROC glad_glWindowPos3i; +#define glWindowPos3i glad_glWindowPos3i +typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC)(const GLint *v); +GLAPI PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv; +#define glWindowPos3iv glad_glWindowPos3iv +typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z); +GLAPI PFNGLWINDOWPOS3SPROC glad_glWindowPos3s; +#define glWindowPos3s glad_glWindowPos3s +typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC)(const GLshort *v); +GLAPI PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv; +#define glWindowPos3sv glad_glWindowPos3sv +typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor; +#define glBlendColor glad_glBlendColor +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC)(GLenum mode); +GLAPI PFNGLBLENDEQUATIONPROC glad_glBlendEquation; +#define glBlendEquation glad_glBlendEquation +#endif +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +GLAPI int GLAD_GL_VERSION_1_5; +typedef void (APIENTRYP PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids); +GLAPI PFNGLGENQUERIESPROC glad_glGenQueries; +#define glGenQueries glad_glGenQueries +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids); +GLAPI PFNGLDELETEQUERIESPROC glad_glDeleteQueries; +#define glDeleteQueries glad_glDeleteQueries +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC)(GLuint id); +GLAPI PFNGLISQUERYPROC glad_glIsQuery; +#define glIsQuery glad_glIsQuery +typedef void (APIENTRYP PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); +GLAPI PFNGLBEGINQUERYPROC glad_glBeginQuery; +#define glBeginQuery glad_glBeginQuery +typedef void (APIENTRYP PFNGLENDQUERYPROC)(GLenum target); +GLAPI PFNGLENDQUERYPROC glad_glEndQuery; +#define glEndQuery glad_glEndQuery +typedef void (APIENTRYP PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETQUERYIVPROC glad_glGetQueryiv; +#define glGetQueryiv glad_glGetQueryiv +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params); +GLAPI PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; +#define glGetQueryObjectiv glad_glGetQueryObjectiv +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params); +GLAPI PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; +#define glGetQueryObjectuiv glad_glGetQueryObjectuiv +typedef void (APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); +GLAPI PFNGLBINDBUFFERPROC glad_glBindBuffer; +#define glBindBuffer glad_glBindBuffer +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers); +GLAPI PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +#define glDeleteBuffers glad_glDeleteBuffers +typedef void (APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers); +GLAPI PFNGLGENBUFFERSPROC glad_glGenBuffers; +#define glGenBuffers glad_glGenBuffers +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer); +GLAPI PFNGLISBUFFERPROC glad_glIsBuffer; +#define glIsBuffer glad_glIsBuffer +typedef void (APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data, GLenum usage); +GLAPI PFNGLBUFFERDATAPROC glad_glBufferData; +#define glBufferData glad_glBufferData +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +#define glBufferSubData glad_glBufferSubData +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void *data); +GLAPI PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; +#define glGetBufferSubData glad_glGetBufferSubData +typedef void * (APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); +GLAPI PFNGLMAPBUFFERPROC glad_glMapBuffer; +#define glMapBuffer glad_glMapBuffer +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC)(GLenum target); +GLAPI PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; +#define glUnmapBuffer glad_glUnmapBuffer +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +#define glGetBufferParameteriv glad_glGetBufferParameteriv +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void **params); +GLAPI PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; +#define glGetBufferPointerv glad_glGetBufferPointerv +#endif +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +GLAPI int GLAD_GL_VERSION_2_0; +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); +GLAPI PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; +#define glBlendEquationSeparate glad_glBlendEquationSeparate +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs); +GLAPI PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; +#define glDrawBuffers glad_glDrawBuffers +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; +#define glStencilOpSeparate glad_glStencilOpSeparate +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask); +GLAPI PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; +#define glStencilFuncSeparate glad_glStencilFuncSeparate +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask); +GLAPI PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; +#define glStencilMaskSeparate glad_glStencilMaskSeparate +typedef void (APIENTRYP PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); +GLAPI PFNGLATTACHSHADERPROC glad_glAttachShader; +#define glAttachShader glad_glAttachShader +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name); +GLAPI PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; +#define glBindAttribLocation glad_glBindAttribLocation +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader); +GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader; +#define glCompileShader glad_glCompileShader +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)(void); +GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram; +#define glCreateProgram glad_glCreateProgram +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type); +GLAPI PFNGLCREATESHADERPROC glad_glCreateShader; +#define glCreateShader glad_glCreateShader +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC)(GLuint program); +GLAPI PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; +#define glDeleteProgram glad_glDeleteProgram +typedef void (APIENTRYP PFNGLDELETESHADERPROC)(GLuint shader); +GLAPI PFNGLDELETESHADERPROC glad_glDeleteShader; +#define glDeleteShader glad_glDeleteShader +typedef void (APIENTRYP PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); +GLAPI PFNGLDETACHSHADERPROC glad_glDetachShader; +#define glDetachShader glad_glDetachShader +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); +GLAPI PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; +#define glDisableVertexAttribArray glad_glDisableVertexAttribArray +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); +GLAPI PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; +#define glEnableVertexAttribArray glad_glEnableVertexAttribArray +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; +#define glGetActiveAttrib glad_glGetActiveAttrib +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; +#define glGetActiveUniform glad_glGetActiveUniform +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLAPI PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; +#define glGetAttachedShaders glad_glGetAttachedShaders +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; +#define glGetAttribLocation glad_glGetAttribLocation +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params); +GLAPI PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; +#define glGetProgramiv glad_glGetProgramiv +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; +#define glGetProgramInfoLog glad_glGetProgramInfoLog +typedef void (APIENTRYP PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params); +GLAPI PFNGLGETSHADERIVPROC glad_glGetShaderiv; +#define glGetShaderiv glad_glGetShaderiv +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; +#define glGetShaderInfoLog glad_glGetShaderInfoLog +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GLAPI PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; +#define glGetShaderSource glad_glGetShaderSource +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; +#define glGetUniformLocation glad_glGetUniformLocation +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params); +GLAPI PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; +#define glGetUniformfv glad_glGetUniformfv +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params); +GLAPI PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; +#define glGetUniformiv glad_glGetUniformiv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params); +GLAPI PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; +#define glGetVertexAttribdv glad_glGetVertexAttribdv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params); +GLAPI PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; +#define glGetVertexAttribfv glad_glGetVertexAttribfv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params); +GLAPI PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; +#define glGetVertexAttribiv glad_glGetVertexAttribiv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void **pointer); +GLAPI PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; +#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC)(GLuint program); +GLAPI PFNGLISPROGRAMPROC glad_glIsProgram; +#define glIsProgram glad_glIsProgram +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC)(GLuint shader); +GLAPI PFNGLISSHADERPROC glad_glIsShader; +#define glIsShader glad_glIsShader +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC)(GLuint program); +GLAPI PFNGLLINKPROGRAMPROC glad_glLinkProgram; +#define glLinkProgram glad_glLinkProgram +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length); +GLAPI PFNGLSHADERSOURCEPROC glad_glShaderSource; +#define glShaderSource glad_glShaderSource +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC)(GLuint program); +GLAPI PFNGLUSEPROGRAMPROC glad_glUseProgram; +#define glUseProgram glad_glUseProgram +typedef void (APIENTRYP PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); +GLAPI PFNGLUNIFORM1FPROC glad_glUniform1f; +#define glUniform1f glad_glUniform1f +typedef void (APIENTRYP PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); +GLAPI PFNGLUNIFORM2FPROC glad_glUniform2f; +#define glUniform2f glad_glUniform2f +typedef void (APIENTRYP PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI PFNGLUNIFORM3FPROC glad_glUniform3f; +#define glUniform3f glad_glUniform3f +typedef void (APIENTRYP PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI PFNGLUNIFORM4FPROC glad_glUniform4f; +#define glUniform4f glad_glUniform4f +typedef void (APIENTRYP PFNGLUNIFORM1IPROC)(GLint location, GLint v0); +GLAPI PFNGLUNIFORM1IPROC glad_glUniform1i; +#define glUniform1i glad_glUniform1i +typedef void (APIENTRYP PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); +GLAPI PFNGLUNIFORM2IPROC glad_glUniform2i; +#define glUniform2i glad_glUniform2i +typedef void (APIENTRYP PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); +GLAPI PFNGLUNIFORM3IPROC glad_glUniform3i; +#define glUniform3i glad_glUniform3i +typedef void (APIENTRYP PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI PFNGLUNIFORM4IPROC glad_glUniform4i; +#define glUniform4i glad_glUniform4i +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM1FVPROC glad_glUniform1fv; +#define glUniform1fv glad_glUniform1fv +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM2FVPROC glad_glUniform2fv; +#define glUniform2fv glad_glUniform2fv +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM3FVPROC glad_glUniform3fv; +#define glUniform3fv glad_glUniform3fv +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLUNIFORM4FVPROC glad_glUniform4fv; +#define glUniform4fv glad_glUniform4fv +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM1IVPROC glad_glUniform1iv; +#define glUniform1iv glad_glUniform1iv +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM2IVPROC glad_glUniform2iv; +#define glUniform2iv glad_glUniform2iv +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM3IVPROC glad_glUniform3iv; +#define glUniform3iv glad_glUniform3iv +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLUNIFORM4IVPROC glad_glUniform4iv; +#define glUniform4iv glad_glUniform4iv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; +#define glUniformMatrix2fv glad_glUniformMatrix2fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; +#define glUniformMatrix3fv glad_glUniformMatrix3fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; +#define glUniformMatrix4fv glad_glUniformMatrix4fv +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC)(GLuint program); +GLAPI PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; +#define glValidateProgram glad_glValidateProgram +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); +GLAPI PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; +#define glVertexAttrib1d glad_glVertexAttrib1d +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; +#define glVertexAttrib1dv glad_glVertexAttrib1dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); +GLAPI PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; +#define glVertexAttrib1f glad_glVertexAttrib1f +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; +#define glVertexAttrib1fv glad_glVertexAttrib1fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); +GLAPI PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; +#define glVertexAttrib1s glad_glVertexAttrib1s +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; +#define glVertexAttrib1sv glad_glVertexAttrib1sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); +GLAPI PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; +#define glVertexAttrib2d glad_glVertexAttrib2d +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; +#define glVertexAttrib2dv glad_glVertexAttrib2dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); +GLAPI PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; +#define glVertexAttrib2f glad_glVertexAttrib2f +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; +#define glVertexAttrib2fv glad_glVertexAttrib2fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); +GLAPI PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; +#define glVertexAttrib2s glad_glVertexAttrib2s +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; +#define glVertexAttrib2sv glad_glVertexAttrib2sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; +#define glVertexAttrib3d glad_glVertexAttrib3d +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; +#define glVertexAttrib3dv glad_glVertexAttrib3dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; +#define glVertexAttrib3f glad_glVertexAttrib3f +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; +#define glVertexAttrib3fv glad_glVertexAttrib3fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; +#define glVertexAttrib3s glad_glVertexAttrib3s +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; +#define glVertexAttrib3sv glad_glVertexAttrib3sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v); +GLAPI PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; +#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; +#define glVertexAttrib4Niv glad_glVertexAttrib4Niv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; +#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; +#define glVertexAttrib4Nub glad_glVertexAttrib4Nub +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v); +GLAPI PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; +#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; +#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v); +GLAPI PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; +#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v); +GLAPI PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; +#define glVertexAttrib4bv glad_glVertexAttrib4bv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; +#define glVertexAttrib4d glad_glVertexAttrib4d +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; +#define glVertexAttrib4dv glad_glVertexAttrib4dv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; +#define glVertexAttrib4f glad_glVertexAttrib4f +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; +#define glVertexAttrib4fv glad_glVertexAttrib4fv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; +#define glVertexAttrib4iv glad_glVertexAttrib4iv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; +#define glVertexAttrib4s glad_glVertexAttrib4s +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; +#define glVertexAttrib4sv glad_glVertexAttrib4sv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v); +GLAPI PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; +#define glVertexAttrib4ubv glad_glVertexAttrib4ubv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; +#define glVertexAttrib4uiv glad_glVertexAttrib4uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v); +GLAPI PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; +#define glVertexAttrib4usv glad_glVertexAttrib4usv +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; +#define glVertexAttribPointer glad_glVertexAttribPointer +#endif +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +GLAPI int GLAD_GL_VERSION_2_1; +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; +#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; +#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; +#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; +#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; +#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; +#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv +#endif +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +GLAPI int GLAD_GL_VERSION_3_0; +typedef void (APIENTRYP PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GLAPI PFNGLCOLORMASKIPROC glad_glColorMaski; +#define glColorMaski glad_glColorMaski +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data); +GLAPI PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; +#define glGetBooleani_v glad_glGetBooleani_v +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data); +GLAPI PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; +#define glGetIntegeri_v glad_glGetIntegeri_v +typedef void (APIENTRYP PFNGLENABLEIPROC)(GLenum target, GLuint index); +GLAPI PFNGLENABLEIPROC glad_glEnablei; +#define glEnablei glad_glEnablei +typedef void (APIENTRYP PFNGLDISABLEIPROC)(GLenum target, GLuint index); +GLAPI PFNGLDISABLEIPROC glad_glDisablei; +#define glDisablei glad_glDisablei +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC)(GLenum target, GLuint index); +GLAPI PFNGLISENABLEDIPROC glad_glIsEnabledi; +#define glIsEnabledi glad_glIsEnabledi +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); +GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; +#define glBeginTransformFeedback glad_glBeginTransformFeedback +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(void); +GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; +#define glEndTransformFeedback glad_glEndTransformFeedback +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; +#define glBindBufferRange glad_glBindBufferRange +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); +GLAPI PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; +#define glBindBufferBase glad_glBindBufferBase +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const*varyings, GLenum bufferMode); +GLAPI PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; +#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; +#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp); +GLAPI PFNGLCLAMPCOLORPROC glad_glClampColor; +#define glClampColor glad_glClampColor +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); +GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; +#define glBeginConditionalRender glad_glBeginConditionalRender +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(void); +GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; +#define glEndConditionalRender glad_glEndConditionalRender +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; +#define glVertexAttribIPointer glad_glVertexAttribIPointer +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params); +GLAPI PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; +#define glGetVertexAttribIiv glad_glGetVertexAttribIiv +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint *params); +GLAPI PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; +#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x); +GLAPI PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; +#define glVertexAttribI1i glad_glVertexAttribI1i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y); +GLAPI PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; +#define glVertexAttribI2i glad_glVertexAttribI2i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z); +GLAPI PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; +#define glVertexAttribI3i glad_glVertexAttribI3i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; +#define glVertexAttribI4i glad_glVertexAttribI4i +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x); +GLAPI PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; +#define glVertexAttribI1ui glad_glVertexAttribI1ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y); +GLAPI PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; +#define glVertexAttribI2ui glad_glVertexAttribI2ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; +#define glVertexAttribI3ui glad_glVertexAttribI3ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; +#define glVertexAttribI4ui glad_glVertexAttribI4ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; +#define glVertexAttribI1iv glad_glVertexAttribI1iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; +#define glVertexAttribI2iv glad_glVertexAttribI2iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; +#define glVertexAttribI3iv glad_glVertexAttribI3iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; +#define glVertexAttribI4iv glad_glVertexAttribI4iv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; +#define glVertexAttribI1uiv glad_glVertexAttribI1uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; +#define glVertexAttribI2uiv glad_glVertexAttribI2uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; +#define glVertexAttribI3uiv glad_glVertexAttribI3uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v); +GLAPI PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; +#define glVertexAttribI4uiv glad_glVertexAttribI4uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v); +GLAPI PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; +#define glVertexAttribI4bv glad_glVertexAttribI4bv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v); +GLAPI PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; +#define glVertexAttribI4sv glad_glVertexAttribI4sv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v); +GLAPI PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; +#define glVertexAttribI4ubv glad_glVertexAttribI4ubv +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v); +GLAPI PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; +#define glVertexAttribI4usv glad_glVertexAttribI4usv +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params); +GLAPI PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; +#define glGetUniformuiv glad_glGetUniformuiv +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar *name); +GLAPI PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; +#define glBindFragDataLocation glad_glBindFragDataLocation +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; +#define glGetFragDataLocation glad_glGetFragDataLocation +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); +GLAPI PFNGLUNIFORM1UIPROC glad_glUniform1ui; +#define glUniform1ui glad_glUniform1ui +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); +GLAPI PFNGLUNIFORM2UIPROC glad_glUniform2ui; +#define glUniform2ui glad_glUniform2ui +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI PFNGLUNIFORM3UIPROC glad_glUniform3ui; +#define glUniform3ui glad_glUniform3ui +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI PFNGLUNIFORM4UIPROC glad_glUniform4ui; +#define glUniform4ui glad_glUniform4ui +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; +#define glUniform1uiv glad_glUniform1uiv +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; +#define glUniform2uiv glad_glUniform2uiv +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; +#define glUniform3uiv glad_glUniform3uiv +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; +#define glUniform4uiv glad_glUniform4uiv +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint *params); +GLAPI PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; +#define glTexParameterIiv glad_glTexParameterIiv +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint *params); +GLAPI PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; +#define glTexParameterIuiv glad_glTexParameterIuiv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; +#define glGetTexParameterIiv glad_glGetTexParameterIiv +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint *params); +GLAPI PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; +#define glGetTexParameterIuiv glad_glGetTexParameterIuiv +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; +#define glClearBufferiv glad_glClearBufferiv +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; +#define glClearBufferuiv glad_glClearBufferuiv +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; +#define glClearBufferfv glad_glClearBufferfv +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; +#define glClearBufferfi glad_glClearBufferfi +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLuint index); +GLAPI PFNGLGETSTRINGIPROC glad_glGetStringi; +#define glGetStringi glad_glGetStringi +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); +GLAPI PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; +#define glIsRenderbuffer glad_glIsRenderbuffer +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); +GLAPI PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; +#define glBindRenderbuffer glad_glBindRenderbuffer +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers); +GLAPI PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; +#define glDeleteRenderbuffers glad_glDeleteRenderbuffers +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); +GLAPI PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; +#define glGenRenderbuffers glad_glGenRenderbuffers +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; +#define glRenderbufferStorage glad_glRenderbufferStorage +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; +#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); +GLAPI PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; +#define glIsFramebuffer glad_glIsFramebuffer +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); +GLAPI PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; +#define glBindFramebuffer glad_glBindFramebuffer +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers); +GLAPI PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; +#define glDeleteFramebuffers glad_glDeleteFramebuffers +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); +GLAPI PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; +#define glGenFramebuffers glad_glGenFramebuffers +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); +GLAPI PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; +#define glCheckFramebufferStatus glad_glCheckFramebufferStatus +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; +#define glFramebufferTexture1D glad_glFramebufferTexture1D +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; +#define glFramebufferTexture2D glad_glFramebufferTexture2D +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; +#define glFramebufferTexture3D glad_glFramebufferTexture3D +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; +#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; +#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC)(GLenum target); +GLAPI PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; +#define glGenerateMipmap glad_glGenerateMipmap +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; +#define glBlitFramebuffer glad_glBlitFramebuffer +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; +#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; +#define glFramebufferTextureLayer glad_glFramebufferTextureLayer +typedef void * (APIENTRYP PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; +#define glMapBufferRange glad_glMapBufferRange +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); +GLAPI PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; +#define glFlushMappedBufferRange glad_glFlushMappedBufferRange +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC)(GLuint array); +GLAPI PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; +#define glBindVertexArray glad_glBindVertexArray +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays); +GLAPI PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; +#define glDeleteVertexArrays glad_glDeleteVertexArrays +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); +GLAPI PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; +#define glGenVertexArrays glad_glGenVertexArrays +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC)(GLuint array); +GLAPI PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; +#define glIsVertexArray glad_glIsVertexArray +#endif +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +GLAPI int GLAD_GL_VERSION_3_1; +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +GLAPI PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; +#define glDrawArraysInstanced glad_glDrawArraysInstanced +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); +GLAPI PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; +#define glDrawElementsInstanced glad_glDrawElementsInstanced +typedef void (APIENTRYP PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); +GLAPI PFNGLTEXBUFFERPROC glad_glTexBuffer; +#define glTexBuffer glad_glTexBuffer +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); +GLAPI PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; +#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; +#define glCopyBufferSubData glad_glCopyBufferSubData +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const*uniformNames, GLuint *uniformIndices); +GLAPI PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; +#define glGetUniformIndices glad_glGetUniformIndices +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +GLAPI PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; +#define glGetActiveUniformsiv glad_glGetActiveUniformsiv +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +GLAPI PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; +#define glGetActiveUniformName glad_glGetActiveUniformName +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar *uniformBlockName); +GLAPI PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; +#define glGetUniformBlockIndex glad_glGetUniformBlockIndex +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +GLAPI PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; +#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +GLAPI PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; +#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +GLAPI PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; +#define glUniformBlockBinding glad_glUniformBlockBinding +#endif +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +GLAPI int GLAD_GL_VERSION_3_2; +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; +#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); +GLAPI PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; +#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); +GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; +#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount, const GLint *basevertex); +GLAPI PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; +#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC)(GLenum mode); +GLAPI PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; +#define glProvokingVertex glad_glProvokingVertex +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); +GLAPI PFNGLFENCESYNCPROC glad_glFenceSync; +#define glFenceSync glad_glFenceSync +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC)(GLsync sync); +GLAPI PFNGLISSYNCPROC glad_glIsSync; +#define glIsSync glad_glIsSync +typedef void (APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync); +GLAPI PFNGLDELETESYNCPROC glad_glDeleteSync; +#define glDeleteSync glad_glDeleteSync +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; +#define glClientWaitSync glad_glClientWaitSync +typedef void (APIENTRYP PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI PFNGLWAITSYNCPROC glad_glWaitSync; +#define glWaitSync glad_glWaitSync +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data); +GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v; +#define glGetInteger64v glad_glGetInteger64v +typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); +GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv; +#define glGetSynciv glad_glGetSynciv +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data); +GLAPI PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; +#define glGetInteger64i_v glad_glGetInteger64i_v +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 *params); +GLAPI PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; +#define glGetBufferParameteri64v glad_glGetBufferParameteri64v +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); +GLAPI PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; +#define glFramebufferTexture glad_glFramebufferTexture +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; +#define glTexImage2DMultisample glad_glTexImage2DMultisample +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; +#define glTexImage3DMultisample glad_glTexImage3DMultisample +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val); +GLAPI PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; +#define glGetMultisamplefv glad_glGetMultisamplefv +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask); +GLAPI PFNGLSAMPLEMASKIPROC glad_glSampleMaski; +#define glSampleMaski glad_glSampleMaski +#endif +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +GLAPI int GLAD_GL_VERSION_3_3; +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GLAPI PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; +#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed +typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name); +GLAPI PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; +#define glGetFragDataIndex glad_glGetFragDataIndex +typedef void (APIENTRYP PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers); +GLAPI PFNGLGENSAMPLERSPROC glad_glGenSamplers; +#define glGenSamplers glad_glGenSamplers +typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers); +GLAPI PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; +#define glDeleteSamplers glad_glDeleteSamplers +typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC)(GLuint sampler); +GLAPI PFNGLISSAMPLERPROC glad_glIsSampler; +#define glIsSampler glad_glIsSampler +typedef void (APIENTRYP PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); +GLAPI PFNGLBINDSAMPLERPROC glad_glBindSampler; +#define glBindSampler glad_glBindSampler +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); +GLAPI PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; +#define glSamplerParameteri glad_glSamplerParameteri +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint *param); +GLAPI PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; +#define glSamplerParameteriv glad_glSamplerParameteriv +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); +GLAPI PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; +#define glSamplerParameterf glad_glSamplerParameterf +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat *param); +GLAPI PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; +#define glSamplerParameterfv glad_glSamplerParameterfv +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint *param); +GLAPI PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; +#define glSamplerParameterIiv glad_glSamplerParameterIiv +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint *param); +GLAPI PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; +#define glSamplerParameterIuiv glad_glSamplerParameterIuiv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint *params); +GLAPI PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; +#define glGetSamplerParameteriv glad_glGetSamplerParameteriv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint *params); +GLAPI PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; +#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat *params); +GLAPI PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; +#define glGetSamplerParameterfv glad_glGetSamplerParameterfv +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint *params); +GLAPI PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; +#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv +typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); +GLAPI PFNGLQUERYCOUNTERPROC glad_glQueryCounter; +#define glQueryCounter glad_glQueryCounter +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params); +GLAPI PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; +#define glGetQueryObjecti64v glad_glGetQueryObjecti64v +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params); +GLAPI PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; +#define glGetQueryObjectui64v glad_glGetQueryObjectui64v +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); +GLAPI PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; +#define glVertexAttribDivisor glad_glVertexAttribDivisor +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; +#define glVertexAttribP1ui glad_glVertexAttribP1ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; +#define glVertexAttribP1uiv glad_glVertexAttribP1uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; +#define glVertexAttribP2ui glad_glVertexAttribP2ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; +#define glVertexAttribP2uiv glad_glVertexAttribP2uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; +#define glVertexAttribP3ui glad_glVertexAttribP3ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; +#define glVertexAttribP3uiv glad_glVertexAttribP3uiv +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; +#define glVertexAttribP4ui glad_glVertexAttribP4ui +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; +#define glVertexAttribP4uiv glad_glVertexAttribP4uiv +typedef void (APIENTRYP PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value); +GLAPI PFNGLVERTEXP2UIPROC glad_glVertexP2ui; +#define glVertexP2ui glad_glVertexP2ui +typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint *value); +GLAPI PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; +#define glVertexP2uiv glad_glVertexP2uiv +typedef void (APIENTRYP PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value); +GLAPI PFNGLVERTEXP3UIPROC glad_glVertexP3ui; +#define glVertexP3ui glad_glVertexP3ui +typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint *value); +GLAPI PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; +#define glVertexP3uiv glad_glVertexP3uiv +typedef void (APIENTRYP PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value); +GLAPI PFNGLVERTEXP4UIPROC glad_glVertexP4ui; +#define glVertexP4ui glad_glVertexP4ui +typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint *value); +GLAPI PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; +#define glVertexP4uiv glad_glVertexP4uiv +typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; +#define glTexCoordP1ui glad_glTexCoordP1ui +typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; +#define glTexCoordP1uiv glad_glTexCoordP1uiv +typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; +#define glTexCoordP2ui glad_glTexCoordP2ui +typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; +#define glTexCoordP2uiv glad_glTexCoordP2uiv +typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; +#define glTexCoordP3ui glad_glTexCoordP3ui +typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; +#define glTexCoordP3uiv glad_glTexCoordP3uiv +typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; +#define glTexCoordP4ui glad_glTexCoordP4ui +typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; +#define glTexCoordP4uiv glad_glTexCoordP4uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; +#define glMultiTexCoordP1ui glad_glMultiTexCoordP1ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; +#define glMultiTexCoordP1uiv glad_glMultiTexCoordP1uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; +#define glMultiTexCoordP2ui glad_glMultiTexCoordP2ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; +#define glMultiTexCoordP2uiv glad_glMultiTexCoordP2uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; +#define glMultiTexCoordP3ui glad_glMultiTexCoordP3ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; +#define glMultiTexCoordP3uiv glad_glMultiTexCoordP3uiv +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords); +GLAPI PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; +#define glMultiTexCoordP4ui glad_glMultiTexCoordP4ui +typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); +GLAPI PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; +#define glMultiTexCoordP4uiv glad_glMultiTexCoordP4uiv +typedef void (APIENTRYP PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords); +GLAPI PFNGLNORMALP3UIPROC glad_glNormalP3ui; +#define glNormalP3ui glad_glNormalP3ui +typedef void (APIENTRYP PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint *coords); +GLAPI PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; +#define glNormalP3uiv glad_glNormalP3uiv +typedef void (APIENTRYP PFNGLCOLORP3UIPROC)(GLenum type, GLuint color); +GLAPI PFNGLCOLORP3UIPROC glad_glColorP3ui; +#define glColorP3ui glad_glColorP3ui +typedef void (APIENTRYP PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint *color); +GLAPI PFNGLCOLORP3UIVPROC glad_glColorP3uiv; +#define glColorP3uiv glad_glColorP3uiv +typedef void (APIENTRYP PFNGLCOLORP4UIPROC)(GLenum type, GLuint color); +GLAPI PFNGLCOLORP4UIPROC glad_glColorP4ui; +#define glColorP4ui glad_glColorP4ui +typedef void (APIENTRYP PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint *color); +GLAPI PFNGLCOLORP4UIVPROC glad_glColorP4uiv; +#define glColorP4uiv glad_glColorP4uiv +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color); +GLAPI PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; +#define glSecondaryColorP3ui glad_glSecondaryColorP3ui +typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint *color); +GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; +#define glSecondaryColorP3uiv glad_glSecondaryColorP3uiv +#endif +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +GLAPI int GLAD_GL_VERSION_4_0; +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC)(GLfloat value); +GLAPI PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading; +#define glMinSampleShading glad_glMinSampleShading +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode); +GLAPI PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi; +#define glBlendEquationi glad_glBlendEquationi +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei; +#define glBlendEquationSeparatei glad_glBlendEquationSeparatei +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst); +GLAPI PFNGLBLENDFUNCIPROC glad_glBlendFunci; +#define glBlendFunci glad_glBlendFunci +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +GLAPI PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei; +#define glBlendFuncSeparatei glad_glBlendFuncSeparatei +typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect); +GLAPI PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect; +#define glDrawArraysIndirect glad_glDrawArraysIndirect +typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void *indirect); +GLAPI PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect; +#define glDrawElementsIndirect glad_glDrawElementsIndirect +typedef void (APIENTRYP PFNGLUNIFORM1DPROC)(GLint location, GLdouble x); +GLAPI PFNGLUNIFORM1DPROC glad_glUniform1d; +#define glUniform1d glad_glUniform1d +typedef void (APIENTRYP PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y); +GLAPI PFNGLUNIFORM2DPROC glad_glUniform2d; +#define glUniform2d glad_glUniform2d +typedef void (APIENTRYP PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLUNIFORM3DPROC glad_glUniform3d; +#define glUniform3d glad_glUniform3d +typedef void (APIENTRYP PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLUNIFORM4DPROC glad_glUniform4d; +#define glUniform4d glad_glUniform4d +typedef void (APIENTRYP PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM1DVPROC glad_glUniform1dv; +#define glUniform1dv glad_glUniform1dv +typedef void (APIENTRYP PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM2DVPROC glad_glUniform2dv; +#define glUniform2dv glad_glUniform2dv +typedef void (APIENTRYP PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM3DVPROC glad_glUniform3dv; +#define glUniform3dv glad_glUniform3dv +typedef void (APIENTRYP PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLUNIFORM4DVPROC glad_glUniform4dv; +#define glUniform4dv glad_glUniform4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv; +#define glUniformMatrix2dv glad_glUniformMatrix2dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv; +#define glUniformMatrix3dv glad_glUniformMatrix3dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv; +#define glUniformMatrix4dv glad_glUniformMatrix4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv; +#define glUniformMatrix2x3dv glad_glUniformMatrix2x3dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv; +#define glUniformMatrix2x4dv glad_glUniformMatrix2x4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv; +#define glUniformMatrix3x2dv glad_glUniformMatrix3x2dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv; +#define glUniformMatrix3x4dv glad_glUniformMatrix3x4dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv; +#define glUniformMatrix4x2dv glad_glUniformMatrix4x2dv +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv; +#define glUniformMatrix4x3dv glad_glUniformMatrix4x3dv +typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble *params); +GLAPI PFNGLGETUNIFORMDVPROC glad_glGetUniformdv; +#define glGetUniformdv glad_glGetUniformdv +typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar *name); +GLAPI PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation; +#define glGetSubroutineUniformLocation glad_glGetSubroutineUniformLocation +typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar *name); +GLAPI PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex; +#define glGetSubroutineIndex glad_glGetSubroutineIndex +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +GLAPI PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv; +#define glGetActiveSubroutineUniformiv glad_glGetActiveSubroutineUniformiv +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName; +#define glGetActiveSubroutineUniformName glad_glGetActiveSubroutineUniformName +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName; +#define glGetActiveSubroutineName glad_glGetActiveSubroutineName +typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint *indices); +GLAPI PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv; +#define glUniformSubroutinesuiv glad_glUniformSubroutinesuiv +typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint *params); +GLAPI PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv; +#define glGetUniformSubroutineuiv glad_glGetUniformSubroutineuiv +typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint *values); +GLAPI PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv; +#define glGetProgramStageiv glad_glGetProgramStageiv +typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value); +GLAPI PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri; +#define glPatchParameteri glad_glPatchParameteri +typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat *values); +GLAPI PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv; +#define glPatchParameterfv glad_glPatchParameterfv +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id); +GLAPI PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback; +#define glBindTransformFeedback glad_glBindTransformFeedback +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint *ids); +GLAPI PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks; +#define glDeleteTransformFeedbacks glad_glDeleteTransformFeedbacks +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids); +GLAPI PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks; +#define glGenTransformFeedbacks glad_glGenTransformFeedbacks +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id); +GLAPI PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback; +#define glIsTransformFeedback glad_glIsTransformFeedback +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC)(void); +GLAPI PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback; +#define glPauseTransformFeedback glad_glPauseTransformFeedback +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC)(void); +GLAPI PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback; +#define glResumeTransformFeedback glad_glResumeTransformFeedback +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id); +GLAPI PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback; +#define glDrawTransformFeedback glad_glDrawTransformFeedback +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream); +GLAPI PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream; +#define glDrawTransformFeedbackStream glad_glDrawTransformFeedbackStream +typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id); +GLAPI PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed; +#define glBeginQueryIndexed glad_glBeginQueryIndexed +typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index); +GLAPI PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed; +#define glEndQueryIndexed glad_glEndQueryIndexed +typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint *params); +GLAPI PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv; +#define glGetQueryIndexediv glad_glGetQueryIndexediv +#endif +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +GLAPI int GLAD_GL_VERSION_4_1; +typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC)(void); +GLAPI PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; +#define glReleaseShaderCompiler glad_glReleaseShaderCompiler +typedef void (APIENTRYP PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); +GLAPI PFNGLSHADERBINARYPROC glad_glShaderBinary; +#define glShaderBinary glad_glShaderBinary +typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GLAPI PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; +#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f); +GLAPI PFNGLDEPTHRANGEFPROC glad_glDepthRangef; +#define glDepthRangef glad_glDepthRangef +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC)(GLfloat d); +GLAPI PFNGLCLEARDEPTHFPROC glad_glClearDepthf; +#define glClearDepthf glad_glClearDepthf +typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); +GLAPI PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary; +#define glGetProgramBinary glad_glGetProgramBinary +typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); +GLAPI PFNGLPROGRAMBINARYPROC glad_glProgramBinary; +#define glProgramBinary glad_glProgramBinary +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value); +GLAPI PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri; +#define glProgramParameteri glad_glProgramParameteri +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program); +GLAPI PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages; +#define glUseProgramStages glad_glUseProgramStages +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program); +GLAPI PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram; +#define glActiveShaderProgram glad_glActiveShaderProgram +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar *const*strings); +GLAPI PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv; +#define glCreateShaderProgramv glad_glCreateShaderProgramv +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline); +GLAPI PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline; +#define glBindProgramPipeline glad_glBindProgramPipeline +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint *pipelines); +GLAPI PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines; +#define glDeleteProgramPipelines glad_glDeleteProgramPipelines +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines); +GLAPI PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines; +#define glGenProgramPipelines glad_glGenProgramPipelines +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline); +GLAPI PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline; +#define glIsProgramPipeline glad_glIsProgramPipeline +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint *params); +GLAPI PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv; +#define glGetProgramPipelineiv glad_glGetProgramPipelineiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0); +GLAPI PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i; +#define glProgramUniform1i glad_glProgramUniform1i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv; +#define glProgramUniform1iv glad_glProgramUniform1iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0); +GLAPI PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f; +#define glProgramUniform1f glad_glProgramUniform1f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv; +#define glProgramUniform1fv glad_glProgramUniform1fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0); +GLAPI PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d; +#define glProgramUniform1d glad_glProgramUniform1d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv; +#define glProgramUniform1dv glad_glProgramUniform1dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0); +GLAPI PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui; +#define glProgramUniform1ui glad_glProgramUniform1ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv; +#define glProgramUniform1uiv glad_glProgramUniform1uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1); +GLAPI PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i; +#define glProgramUniform2i glad_glProgramUniform2i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv; +#define glProgramUniform2iv glad_glProgramUniform2iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f; +#define glProgramUniform2f glad_glProgramUniform2f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv; +#define glProgramUniform2fv glad_glProgramUniform2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1); +GLAPI PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d; +#define glProgramUniform2d glad_glProgramUniform2d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv; +#define glProgramUniform2dv glad_glProgramUniform2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui; +#define glProgramUniform2ui glad_glProgramUniform2ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv; +#define glProgramUniform2uiv glad_glProgramUniform2uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i; +#define glProgramUniform3i glad_glProgramUniform3i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv; +#define glProgramUniform3iv glad_glProgramUniform3iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f; +#define glProgramUniform3f glad_glProgramUniform3f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv; +#define glProgramUniform3fv glad_glProgramUniform3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +GLAPI PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d; +#define glProgramUniform3d glad_glProgramUniform3d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv; +#define glProgramUniform3dv glad_glProgramUniform3dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui; +#define glProgramUniform3ui glad_glProgramUniform3ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv; +#define glProgramUniform3uiv glad_glProgramUniform3uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i; +#define glProgramUniform4i glad_glProgramUniform4i +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv; +#define glProgramUniform4iv glad_glProgramUniform4iv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f; +#define glProgramUniform4f glad_glProgramUniform4f +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv; +#define glProgramUniform4fv glad_glProgramUniform4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +GLAPI PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d; +#define glProgramUniform4d glad_glProgramUniform4d +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv; +#define glProgramUniform4dv glad_glProgramUniform4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui; +#define glProgramUniform4ui glad_glProgramUniform4ui +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv; +#define glProgramUniform4uiv glad_glProgramUniform4uiv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv; +#define glProgramUniformMatrix2fv glad_glProgramUniformMatrix2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv; +#define glProgramUniformMatrix3fv glad_glProgramUniformMatrix3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv; +#define glProgramUniformMatrix4fv glad_glProgramUniformMatrix4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv; +#define glProgramUniformMatrix2dv glad_glProgramUniformMatrix2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv; +#define glProgramUniformMatrix3dv glad_glProgramUniformMatrix3dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv; +#define glProgramUniformMatrix4dv glad_glProgramUniformMatrix4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv; +#define glProgramUniformMatrix2x3fv glad_glProgramUniformMatrix2x3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv; +#define glProgramUniformMatrix3x2fv glad_glProgramUniformMatrix3x2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv; +#define glProgramUniformMatrix2x4fv glad_glProgramUniformMatrix2x4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv; +#define glProgramUniformMatrix4x2fv glad_glProgramUniformMatrix4x2fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv; +#define glProgramUniformMatrix3x4fv glad_glProgramUniformMatrix3x4fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv; +#define glProgramUniformMatrix4x3fv glad_glProgramUniformMatrix4x3fv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv; +#define glProgramUniformMatrix2x3dv glad_glProgramUniformMatrix2x3dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv; +#define glProgramUniformMatrix3x2dv glad_glProgramUniformMatrix3x2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv; +#define glProgramUniformMatrix2x4dv glad_glProgramUniformMatrix2x4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv; +#define glProgramUniformMatrix4x2dv glad_glProgramUniformMatrix4x2dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv; +#define glProgramUniformMatrix3x4dv glad_glProgramUniformMatrix3x4dv +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv; +#define glProgramUniformMatrix4x3dv glad_glProgramUniformMatrix4x3dv +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline); +GLAPI PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline; +#define glValidateProgramPipeline glad_glValidateProgramPipeline +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog; +#define glGetProgramPipelineInfoLog glad_glGetProgramPipelineInfoLog +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x); +GLAPI PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d; +#define glVertexAttribL1d glad_glVertexAttribL1d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y); +GLAPI PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d; +#define glVertexAttribL2d glad_glVertexAttribL2d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d; +#define glVertexAttribL3d glad_glVertexAttribL3d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d; +#define glVertexAttribL4d glad_glVertexAttribL4d +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv; +#define glVertexAttribL1dv glad_glVertexAttribL1dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv; +#define glVertexAttribL2dv glad_glVertexAttribL2dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv; +#define glVertexAttribL3dv glad_glVertexAttribL3dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble *v); +GLAPI PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv; +#define glVertexAttribL4dv glad_glVertexAttribL4dv +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); +GLAPI PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer; +#define glVertexAttribLPointer glad_glVertexAttribLPointer +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble *params); +GLAPI PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv; +#define glGetVertexAttribLdv glad_glGetVertexAttribLdv +typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat *v); +GLAPI PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv; +#define glViewportArrayv glad_glViewportArrayv +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GLAPI PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf; +#define glViewportIndexedf glad_glViewportIndexedf +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat *v); +GLAPI PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv; +#define glViewportIndexedfv glad_glViewportIndexedfv +typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint *v); +GLAPI PFNGLSCISSORARRAYVPROC glad_glScissorArrayv; +#define glScissorArrayv glad_glScissorArrayv +typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GLAPI PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed; +#define glScissorIndexed glad_glScissorIndexed +typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint *v); +GLAPI PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv; +#define glScissorIndexedv glad_glScissorIndexedv +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLdouble *v); +GLAPI PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv; +#define glDepthRangeArrayv glad_glDepthRangeArrayv +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f); +GLAPI PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed; +#define glDepthRangeIndexed glad_glDepthRangeIndexed +typedef void (APIENTRYP PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat *data); +GLAPI PFNGLGETFLOATI_VPROC glad_glGetFloati_v; +#define glGetFloati_v glad_glGetFloati_v +typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble *data); +GLAPI PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v; +#define glGetDoublei_v glad_glGetDoublei_v +#endif +#ifndef GL_VERSION_4_2 +#define GL_VERSION_4_2 1 +GLAPI int GLAD_GL_VERSION_4_2; +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); +GLAPI PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance; +#define glDrawArraysInstancedBaseInstance glad_glDrawArraysInstancedBaseInstance +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); +GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance; +#define glDrawElementsInstancedBaseInstance glad_glDrawElementsInstancedBaseInstance +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); +GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance; +#define glDrawElementsInstancedBaseVertexBaseInstance glad_glDrawElementsInstancedBaseVertexBaseInstance +typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); +GLAPI PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ; +#define glGetInternalformativ glad_glGetInternalformativ +typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); +GLAPI PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv; +#define glGetActiveAtomicCounterBufferiv glad_glGetActiveAtomicCounterBufferiv +typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); +GLAPI PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture; +#define glBindImageTexture glad_glBindImageTexture +typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC)(GLbitfield barriers); +GLAPI PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier; +#define glMemoryBarrier glad_glMemoryBarrier +typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D; +#define glTexStorage1D glad_glTexStorage1D +typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D; +#define glTexStorage2D glad_glTexStorage2D +typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GLAPI PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D; +#define glTexStorage3D glad_glTexStorage3D +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei instancecount); +GLAPI PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced; +#define glDrawTransformFeedbackInstanced glad_glDrawTransformFeedbackInstanced +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); +GLAPI PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced; +#define glDrawTransformFeedbackStreamInstanced glad_glDrawTransformFeedbackStreamInstanced +#endif +#ifndef GL_VERSION_4_3 +#define GL_VERSION_4_3 1 +GLAPI int GLAD_GL_VERSION_4_3; +typedef void (APIENTRYP PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); +GLAPI PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData; +#define glClearBufferData glad_glClearBufferData +typedef void (APIENTRYP PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +GLAPI PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData; +#define glClearBufferSubData glad_glClearBufferSubData +typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); +GLAPI PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute; +#define glDispatchCompute glad_glDispatchCompute +typedef void (APIENTRYP PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect); +GLAPI PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect; +#define glDispatchComputeIndirect glad_glDispatchComputeIndirect +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); +GLAPI PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData; +#define glCopyImageSubData glad_glCopyImageSubData +typedef void (APIENTRYP PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); +GLAPI PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri; +#define glFramebufferParameteri glad_glFramebufferParameteri +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); +GLAPI PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv; +#define glGetFramebufferParameteriv glad_glGetFramebufferParameteriv +typedef void (APIENTRYP PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); +GLAPI PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v; +#define glGetInternalformati64v glad_glGetInternalformati64v +typedef void (APIENTRYP PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); +GLAPI PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage; +#define glInvalidateTexSubImage glad_glInvalidateTexSubImage +typedef void (APIENTRYP PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level); +GLAPI PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage; +#define glInvalidateTexImage glad_glInvalidateTexImage +typedef void (APIENTRYP PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); +GLAPI PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData; +#define glInvalidateBufferSubData glad_glInvalidateBufferSubData +typedef void (APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer); +GLAPI PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData; +#define glInvalidateBufferData glad_glInvalidateBufferData +typedef void (APIENTRYP PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum *attachments); +GLAPI PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer; +#define glInvalidateFramebuffer glad_glInvalidateFramebuffer +typedef void (APIENTRYP PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer; +#define glInvalidateSubFramebuffer glad_glInvalidateSubFramebuffer +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); +GLAPI PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect; +#define glMultiDrawArraysIndirect glad_glMultiDrawArraysIndirect +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); +GLAPI PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect; +#define glMultiDrawElementsIndirect glad_glMultiDrawElementsIndirect +typedef void (APIENTRYP PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint *params); +GLAPI PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv; +#define glGetProgramInterfaceiv glad_glGetProgramInterfaceiv +typedef GLuint (APIENTRYP PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface, const GLchar *name); +GLAPI PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex; +#define glGetProgramResourceIndex glad_glGetProgramResourceIndex +typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); +GLAPI PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName; +#define glGetProgramResourceName glad_glGetProgramResourceName +typedef void (APIENTRYP PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); +GLAPI PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv; +#define glGetProgramResourceiv glad_glGetProgramResourceiv +typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface, const GLchar *name); +GLAPI PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation; +#define glGetProgramResourceLocation glad_glGetProgramResourceLocation +typedef GLint (APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program, GLenum programInterface, const GLchar *name); +GLAPI PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex; +#define glGetProgramResourceLocationIndex glad_glGetProgramResourceLocationIndex +typedef void (APIENTRYP PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +GLAPI PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding; +#define glShaderStorageBlockBinding glad_glShaderStorageBlockBinding +typedef void (APIENTRYP PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange; +#define glTexBufferRange glad_glTexBufferRange +typedef void (APIENTRYP PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample; +#define glTexStorage2DMultisample glad_glTexStorage2DMultisample +typedef void (APIENTRYP PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample; +#define glTexStorage3DMultisample glad_glTexStorage3DMultisample +typedef void (APIENTRYP PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); +GLAPI PFNGLTEXTUREVIEWPROC glad_glTextureView; +#define glTextureView glad_glTextureView +typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +GLAPI PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer; +#define glBindVertexBuffer glad_glBindVertexBuffer +typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +GLAPI PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat; +#define glVertexAttribFormat glad_glVertexAttribFormat +typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat; +#define glVertexAttribIFormat glad_glVertexAttribIFormat +typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat; +#define glVertexAttribLFormat glad_glVertexAttribLFormat +typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex); +GLAPI PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding; +#define glVertexAttribBinding glad_glVertexAttribBinding +typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor); +GLAPI PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor; +#define glVertexBindingDivisor glad_glVertexBindingDivisor +typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); +GLAPI PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl; +#define glDebugMessageControl glad_glDebugMessageControl +typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); +GLAPI PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert; +#define glDebugMessageInsert glad_glDebugMessageInsert +typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const void *userParam); +GLAPI PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback; +#define glDebugMessageCallback glad_glDebugMessageCallback +typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); +GLAPI PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog; +#define glGetDebugMessageLog glad_glGetDebugMessageLog +typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar *message); +GLAPI PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup; +#define glPushDebugGroup glad_glPushDebugGroup +typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC)(void); +GLAPI PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup; +#define glPopDebugGroup glad_glPopDebugGroup +typedef void (APIENTRYP PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +GLAPI PFNGLOBJECTLABELPROC glad_glObjectLabel; +#define glObjectLabel glad_glObjectLabel +typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +GLAPI PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel; +#define glGetObjectLabel glad_glGetObjectLabel +typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC)(const void *ptr, GLsizei length, const GLchar *label); +GLAPI PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel; +#define glObjectPtrLabel glad_glObjectPtrLabel +typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +GLAPI PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel; +#define glGetObjectPtrLabel glad_glGetObjectPtrLabel +#endif +#ifndef GL_VERSION_4_4 +#define GL_VERSION_4_4 1 +GLAPI int GLAD_GL_VERSION_4_4; +typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); +GLAPI PFNGLBUFFERSTORAGEPROC glad_glBufferStorage; +#define glBufferStorage glad_glBufferStorage +typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void *data); +GLAPI PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage; +#define glClearTexImage glad_glClearTexImage +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); +GLAPI PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage; +#define glClearTexSubImage glad_glClearTexSubImage +typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers); +GLAPI PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase; +#define glBindBuffersBase glad_glBindBuffersBase +typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); +GLAPI PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange; +#define glBindBuffersRange glad_glBindBuffersRange +typedef void (APIENTRYP PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures); +GLAPI PFNGLBINDTEXTURESPROC glad_glBindTextures; +#define glBindTextures glad_glBindTextures +typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint *samplers); +GLAPI PFNGLBINDSAMPLERSPROC glad_glBindSamplers; +#define glBindSamplers glad_glBindSamplers +typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures); +GLAPI PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures; +#define glBindImageTextures glad_glBindImageTextures +typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +GLAPI PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers; +#define glBindVertexBuffers glad_glBindVertexBuffers +#endif +#ifndef GL_VERSION_4_5 +#define GL_VERSION_4_5 1 +GLAPI int GLAD_GL_VERSION_4_5; +typedef void (APIENTRYP PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth); +GLAPI PFNGLCLIPCONTROLPROC glad_glClipControl; +#define glClipControl glad_glClipControl +typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids); +GLAPI PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks; +#define glCreateTransformFeedbacks glad_glCreateTransformFeedbacks +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index, GLuint buffer); +GLAPI PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase; +#define glTransformFeedbackBufferBase glad_glTransformFeedbackBufferBase +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange; +#define glTransformFeedbackBufferRange glad_glTransformFeedbackBufferRange +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint *param); +GLAPI PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv; +#define glGetTransformFeedbackiv glad_glGetTransformFeedbackiv +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint *param); +GLAPI PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v; +#define glGetTransformFeedbacki_v glad_glGetTransformFeedbacki_v +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint64 *param); +GLAPI PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v; +#define glGetTransformFeedbacki64_v glad_glGetTransformFeedbacki64_v +typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint *buffers); +GLAPI PFNGLCREATEBUFFERSPROC glad_glCreateBuffers; +#define glCreateBuffers glad_glCreateBuffers +typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); +GLAPI PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage; +#define glNamedBufferStorage glad_glNamedBufferStorage +typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); +GLAPI PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData; +#define glNamedBufferData glad_glNamedBufferData +typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); +GLAPI PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData; +#define glNamedBufferSubData glad_glNamedBufferSubData +typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +GLAPI PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData; +#define glCopyNamedBufferSubData glad_glCopyNamedBufferSubData +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); +GLAPI PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData; +#define glClearNamedBufferData glad_glClearNamedBufferData +typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); +GLAPI PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData; +#define glClearNamedBufferSubData glad_glClearNamedBufferSubData +typedef void * (APIENTRYP PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access); +GLAPI PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer; +#define glMapNamedBuffer glad_glMapNamedBuffer +typedef void * (APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange; +#define glMapNamedBufferRange glad_glMapNamedBufferRange +typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer); +GLAPI PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer; +#define glUnmapNamedBuffer glad_glUnmapNamedBuffer +typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); +GLAPI PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange; +#define glFlushMappedNamedBufferRange glad_glFlushMappedNamedBufferRange +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname, GLint *params); +GLAPI PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv; +#define glGetNamedBufferParameteriv glad_glGetNamedBufferParameteriv +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname, GLint64 *params); +GLAPI PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v; +#define glGetNamedBufferParameteri64v glad_glGetNamedBufferParameteri64v +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname, void **params); +GLAPI PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv; +#define glGetNamedBufferPointerv glad_glGetNamedBufferPointerv +typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); +GLAPI PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData; +#define glGetNamedBufferSubData glad_glGetNamedBufferSubData +typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); +GLAPI PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers; +#define glCreateFramebuffers glad_glCreateFramebuffers +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer; +#define glNamedFramebufferRenderbuffer glad_glNamedFramebufferRenderbuffer +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname, GLint param); +GLAPI PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri; +#define glNamedFramebufferParameteri glad_glNamedFramebufferParameteri +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +GLAPI PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture; +#define glNamedFramebufferTexture glad_glNamedFramebufferTexture +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +GLAPI PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer; +#define glNamedFramebufferTextureLayer glad_glNamedFramebufferTextureLayer +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf); +GLAPI PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer; +#define glNamedFramebufferDrawBuffer glad_glNamedFramebufferDrawBuffer +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n, const GLenum *bufs); +GLAPI PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers; +#define glNamedFramebufferDrawBuffers glad_glNamedFramebufferDrawBuffers +typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src); +GLAPI PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer; +#define glNamedFramebufferReadBuffer glad_glNamedFramebufferReadBuffer +typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); +GLAPI PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData; +#define glInvalidateNamedFramebufferData glad_glInvalidateNamedFramebufferData +typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData; +#define glInvalidateNamedFramebufferSubData glad_glInvalidateNamedFramebufferSubData +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv; +#define glClearNamedFramebufferiv glad_glClearNamedFramebufferiv +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv; +#define glClearNamedFramebufferuiv glad_glClearNamedFramebufferuiv +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv; +#define glClearNamedFramebufferfv glad_glClearNamedFramebufferfv +typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi; +#define glClearNamedFramebufferfi glad_glClearNamedFramebufferfi +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); +GLAPI PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer; +#define glBlitNamedFramebuffer glad_glBlitNamedFramebuffer +typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target); +GLAPI PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus; +#define glCheckNamedFramebufferStatus glad_glCheckNamedFramebufferStatus +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname, GLint *param); +GLAPI PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv; +#define glGetNamedFramebufferParameteriv glad_glGetNamedFramebufferParameteriv +typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); +GLAPI PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv; +#define glGetNamedFramebufferAttachmentParameteriv glad_glGetNamedFramebufferAttachmentParameteriv +typedef void (APIENTRYP PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); +GLAPI PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers; +#define glCreateRenderbuffers glad_glCreateRenderbuffers +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage; +#define glNamedRenderbufferStorage glad_glNamedRenderbufferStorage +typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample; +#define glNamedRenderbufferStorageMultisample glad_glNamedRenderbufferStorageMultisample +typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname, GLint *params); +GLAPI PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv; +#define glGetNamedRenderbufferParameteriv glad_glGetNamedRenderbufferParameteriv +typedef void (APIENTRYP PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint *textures); +GLAPI PFNGLCREATETEXTURESPROC glad_glCreateTextures; +#define glCreateTextures glad_glCreateTextures +typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat, GLuint buffer); +GLAPI PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer; +#define glTextureBuffer glad_glTextureBuffer +typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange; +#define glTextureBufferRange glad_glTextureBufferRange +typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D; +#define glTextureStorage1D glad_glTextureStorage1D +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D; +#define glTextureStorage2D glad_glTextureStorage2D +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +GLAPI PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D; +#define glTextureStorage3D glad_glTextureStorage3D +typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample; +#define glTextureStorage2DMultisample glad_glTextureStorage2DMultisample +typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample; +#define glTextureStorage3DMultisample glad_glTextureStorage3DMultisample +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D; +#define glTextureSubImage1D glad_glTextureSubImage1D +typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); +GLAPI PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D; +#define glTextureSubImage2D glad_glTextureSubImage2D +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); +GLAPI PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D; +#define glTextureSubImage3D glad_glTextureSubImage3D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D; +#define glCompressedTextureSubImage1D glad_glCompressedTextureSubImage1D +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); +GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D; +#define glCompressedTextureSubImage2D glad_glCompressedTextureSubImage2D +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); +GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D; +#define glCompressedTextureSubImage3D glad_glCompressedTextureSubImage3D +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D; +#define glCopyTextureSubImage1D glad_glCopyTextureSubImage1D +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D; +#define glCopyTextureSubImage2D glad_glCopyTextureSubImage2D +typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D; +#define glCopyTextureSubImage3D glad_glCopyTextureSubImage3D +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param); +GLAPI PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf; +#define glTextureParameterf glad_glTextureParameterf +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, const GLfloat *param); +GLAPI PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv; +#define glTextureParameterfv glad_glTextureParameterfv +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param); +GLAPI PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri; +#define glTextureParameteri glad_glTextureParameteri +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, const GLint *params); +GLAPI PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv; +#define glTextureParameterIiv glad_glTextureParameterIiv +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, const GLuint *params); +GLAPI PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv; +#define glTextureParameterIuiv glad_glTextureParameterIuiv +typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, const GLint *param); +GLAPI PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv; +#define glTextureParameteriv glad_glTextureParameteriv +typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture); +GLAPI PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap; +#define glGenerateTextureMipmap glad_glGenerateTextureMipmap +typedef void (APIENTRYP PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture); +GLAPI PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit; +#define glBindTextureUnit glad_glBindTextureUnit +typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +GLAPI PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage; +#define glGetTextureImage glad_glGetTextureImage +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLsizei bufSize, void *pixels); +GLAPI PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage; +#define glGetCompressedTextureImage glad_glGetCompressedTextureImage +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv; +#define glGetTextureLevelParameterfv glad_glGetTextureLevelParameterfv +typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv; +#define glGetTextureLevelParameteriv glad_glGetTextureLevelParameteriv +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, GLfloat *params); +GLAPI PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv; +#define glGetTextureParameterfv glad_glGetTextureParameterfv +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv; +#define glGetTextureParameterIiv glad_glGetTextureParameterIiv +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, GLuint *params); +GLAPI PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv; +#define glGetTextureParameterIuiv glad_glGetTextureParameterIuiv +typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, GLint *params); +GLAPI PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv; +#define glGetTextureParameteriv glad_glGetTextureParameteriv +typedef void (APIENTRYP PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); +GLAPI PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays; +#define glCreateVertexArrays glad_glCreateVertexArrays +typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); +GLAPI PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib; +#define glDisableVertexArrayAttrib glad_glDisableVertexArrayAttrib +typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); +GLAPI PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib; +#define glEnableVertexArrayAttrib glad_glEnableVertexArrayAttrib +typedef void (APIENTRYP PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer); +GLAPI PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer; +#define glVertexArrayElementBuffer glad_glVertexArrayElementBuffer +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); +GLAPI PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer; +#define glVertexArrayVertexBuffer glad_glVertexArrayVertexBuffer +typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); +GLAPI PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers; +#define glVertexArrayVertexBuffers glad_glVertexArrayVertexBuffers +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex); +GLAPI PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding; +#define glVertexArrayAttribBinding glad_glVertexArrayAttribBinding +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); +GLAPI PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat; +#define glVertexArrayAttribFormat glad_glVertexArrayAttribFormat +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat; +#define glVertexArrayAttribIFormat glad_glVertexArrayAttribIFormat +typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); +GLAPI PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat; +#define glVertexArrayAttribLFormat glad_glVertexArrayAttribLFormat +typedef void (APIENTRYP PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor); +GLAPI PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor; +#define glVertexArrayBindingDivisor glad_glVertexArrayBindingDivisor +typedef void (APIENTRYP PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint *param); +GLAPI PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv; +#define glGetVertexArrayiv glad_glGetVertexArrayiv +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint *param); +GLAPI PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv; +#define glGetVertexArrayIndexediv glad_glGetVertexArrayIndexediv +typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); +GLAPI PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv; +#define glGetVertexArrayIndexed64iv glad_glGetVertexArrayIndexed64iv +typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint *samplers); +GLAPI PFNGLCREATESAMPLERSPROC glad_glCreateSamplers; +#define glCreateSamplers glad_glCreateSamplers +typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines); +GLAPI PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines; +#define glCreateProgramPipelines glad_glCreateProgramPipelines +typedef void (APIENTRYP PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint *ids); +GLAPI PFNGLCREATEQUERIESPROC glad_glCreateQueries; +#define glCreateQueries glad_glCreateQueries +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v; +#define glGetQueryBufferObjecti64v glad_glGetQueryBufferObjecti64v +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv; +#define glGetQueryBufferObjectiv glad_glGetQueryBufferObjectiv +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v; +#define glGetQueryBufferObjectui64v glad_glGetQueryBufferObjectui64v +typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); +GLAPI PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv; +#define glGetQueryBufferObjectuiv glad_glGetQueryBufferObjectuiv +typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers); +GLAPI PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion; +#define glMemoryBarrierByRegion glad_glMemoryBarrierByRegion +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); +GLAPI PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage; +#define glGetTextureSubImage glad_glGetTextureSubImage +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); +GLAPI PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage; +#define glGetCompressedTextureSubImage glad_glGetCompressedTextureSubImage +typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC)(void); +GLAPI PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus; +#define glGetGraphicsResetStatus glad_glGetGraphicsResetStatus +typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLsizei bufSize, void *pixels); +GLAPI PFNGLGETNCOMPRESSEDTEXIMAGEPROC glad_glGetnCompressedTexImage; +#define glGetnCompressedTexImage glad_glGetnCompressedTexImage +typedef void (APIENTRYP PFNGLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); +GLAPI PFNGLGETNTEXIMAGEPROC glad_glGetnTexImage; +#define glGetnTexImage glad_glGetnTexImage +typedef void (APIENTRYP PFNGLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params); +GLAPI PFNGLGETNUNIFORMDVPROC glad_glGetnUniformdv; +#define glGetnUniformdv glad_glGetnUniformdv +typedef void (APIENTRYP PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params); +GLAPI PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv; +#define glGetnUniformfv glad_glGetnUniformfv +typedef void (APIENTRYP PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLint *params); +GLAPI PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv; +#define glGetnUniformiv glad_glGetnUniformiv +typedef void (APIENTRYP PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint *params); +GLAPI PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv; +#define glGetnUniformuiv glad_glGetnUniformuiv +typedef void (APIENTRYP PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +GLAPI PFNGLREADNPIXELSPROC glad_glReadnPixels; +#define glReadnPixels glad_glReadnPixels +typedef void (APIENTRYP PFNGLGETNMAPDVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); +GLAPI PFNGLGETNMAPDVPROC glad_glGetnMapdv; +#define glGetnMapdv glad_glGetnMapdv +typedef void (APIENTRYP PFNGLGETNMAPFVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); +GLAPI PFNGLGETNMAPFVPROC glad_glGetnMapfv; +#define glGetnMapfv glad_glGetnMapfv +typedef void (APIENTRYP PFNGLGETNMAPIVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint *v); +GLAPI PFNGLGETNMAPIVPROC glad_glGetnMapiv; +#define glGetnMapiv glad_glGetnMapiv +typedef void (APIENTRYP PFNGLGETNPIXELMAPFVPROC)(GLenum map, GLsizei bufSize, GLfloat *values); +GLAPI PFNGLGETNPIXELMAPFVPROC glad_glGetnPixelMapfv; +#define glGetnPixelMapfv glad_glGetnPixelMapfv +typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVPROC)(GLenum map, GLsizei bufSize, GLuint *values); +GLAPI PFNGLGETNPIXELMAPUIVPROC glad_glGetnPixelMapuiv; +#define glGetnPixelMapuiv glad_glGetnPixelMapuiv +typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVPROC)(GLenum map, GLsizei bufSize, GLushort *values); +GLAPI PFNGLGETNPIXELMAPUSVPROC glad_glGetnPixelMapusv; +#define glGetnPixelMapusv glad_glGetnPixelMapusv +typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEPROC)(GLsizei bufSize, GLubyte *pattern); +GLAPI PFNGLGETNPOLYGONSTIPPLEPROC glad_glGetnPolygonStipple; +#define glGetnPolygonStipple glad_glGetnPolygonStipple +typedef void (APIENTRYP PFNGLGETNCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); +GLAPI PFNGLGETNCOLORTABLEPROC glad_glGetnColorTable; +#define glGetnColorTable glad_glGetnColorTable +typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); +GLAPI PFNGLGETNCONVOLUTIONFILTERPROC glad_glGetnConvolutionFilter; +#define glGetnConvolutionFilter glad_glGetnConvolutionFilter +typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); +GLAPI PFNGLGETNSEPARABLEFILTERPROC glad_glGetnSeparableFilter; +#define glGetnSeparableFilter glad_glGetnSeparableFilter +typedef void (APIENTRYP PFNGLGETNHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +GLAPI PFNGLGETNHISTOGRAMPROC glad_glGetnHistogram; +#define glGetnHistogram glad_glGetnHistogram +typedef void (APIENTRYP PFNGLGETNMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); +GLAPI PFNGLGETNMINMAXPROC glad_glGetnMinmax; +#define glGetnMinmax glad_glGetnMinmax +typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC)(void); +GLAPI PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier; +#define glTextureBarrier glad_glTextureBarrier +#endif +#ifndef GL_VERSION_4_6 +#define GL_VERSION_4_6 1 +GLAPI int GLAD_GL_VERSION_4_6; +typedef void (APIENTRYP PFNGLSPECIALIZESHADERPROC)(GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); +GLAPI PFNGLSPECIALIZESHADERPROC glad_glSpecializeShader; +#define glSpecializeShader glad_glSpecializeShader +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)(GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +GLAPI PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glad_glMultiDrawArraysIndirectCount; +#define glMultiDrawArraysIndirectCount glad_glMultiDrawArraysIndirectCount +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); +GLAPI PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glad_glMultiDrawElementsIndirectCount; +#define glMultiDrawElementsIndirectCount glad_glMultiDrawElementsIndirectCount +typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units, GLfloat clamp); +GLAPI PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp; +#define glPolygonOffsetClamp glad_glPolygonOffsetClamp +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mlx/include/lodepng/lodepng.h b/mlx/include/lodepng/lodepng.h new file mode 100644 index 0000000..c680112 --- /dev/null +++ b/mlx/include/lodepng/lodepng.h @@ -0,0 +1,2085 @@ +/* +LodePNG version 20220717 + +Copyright (c) 2005-2022 Lode Vandevenne + +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 LODEPNG_H +#define LODEPNG_H + +#include /*for size_t*/ + +extern const char* LODEPNG_VERSION_STRING; + +/* +The following #defines are used to create code sections. They can be disabled +to disable code sections, which can give faster compile time and smaller binary. +The "NO_COMPILE" defines are designed to be used to pass as defines to the +compiler command to disable them without modifying this header, e.g. +-DLODEPNG_NO_COMPILE_ZLIB for gcc or clang. +*/ +/*deflate & zlib. If disabled, you must specify alternative zlib functions in +the custom_zlib field of the compress and decompress settings*/ +#ifndef LODEPNG_NO_COMPILE_ZLIB +/*pass -DLODEPNG_NO_COMPILE_ZLIB to the compiler to disable this, or comment out LODEPNG_COMPILE_ZLIB below*/ +#define LODEPNG_COMPILE_ZLIB +#endif + +/*png encoder and png decoder*/ +#ifndef LODEPNG_NO_COMPILE_PNG +/*pass -DLODEPNG_NO_COMPILE_PNG to the compiler to disable this, or comment out LODEPNG_COMPILE_PNG below*/ +#define LODEPNG_COMPILE_PNG +#endif + +/*deflate&zlib decoder and png decoder*/ +#ifndef LODEPNG_NO_COMPILE_DECODER +/*pass -DLODEPNG_NO_COMPILE_DECODER to the compiler to disable this, or comment out LODEPNG_COMPILE_DECODER below*/ +#define LODEPNG_COMPILE_DECODER +#endif + +/*deflate&zlib encoder and png encoder*/ +#ifndef LODEPNG_NO_COMPILE_ENCODER +/*pass -DLODEPNG_NO_COMPILE_ENCODER to the compiler to disable this, or comment out LODEPNG_COMPILE_ENCODER below*/ +#define LODEPNG_COMPILE_ENCODER +#endif + +/*the optional built in harddisk file loading and saving functions*/ +#ifndef LODEPNG_NO_COMPILE_DISK +/*pass -DLODEPNG_NO_COMPILE_DISK to the compiler to disable this, or comment out LODEPNG_COMPILE_DISK below*/ +#define LODEPNG_COMPILE_DISK +#endif + +/*support for chunks other than IHDR, IDAT, PLTE, tRNS, IEND: ancillary and unknown chunks*/ +#ifndef LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS +/*pass -DLODEPNG_NO_COMPILE_ANCILLARY_CHUNKS to the compiler to disable this, +or comment out LODEPNG_COMPILE_ANCILLARY_CHUNKS below*/ +#define LODEPNG_COMPILE_ANCILLARY_CHUNKS +#endif + +/*ability to convert error numerical codes to English text string*/ +#ifndef LODEPNG_NO_COMPILE_ERROR_TEXT +/*pass -DLODEPNG_NO_COMPILE_ERROR_TEXT to the compiler to disable this, +or comment out LODEPNG_COMPILE_ERROR_TEXT below*/ +#define LODEPNG_COMPILE_ERROR_TEXT +#endif + +/*Compile the default allocators (C's free, malloc and realloc). If you disable this, +you can define the functions lodepng_free, lodepng_malloc and lodepng_realloc in your +source files with custom allocators.*/ +#ifndef LODEPNG_NO_COMPILE_ALLOCATORS +/*pass -DLODEPNG_NO_COMPILE_ALLOCATORS to the compiler to disable the built-in ones, +or comment out LODEPNG_COMPILE_ALLOCATORS below*/ +#define LODEPNG_COMPILE_ALLOCATORS +#endif + +/*Disable built-in CRC function, in that case a custom implementation of +lodepng_crc32 must be defined externally so that it can be linked in.*/ +#ifndef LODEPNG_NO_COMPILE_CRC +/*pass -DLODEPNG_NO_COMPILE_CRC to the compiler to disable the built-in one, +or comment out LODEPNG_COMPILE_CRC below*/ +#define LODEPNG_COMPILE_CRC +#endif + +/*compile the C++ version (you can disable the C++ wrapper here even when compiling for C++)*/ +#ifdef __cplusplus +#ifndef LODEPNG_NO_COMPILE_CPP +/*pass -DLODEPNG_NO_COMPILE_CPP to the compiler to disable C++ (not needed if a C-only compiler), +or comment out LODEPNG_COMPILE_CPP below*/ +#define LODEPNG_COMPILE_CPP +#endif +#endif + +#ifdef LODEPNG_COMPILE_CPP +#include +#include +#endif /*LODEPNG_COMPILE_CPP*/ + +#ifdef LODEPNG_COMPILE_PNG +/*The PNG color types (also used for raw image).*/ +typedef enum LodePNGColorType { + LCT_GREY = 0, /*grayscale: 1,2,4,8,16 bit*/ + LCT_RGB = 2, /*RGB: 8,16 bit*/ + LCT_PALETTE = 3, /*palette: 1,2,4,8 bit*/ + LCT_GREY_ALPHA = 4, /*grayscale with alpha: 8,16 bit*/ + LCT_RGBA = 6, /*RGB with alpha: 8,16 bit*/ + /*LCT_MAX_OCTET_VALUE lets the compiler allow this enum to represent any invalid + byte value from 0 to 255 that could be present in an invalid PNG file header. Do + not use, compare with or set the name LCT_MAX_OCTET_VALUE, instead either use + the valid color type names above, or numeric values like 1 or 7 when checking for + particular disallowed color type byte values, or cast to integer to print it.*/ + LCT_MAX_OCTET_VALUE = 255 +} LodePNGColorType; + +#ifdef LODEPNG_COMPILE_DECODER +/* +Converts PNG data in memory to raw pixel data. +out: Output parameter. Pointer to buffer that will contain the raw pixel data. + After decoding, its size is w * h * (bytes per pixel) bytes larger than + initially. Bytes per pixel depends on colortype and bitdepth. + Must be freed after usage with free(*out). + Note: for 16-bit per channel colors, uses big endian format like PNG does. +w: Output parameter. Pointer to width of pixel data. +h: Output parameter. Pointer to height of pixel data. +in: Memory buffer with the PNG file. +insize: size of the in buffer. +colortype: the desired color type for the raw output image. See explanation on PNG color types. +bitdepth: the desired bit depth for the raw output image. See explanation on PNG color types. +Return value: LodePNG error code (0 means no error). +*/ +unsigned lodepng_decode_memory(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_decode_memory, but always decodes to 32-bit RGBA raw image*/ +unsigned lodepng_decode32(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize); + +/*Same as lodepng_decode_memory, but always decodes to 24-bit RGB raw image*/ +unsigned lodepng_decode24(unsigned char** out, unsigned* w, unsigned* h, + const unsigned char* in, size_t insize); + +#ifdef LODEPNG_COMPILE_DISK +/* +Load PNG from disk, from file with given name. +Same as the other decode functions, but instead takes a filename as input. + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and decode in-memory.*/ +unsigned lodepng_decode_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_decode_file, but always decodes to 32-bit RGBA raw image. + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and decode in-memory.*/ +unsigned lodepng_decode32_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename); + +/*Same as lodepng_decode_file, but always decodes to 24-bit RGB raw image. + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and decode in-memory.*/ +unsigned lodepng_decode24_file(unsigned char** out, unsigned* w, unsigned* h, + const char* filename); +#endif /*LODEPNG_COMPILE_DISK*/ +#endif /*LODEPNG_COMPILE_DECODER*/ + + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Converts raw pixel data into a PNG image in memory. The colortype and bitdepth + of the output PNG image cannot be chosen, they are automatically determined + by the colortype, bitdepth and content of the input pixel data. + Note: for 16-bit per channel colors, needs big endian format like PNG does. +out: Output parameter. Pointer to buffer that will contain the PNG image data. + Must be freed after usage with free(*out). +outsize: Output parameter. Pointer to the size in bytes of the out buffer. +image: The raw pixel data to encode. The size of this buffer should be + w * h * (bytes per pixel), bytes per pixel depends on colortype and bitdepth. +w: width of the raw pixel data in pixels. +h: height of the raw pixel data in pixels. +colortype: the color type of the raw input image. See explanation on PNG color types. +bitdepth: the bit depth of the raw input image. See explanation on PNG color types. +Return value: LodePNG error code (0 means no error). +*/ +unsigned lodepng_encode_memory(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_encode_memory, but always encodes from 32-bit RGBA raw image.*/ +unsigned lodepng_encode32(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h); + +/*Same as lodepng_encode_memory, but always encodes from 24-bit RGB raw image.*/ +unsigned lodepng_encode24(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h); + +#ifdef LODEPNG_COMPILE_DISK +/* +Converts raw pixel data into a PNG file on disk. +Same as the other encode functions, but instead takes a filename as output. + +NOTE: This overwrites existing files without warning! + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and encode in-memory.*/ +unsigned lodepng_encode_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth); + +/*Same as lodepng_encode_file, but always encodes from 32-bit RGBA raw image. + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and encode in-memory.*/ +unsigned lodepng_encode32_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h); + +/*Same as lodepng_encode_file, but always encodes from 24-bit RGB raw image. + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and encode in-memory.*/ +unsigned lodepng_encode24_file(const char* filename, + const unsigned char* image, unsigned w, unsigned h); +#endif /*LODEPNG_COMPILE_DISK*/ +#endif /*LODEPNG_COMPILE_ENCODER*/ + + +#ifdef LODEPNG_COMPILE_CPP +namespace lodepng { +#ifdef LODEPNG_COMPILE_DECODER +/*Same as lodepng_decode_memory, but decodes to an std::vector. The colortype +is the format to output the pixels to. Default is RGBA 8-bit per channel.*/ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const unsigned char* in, size_t insize, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::vector& in, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#ifdef LODEPNG_COMPILE_DISK +/* +Converts PNG file from disk to raw pixel data in memory. +Same as the other decode functions, but instead takes a filename as input. + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and decode in-memory. +*/ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::string& filename, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +/*Same as lodepng_encode_memory, but encodes to an std::vector. colortype +is that of the raw input data. The output PNG color type will be auto chosen.*/ +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#ifdef LODEPNG_COMPILE_DISK +/* +Converts 32-bit RGBA raw pixel data into a PNG file on disk. +Same as the other encode functions, but instead takes a filename as output. + +NOTE: This overwrites existing files without warning! + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and decode in-memory. +*/ +unsigned encode(const std::string& filename, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +unsigned encode(const std::string& filename, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype = LCT_RGBA, unsigned bitdepth = 8); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_ENCODER */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ERROR_TEXT +/*Returns an English description of the numerical error code.*/ +const char* lodepng_error_text(unsigned code); +#endif /*LODEPNG_COMPILE_ERROR_TEXT*/ + +#ifdef LODEPNG_COMPILE_DECODER +/*Settings for zlib decompression*/ +typedef struct LodePNGDecompressSettings LodePNGDecompressSettings; +struct LodePNGDecompressSettings { + /* Check LodePNGDecoderSettings for more ignorable errors such as ignore_crc */ + unsigned ignore_adler32; /*if 1, continue and don't give an error message if the Adler32 checksum is corrupted*/ + unsigned ignore_nlen; /*ignore complement of len checksum in uncompressed blocks*/ + + /*Maximum decompressed size, beyond this the decoder may (and is encouraged to) stop decoding, + return an error, output a data size > max_output_size and all the data up to that point. This is + not hard limit nor a guarantee, but can prevent excessive memory usage. This setting is + ignored by the PNG decoder, but is used by the deflate/zlib decoder and can be used by custom ones. + Set to 0 to impose no limit (the default).*/ + size_t max_output_size; + + /*use custom zlib decoder instead of built in one (default: null). + Should return 0 if success, any non-0 if error (numeric value not exposed).*/ + unsigned (*custom_zlib)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGDecompressSettings*); + /*use custom deflate decoder instead of built in one (default: null) + if custom_zlib is not null, custom_inflate is ignored (the zlib format uses deflate). + Should return 0 if success, any non-0 if error (numeric value not exposed).*/ + unsigned (*custom_inflate)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGDecompressSettings*); + + const void* custom_context; /*optional custom settings for custom functions*/ +}; + +extern const LodePNGDecompressSettings lodepng_default_decompress_settings; +void lodepng_decompress_settings_init(LodePNGDecompressSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Settings for zlib compression. Tweaking these settings tweaks the balance +between speed and compression ratio. +*/ +typedef struct LodePNGCompressSettings LodePNGCompressSettings; +struct LodePNGCompressSettings /*deflate = compress*/ { + /*LZ77 related settings*/ + unsigned btype; /*the block type for LZ (0, 1, 2 or 3, see zlib standard). Should be 2 for proper compression.*/ + unsigned use_lz77; /*whether or not to use LZ77. Should be 1 for proper compression.*/ + unsigned windowsize; /*must be a power of two <= 32768. higher compresses more but is slower. Default value: 2048.*/ + unsigned minmatch; /*minimum lz77 length. 3 is normally best, 6 can be better for some PNGs. Default: 0*/ + unsigned nicematch; /*stop searching if >= this length found. Set to 258 for best compression. Default: 128*/ + unsigned lazymatching; /*use lazy matching: better compression but a bit slower. Default: true*/ + + /*use custom zlib encoder instead of built in one (default: null)*/ + unsigned (*custom_zlib)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGCompressSettings*); + /*use custom deflate encoder instead of built in one (default: null) + if custom_zlib is used, custom_deflate is ignored since only the built in + zlib function will call custom_deflate*/ + unsigned (*custom_deflate)(unsigned char**, size_t*, + const unsigned char*, size_t, + const LodePNGCompressSettings*); + + const void* custom_context; /*optional custom settings for custom functions*/ +}; + +extern const LodePNGCompressSettings lodepng_default_compress_settings; +void lodepng_compress_settings_init(LodePNGCompressSettings* settings); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_PNG +/* +Color mode of an image. Contains all information required to decode the pixel +bits to RGBA colors. This information is the same as used in the PNG file +format, and is used both for PNG and raw image data in LodePNG. +*/ +typedef struct LodePNGColorMode { + /*header (IHDR)*/ + LodePNGColorType colortype; /*color type, see PNG standard or documentation further in this header file*/ + unsigned bitdepth; /*bits per sample, see PNG standard or documentation further in this header file*/ + + /* + palette (PLTE and tRNS) + + Dynamically allocated with the colors of the palette, including alpha. + This field may not be allocated directly, use lodepng_color_mode_init first, + then lodepng_palette_add per color to correctly initialize it (to ensure size + of exactly 1024 bytes). + + The alpha channels must be set as well, set them to 255 for opaque images. + + When decoding, with the default settings you can ignore this palette, since + LodePNG already fills the palette colors in the pixels of the raw RGBA output, + but when decoding to the original PNG color mode it is needed to reconstruct + the colors. + + The palette is only supported for color type 3. + */ + unsigned char* palette; /*palette in RGBARGBA... order. Must be either 0, or when allocated must have 1024 bytes*/ + size_t palettesize; /*palette size in number of colors (amount of used bytes is 4 * palettesize)*/ + + /* + transparent color key (tRNS) + + This color uses the same bit depth as the bitdepth value in this struct, which can be 1-bit to 16-bit. + For grayscale PNGs, r, g and b will all 3 be set to the same. + + When decoding, by default you can ignore this information, since LodePNG sets + pixels with this key to transparent already in the raw RGBA output. + + The color key is only supported for color types 0 and 2. + */ + unsigned key_defined; /*is a transparent color key given? 0 = false, 1 = true*/ + unsigned key_r; /*red/grayscale component of color key*/ + unsigned key_g; /*green component of color key*/ + unsigned key_b; /*blue component of color key*/ +} LodePNGColorMode; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_color_mode_init(LodePNGColorMode* info); +void lodepng_color_mode_cleanup(LodePNGColorMode* info); +/*return value is error code (0 means no error)*/ +unsigned lodepng_color_mode_copy(LodePNGColorMode* dest, const LodePNGColorMode* source); +/* Makes a temporary LodePNGColorMode that does not need cleanup (no palette) */ +LodePNGColorMode lodepng_color_mode_make(LodePNGColorType colortype, unsigned bitdepth); + +void lodepng_palette_clear(LodePNGColorMode* info); +/*add 1 color to the palette*/ +unsigned lodepng_palette_add(LodePNGColorMode* info, + unsigned char r, unsigned char g, unsigned char b, unsigned char a); + +/*get the total amount of bits per pixel, based on colortype and bitdepth in the struct*/ +unsigned lodepng_get_bpp(const LodePNGColorMode* info); +/*get the amount of color channels used, based on colortype in the struct. +If a palette is used, it counts as 1 channel.*/ +unsigned lodepng_get_channels(const LodePNGColorMode* info); +/*is it a grayscale type? (only colortype 0 or 4)*/ +unsigned lodepng_is_greyscale_type(const LodePNGColorMode* info); +/*has it got an alpha channel? (only colortype 2 or 6)*/ +unsigned lodepng_is_alpha_type(const LodePNGColorMode* info); +/*has it got a palette? (only colortype 3)*/ +unsigned lodepng_is_palette_type(const LodePNGColorMode* info); +/*only returns true if there is a palette and there is a value in the palette with alpha < 255. +Loops through the palette to check this.*/ +unsigned lodepng_has_palette_alpha(const LodePNGColorMode* info); +/* +Check if the given color info indicates the possibility of having non-opaque pixels in the PNG image. +Returns true if the image can have translucent or invisible pixels (it still be opaque if it doesn't use such pixels). +Returns false if the image can only have opaque pixels. +In detail, it returns true only if it's a color type with alpha, or has a palette with non-opaque values, +or if "key_defined" is true. +*/ +unsigned lodepng_can_have_alpha(const LodePNGColorMode* info); +/*Returns the byte size of a raw image buffer with given width, height and color mode*/ +size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode* color); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*The information of a Time chunk in PNG.*/ +typedef struct LodePNGTime { + unsigned year; /*2 bytes used (0-65535)*/ + unsigned month; /*1-12*/ + unsigned day; /*1-31*/ + unsigned hour; /*0-23*/ + unsigned minute; /*0-59*/ + unsigned second; /*0-60 (to allow for leap seconds)*/ +} LodePNGTime; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/*Information about the PNG image, except pixels, width and height.*/ +typedef struct LodePNGInfo { + /*header (IHDR), palette (PLTE) and transparency (tRNS) chunks*/ + unsigned compression_method;/*compression method of the original file. Always 0.*/ + unsigned filter_method; /*filter method of the original file*/ + unsigned interlace_method; /*interlace method of the original file: 0=none, 1=Adam7*/ + LodePNGColorMode color; /*color type and bits, palette and transparency of the PNG file*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /* + Suggested background color chunk (bKGD) + + This uses the same color mode and bit depth as the PNG (except no alpha channel), + with values truncated to the bit depth in the unsigned integer. + + For grayscale and palette PNGs, the value is stored in background_r. The values + in background_g and background_b are then unused. The decoder will set them + equal to background_r, the encoder ignores them in this case. + + When decoding, you may get these in a different color mode than the one you requested + for the raw pixels: the colortype and bitdepth defined by info_png.color, that is the + ones defined in the header of the PNG image, are used. + + When encoding with auto_convert, you must use the color model defined in info_png.color for + these values. The encoder normally ignores info_png.color when auto_convert is on, but will + use it to interpret these values (and convert copies of them to its chosen color model). + + When encoding, avoid setting this to an expensive color, such as a non-gray value + when the image is gray, or the compression will be worse since it will be forced to + write the PNG with a more expensive color mode (when auto_convert is on). + + The decoder does not use this background color to edit the color of pixels. This is a + completely optional metadata feature. + */ + unsigned background_defined; /*is a suggested background color given?*/ + unsigned background_r; /*red/gray/palette component of suggested background color*/ + unsigned background_g; /*green component of suggested background color*/ + unsigned background_b; /*blue component of suggested background color*/ + + /* + Non-international text chunks (tEXt and zTXt) + + The char** arrays each contain num strings. The actual messages are in + text_strings, while text_keys are keywords that give a short description what + the actual text represents, e.g. Title, Author, Description, or anything else. + + All the string fields below including strings, keys, names and language tags are null terminated. + The PNG specification uses null characters for the keys, names and tags, and forbids null + characters to appear in the main text which is why we can use null termination everywhere here. + + A keyword is minimum 1 character and maximum 79 characters long (plus the + additional null terminator). It's discouraged to use a single line length + longer than 79 characters for texts. + + Don't allocate these text buffers yourself. Use the init/cleanup functions + correctly and use lodepng_add_text and lodepng_clear_text. + + Standard text chunk keywords and strings are encoded using Latin-1. + */ + size_t text_num; /*the amount of texts in these char** buffers (there may be more texts in itext)*/ + char** text_keys; /*the keyword of a text chunk (e.g. "Comment")*/ + char** text_strings; /*the actual text*/ + + /* + International text chunks (iTXt) + Similar to the non-international text chunks, but with additional strings + "langtags" and "transkeys", and the following text encodings are used: + keys: Latin-1, langtags: ASCII, transkeys and strings: UTF-8. + keys must be 1-79 characters (plus the additional null terminator), the other + strings are any length. + */ + size_t itext_num; /*the amount of international texts in this PNG*/ + char** itext_keys; /*the English keyword of the text chunk (e.g. "Comment")*/ + char** itext_langtags; /*language tag for this text's language, ISO/IEC 646 string, e.g. ISO 639 language tag*/ + char** itext_transkeys; /*keyword translated to the international language - UTF-8 string*/ + char** itext_strings; /*the actual international text - UTF-8 string*/ + + /*time chunk (tIME)*/ + unsigned time_defined; /*set to 1 to make the encoder generate a tIME chunk*/ + LodePNGTime time; + + /*phys chunk (pHYs)*/ + unsigned phys_defined; /*if 0, there is no pHYs chunk and the values below are undefined, if 1 else there is one*/ + unsigned phys_x; /*pixels per unit in x direction*/ + unsigned phys_y; /*pixels per unit in y direction*/ + unsigned phys_unit; /*may be 0 (unknown unit) or 1 (metre)*/ + + /* + Color profile related chunks: gAMA, cHRM, sRGB, iCPP, sBIT + + LodePNG does not apply any color conversions on pixels in the encoder or decoder and does not interpret these color + profile values. It merely passes on the information. If you wish to use color profiles and convert colors, please + use these values with a color management library. + + See the PNG, ICC and sRGB specifications for more information about the meaning of these values. + */ + + /* gAMA chunk: optional, overridden by sRGB or iCCP if those are present. */ + unsigned gama_defined; /* Whether a gAMA chunk is present (0 = not present, 1 = present). */ + unsigned gama_gamma; /* Gamma exponent times 100000 */ + + /* cHRM chunk: optional, overridden by sRGB or iCCP if those are present. */ + unsigned chrm_defined; /* Whether a cHRM chunk is present (0 = not present, 1 = present). */ + unsigned chrm_white_x; /* White Point x times 100000 */ + unsigned chrm_white_y; /* White Point y times 100000 */ + unsigned chrm_red_x; /* Red x times 100000 */ + unsigned chrm_red_y; /* Red y times 100000 */ + unsigned chrm_green_x; /* Green x times 100000 */ + unsigned chrm_green_y; /* Green y times 100000 */ + unsigned chrm_blue_x; /* Blue x times 100000 */ + unsigned chrm_blue_y; /* Blue y times 100000 */ + + /* + sRGB chunk: optional. May not appear at the same time as iCCP. + If gAMA is also present gAMA must contain value 45455. + If cHRM is also present cHRM must contain respectively 31270,32900,64000,33000,30000,60000,15000,6000. + */ + unsigned srgb_defined; /* Whether an sRGB chunk is present (0 = not present, 1 = present). */ + unsigned srgb_intent; /* Rendering intent: 0=perceptual, 1=rel. colorimetric, 2=saturation, 3=abs. colorimetric */ + + /* + iCCP chunk: optional. May not appear at the same time as sRGB. + + LodePNG does not parse or use the ICC profile (except its color space header field for an edge case), a + separate library to handle the ICC data (not included in LodePNG) format is needed to use it for color + management and conversions. + + For encoding, if iCCP is present, gAMA and cHRM are recommended to be added as well with values that match the ICC + profile as closely as possible, if you wish to do this you should provide the correct values for gAMA and cHRM and + enable their '_defined' flags since LodePNG will not automatically compute them from the ICC profile. + + For encoding, the ICC profile is required by the PNG specification to be an "RGB" profile for non-gray + PNG color types and a "GRAY" profile for gray PNG color types. If you disable auto_convert, you must ensure + the ICC profile type matches your requested color type, else the encoder gives an error. If auto_convert is + enabled (the default), and the ICC profile is not a good match for the pixel data, this will result in an encoder + error if the pixel data has non-gray pixels for a GRAY profile, or a silent less-optimal compression of the pixel + data if the pixels could be encoded as grayscale but the ICC profile is RGB. + + To avoid this do not set an ICC profile in the image unless there is a good reason for it, and when doing so + make sure you compute it carefully to avoid the above problems. + */ + unsigned iccp_defined; /* Whether an iCCP chunk is present (0 = not present, 1 = present). */ + char* iccp_name; /* Null terminated string with profile name, 1-79 bytes */ + /* + The ICC profile in iccp_profile_size bytes. + Don't allocate this buffer yourself. Use the init/cleanup functions + correctly and use lodepng_set_icc and lodepng_clear_icc. + */ + unsigned char* iccp_profile; + unsigned iccp_profile_size; /* The size of iccp_profile in bytes */ + + /* + sBIT chunk: significant bits. Optional metadata, only set this if needed. + + If defined, these values give the bit depth of the original data. Since PNG only stores 1, 2, 4, 8 or 16-bit + per channel data, the significant bits value can be used to indicate the original encoded data has another + sample depth, such as 10 or 12. + + Encoders using this value, when storing the pixel data, should use the most significant bits + of the data to store the original bits, and use a good sample depth scaling method such as + "left bit replication" to fill in the least significant bits, rather than fill zeroes. + + Decoders using this value, if able to work with data that's e.g. 10-bit or 12-bit, should right + shift the data to go back to the original bit depth, but decoders are also allowed to ignore + sbit and work e.g. with the 8-bit or 16-bit data from the PNG directly, since thanks + to the encoder contract, the values encoded in PNG are in valid range for the PNG bit depth. + + For grayscale images, sbit_g and sbit_b are not used, and for images that don't use color + type RGBA or grayscale+alpha, sbit_a is not used (it's not used even for palette images with + translucent palette values, or images with color key). The values that are used must be + greater than zero and smaller than or equal to the PNG bit depth. + + The color type from the header in the PNG image defines these used and unused fields: if + decoding with a color mode conversion, such as always decoding to RGBA, this metadata still + only uses the color type of the original PNG, and may e.g. lack the alpha channel info + if the PNG was RGB. When encoding with auto_convert (as well as without), also always the + color model defined in info_png.color determines this. + + NOTE: enabling sbit can hurt compression, because the encoder can then not always use + auto_convert to choose a more optimal color mode for the data, because the PNG format has + strict requirements for the allowed sbit values in combination with color modes. + For example, setting these fields to 10-bit will force the encoder to keep using a 16-bit per channel + color mode, even if the pixel data would in fact fit in a more efficient 8-bit mode. + */ + unsigned sbit_defined; /*is significant bits given? if not, the values below are unused*/ + unsigned sbit_r; /*red or gray component of significant bits*/ + unsigned sbit_g; /*green component of significant bits*/ + unsigned sbit_b; /*blue component of significant bits*/ + unsigned sbit_a; /*alpha component of significant bits*/ + + /* End of color profile related chunks */ + + + /* + unknown chunks: chunks not known by LodePNG, passed on byte for byte. + + There are 3 buffers, one for each position in the PNG where unknown chunks can appear. + Each buffer contains all unknown chunks for that position consecutively. + The 3 positions are: + 0: between IHDR and PLTE, 1: between PLTE and IDAT, 2: between IDAT and IEND. + + For encoding, do not store critical chunks or known chunks that are enabled with a "_defined" flag + above in here, since the encoder will blindly follow this and could then encode an invalid PNG file + (such as one with two IHDR chunks or the disallowed combination of sRGB with iCCP). But do use + this if you wish to store an ancillary chunk that is not supported by LodePNG (such as sPLT or hIST), + or any non-standard PNG chunk. + + Do not allocate or traverse this data yourself. Use the chunk traversing functions declared + later, such as lodepng_chunk_next and lodepng_chunk_append, to read/write this struct. + */ + unsigned char* unknown_chunks_data[3]; + size_t unknown_chunks_size[3]; /*size in bytes of the unknown chunks, given for protection*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGInfo; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_info_init(LodePNGInfo* info); +void lodepng_info_cleanup(LodePNGInfo* info); +/*return value is error code (0 means no error)*/ +unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +unsigned lodepng_add_text(LodePNGInfo* info, const char* key, const char* str); /*push back both texts at once*/ +void lodepng_clear_text(LodePNGInfo* info); /*use this to clear the texts again after you filled them in*/ + +unsigned lodepng_add_itext(LodePNGInfo* info, const char* key, const char* langtag, + const char* transkey, const char* str); /*push back the 4 texts of 1 chunk at once*/ +void lodepng_clear_itext(LodePNGInfo* info); /*use this to clear the itexts again after you filled them in*/ + +/*replaces if exists*/ +unsigned lodepng_set_icc(LodePNGInfo* info, const char* name, const unsigned char* profile, unsigned profile_size); +void lodepng_clear_icc(LodePNGInfo* info); /*use this to clear the texts again after you filled them in*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/* +Converts raw buffer from one color type to another color type, based on +LodePNGColorMode structs to describe the input and output color type. +See the reference manual at the end of this header file to see which color conversions are supported. +return value = LodePNG error code (0 if all went ok, an error if the conversion isn't supported) +The out buffer must have size (w * h * bpp + 7) / 8, where bpp is the bits per pixel +of the output color type (lodepng_get_bpp). +For < 8 bpp images, there should not be padding bits at the end of scanlines. +For 16-bit per channel colors, uses big endian format like PNG does. +Return value is LodePNG error code +*/ +unsigned lodepng_convert(unsigned char* out, const unsigned char* in, + const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in, + unsigned w, unsigned h); + +#ifdef LODEPNG_COMPILE_DECODER +/* +Settings for the decoder. This contains settings for the PNG and the Zlib +decoder, but not the Info settings from the Info structs. +*/ +typedef struct LodePNGDecoderSettings { + LodePNGDecompressSettings zlibsettings; /*in here is the setting to ignore Adler32 checksums*/ + + /* Check LodePNGDecompressSettings for more ignorable errors such as ignore_adler32 */ + unsigned ignore_crc; /*ignore CRC checksums*/ + unsigned ignore_critical; /*ignore unknown critical chunks*/ + unsigned ignore_end; /*ignore issues at end of file if possible (missing IEND chunk, too large chunk, ...)*/ + /* TODO: make a system involving warnings with levels and a strict mode instead. Other potentially recoverable + errors: srgb rendering intent value, size of content of ancillary chunks, more than 79 characters for some + strings, placement/combination rules for ancillary chunks, crc of unknown chunks, allowed characters + in string keys, etc... */ + + unsigned color_convert; /*whether to convert the PNG to the color type you want. Default: yes*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + unsigned read_text_chunks; /*if false but remember_unknown_chunks is true, they're stored in the unknown chunks*/ + + /*store all bytes from unknown chunks in the LodePNGInfo (off by default, useful for a png editor)*/ + unsigned remember_unknown_chunks; + + /* maximum size for decompressed text chunks. If a text chunk's text is larger than this, an error is returned, + unless reading text chunks is disabled or this limit is set higher or disabled. Set to 0 to allow any size. + By default it is a value that prevents unreasonably large strings from hogging memory. */ + size_t max_text_size; + + /* maximum size for compressed ICC chunks. If the ICC profile is larger than this, an error will be returned. Set to + 0 to allow any size. By default this is a value that prevents ICC profiles that would be much larger than any + legitimate profile could be to hog memory. */ + size_t max_icc_size; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGDecoderSettings; + +void lodepng_decoder_settings_init(LodePNGDecoderSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/*automatically use color type with less bits per pixel if losslessly possible. Default: AUTO*/ +typedef enum LodePNGFilterStrategy { + /*every filter at zero*/ + LFS_ZERO = 0, + /*every filter at 1, 2, 3 or 4 (paeth), unlike LFS_ZERO not a good choice, but for testing*/ + LFS_ONE = 1, + LFS_TWO = 2, + LFS_THREE = 3, + LFS_FOUR = 4, + /*Use filter that gives minimum sum, as described in the official PNG filter heuristic.*/ + LFS_MINSUM, + /*Use the filter type that gives smallest Shannon entropy for this scanline. Depending + on the image, this is better or worse than minsum.*/ + LFS_ENTROPY, + /* + Brute-force-search PNG filters by compressing each filter for each scanline. + Experimental, very slow, and only rarely gives better compression than MINSUM. + */ + LFS_BRUTE_FORCE, + /*use predefined_filters buffer: you specify the filter type for each scanline*/ + LFS_PREDEFINED +} LodePNGFilterStrategy; + +/*Gives characteristics about the integer RGBA colors of the image (count, alpha channel usage, bit depth, ...), +which helps decide which color model to use for encoding. +Used internally by default if "auto_convert" is enabled. Public because it's useful for custom algorithms.*/ +typedef struct LodePNGColorStats { + unsigned colored; /*not grayscale*/ + unsigned key; /*image is not opaque and color key is possible instead of full alpha*/ + unsigned short key_r; /*key values, always as 16-bit, in 8-bit case the byte is duplicated, e.g. 65535 means 255*/ + unsigned short key_g; + unsigned short key_b; + unsigned alpha; /*image is not opaque and alpha channel or alpha palette required*/ + unsigned numcolors; /*amount of colors, up to 257. Not valid if bits == 16 or allow_palette is disabled.*/ + unsigned char palette[1024]; /*Remembers up to the first 256 RGBA colors, in no particular order, only valid when numcolors is valid*/ + unsigned bits; /*bits per channel (not for palette). 1,2 or 4 for grayscale only. 16 if 16-bit per channel required.*/ + size_t numpixels; + + /*user settings for computing/using the stats*/ + unsigned allow_palette; /*default 1. if 0, disallow choosing palette colortype in auto_choose_color, and don't count numcolors*/ + unsigned allow_greyscale; /*default 1. if 0, choose RGB or RGBA even if the image only has gray colors*/ +} LodePNGColorStats; + +void lodepng_color_stats_init(LodePNGColorStats* stats); + +/*Get a LodePNGColorStats of the image. The stats must already have been inited. +Returns error code (e.g. alloc fail) or 0 if ok.*/ +unsigned lodepng_compute_color_stats(LodePNGColorStats* stats, + const unsigned char* image, unsigned w, unsigned h, + const LodePNGColorMode* mode_in); + +/*Settings for the encoder.*/ +typedef struct LodePNGEncoderSettings { + LodePNGCompressSettings zlibsettings; /*settings for the zlib encoder, such as window size, ...*/ + + unsigned auto_convert; /*automatically choose output PNG color type. Default: true*/ + + /*If true, follows the official PNG heuristic: if the PNG uses a palette or lower than + 8 bit depth, set all filters to zero. Otherwise use the filter_strategy. Note that to + completely follow the official PNG heuristic, filter_palette_zero must be true and + filter_strategy must be LFS_MINSUM*/ + unsigned filter_palette_zero; + /*Which filter strategy to use when not using zeroes due to filter_palette_zero. + Set filter_palette_zero to 0 to ensure always using your chosen strategy. Default: LFS_MINSUM*/ + LodePNGFilterStrategy filter_strategy; + /*used if filter_strategy is LFS_PREDEFINED. In that case, this must point to a buffer with + the same length as the amount of scanlines in the image, and each value must <= 5. You + have to cleanup this buffer, LodePNG will never free it. Don't forget that filter_palette_zero + must be set to 0 to ensure this is also used on palette or low bitdepth images.*/ + const unsigned char* predefined_filters; + + /*force creating a PLTE chunk if colortype is 2 or 6 (= a suggested palette). + If colortype is 3, PLTE is always created. If color type is explicitely set + to a grayscale type (1 or 4), this is not done and is ignored. If enabling this, + a palette must be present in the info_png. + NOTE: enabling this may worsen compression if auto_convert is used to choose + optimal color mode, because it cannot use grayscale color modes in this case*/ + unsigned force_palette; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*add LodePNG identifier and version as a text chunk, for debugging*/ + unsigned add_id; + /*encode text chunks as zTXt chunks instead of tEXt chunks, and use compression in iTXt chunks*/ + unsigned text_compression; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} LodePNGEncoderSettings; + +void lodepng_encoder_settings_init(LodePNGEncoderSettings* settings); +#endif /*LODEPNG_COMPILE_ENCODER*/ + + +#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) +/*The settings, state and information for extended encoding and decoding.*/ +typedef struct LodePNGState { +#ifdef LODEPNG_COMPILE_DECODER + LodePNGDecoderSettings decoder; /*the decoding settings*/ +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER + LodePNGEncoderSettings encoder; /*the encoding settings*/ +#endif /*LODEPNG_COMPILE_ENCODER*/ + LodePNGColorMode info_raw; /*specifies the format in which you would like to get the raw pixel buffer*/ + LodePNGInfo info_png; /*info of the PNG image obtained after decoding*/ + unsigned error; +} LodePNGState; + +/*init, cleanup and copy functions to use with this struct*/ +void lodepng_state_init(LodePNGState* state); +void lodepng_state_cleanup(LodePNGState* state); +void lodepng_state_copy(LodePNGState* dest, const LodePNGState* source); +#endif /* defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) */ + +#ifdef LODEPNG_COMPILE_DECODER +/* +Same as lodepng_decode_memory, but uses a LodePNGState to allow custom settings and +getting much more information about the PNG image and color mode. +*/ +unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize); + +/* +Read the PNG header, but not the actual data. This returns only the information +that is in the IHDR chunk of the PNG, such as width, height and color type. The +information is placed in the info_png field of the LodePNGState. +*/ +unsigned lodepng_inspect(unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize); +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* +Reads one metadata chunk (other than IHDR, which is handled by lodepng_inspect) +of the PNG file and outputs what it read in the state. Returns error code on failure. +Use lodepng_inspect first with a new state, then e.g. lodepng_chunk_find_const +to find the desired chunk type, and if non null use lodepng_inspect_chunk (with +chunk_pointer - start_of_file as pos). +Supports most metadata chunks from the PNG standard (gAMA, bKGD, tEXt, ...). +Ignores unsupported, unknown, non-metadata or IHDR chunks (without error). +Requirements: &in[pos] must point to start of a chunk, must use regular +lodepng_inspect first since format of most other chunks depends on IHDR, and if +there is a PLTE chunk, that one must be inspected before tRNS or bKGD. +*/ +unsigned lodepng_inspect_chunk(LodePNGState* state, size_t pos, + const unsigned char* in, size_t insize); + +#ifdef LODEPNG_COMPILE_ENCODER +/*This function allocates the out buffer with standard malloc and stores the size in *outsize.*/ +unsigned lodepng_encode(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGState* state); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/* +The lodepng_chunk functions are normally not needed, except to traverse the +unknown chunks stored in the LodePNGInfo struct, or add new ones to it. +It also allows traversing the chunks of an encoded PNG file yourself. + +The chunk pointer always points to the beginning of the chunk itself, that is +the first byte of the 4 length bytes. + +In the PNG file format, chunks have the following format: +-4 bytes length: length of the data of the chunk in bytes (chunk itself is 12 bytes longer) +-4 bytes chunk type (ASCII a-z,A-Z only, see below) +-length bytes of data (may be 0 bytes if length was 0) +-4 bytes of CRC, computed on chunk name + data + +The first chunk starts at the 8th byte of the PNG file, the entire rest of the file +exists out of concatenated chunks with the above format. + +PNG standard chunk ASCII naming conventions: +-First byte: uppercase = critical, lowercase = ancillary +-Second byte: uppercase = public, lowercase = private +-Third byte: must be uppercase +-Fourth byte: uppercase = unsafe to copy, lowercase = safe to copy +*/ + +/* +Gets the length of the data of the chunk. Total chunk length has 12 bytes more. +There must be at least 4 bytes to read from. If the result value is too large, +it may be corrupt data. +*/ +unsigned lodepng_chunk_length(const unsigned char* chunk); + +/*puts the 4-byte type in null terminated string*/ +void lodepng_chunk_type(char type[5], const unsigned char* chunk); + +/*check if the type is the given type*/ +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type); + +/*0: it's one of the critical chunk types, 1: it's an ancillary chunk (see PNG standard)*/ +unsigned char lodepng_chunk_ancillary(const unsigned char* chunk); + +/*0: public, 1: private (see PNG standard)*/ +unsigned char lodepng_chunk_private(const unsigned char* chunk); + +/*0: the chunk is unsafe to copy, 1: the chunk is safe to copy (see PNG standard)*/ +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk); + +/*get pointer to the data of the chunk, where the input points to the header of the chunk*/ +unsigned char* lodepng_chunk_data(unsigned char* chunk); +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk); + +/*returns 0 if the crc is correct, 1 if it's incorrect (0 for OK as usual!)*/ +unsigned lodepng_chunk_check_crc(const unsigned char* chunk); + +/*generates the correct CRC from the data and puts it in the last 4 bytes of the chunk*/ +void lodepng_chunk_generate_crc(unsigned char* chunk); + +/* +Iterate to next chunks, allows iterating through all chunks of the PNG file. +Input must be at the beginning of a chunk (result of a previous lodepng_chunk_next call, +or the 8th byte of a PNG file which always has the first chunk), or alternatively may +point to the first byte of the PNG file (which is not a chunk but the magic header, the +function will then skip over it and return the first real chunk). +Will output pointer to the start of the next chunk, or at or beyond end of the file if there +is no more chunk after this or possibly if the chunk is corrupt. +Start this process at the 8th byte of the PNG file. +In a non-corrupt PNG file, the last chunk should have name "IEND". +*/ +unsigned char* lodepng_chunk_next(unsigned char* chunk, unsigned char* end); +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk, const unsigned char* end); + +/*Finds the first chunk with the given type in the range [chunk, end), or returns NULL if not found.*/ +unsigned char* lodepng_chunk_find(unsigned char* chunk, unsigned char* end, const char type[5]); +const unsigned char* lodepng_chunk_find_const(const unsigned char* chunk, const unsigned char* end, const char type[5]); + +/* +Appends chunk to the data in out. The given chunk should already have its chunk header. +The out variable and outsize are updated to reflect the new reallocated buffer. +Returns error code (0 if it went ok) +*/ +unsigned lodepng_chunk_append(unsigned char** out, size_t* outsize, const unsigned char* chunk); + +/* +Appends new chunk to out. The chunk to append is given by giving its length, type +and data separately. The type is a 4-letter string. +The out variable and outsize are updated to reflect the new reallocated buffer. +Returne error code (0 if it went ok) +*/ +unsigned lodepng_chunk_create(unsigned char** out, size_t* outsize, unsigned length, + const char* type, const unsigned char* data); + + +/*Calculate CRC32 of buffer*/ +unsigned lodepng_crc32(const unsigned char* buf, size_t len); +#endif /*LODEPNG_COMPILE_PNG*/ + + +#ifdef LODEPNG_COMPILE_ZLIB +/* +This zlib part can be used independently to zlib compress and decompress a +buffer. It cannot be used to create gzip files however, and it only supports the +part of zlib that is required for PNG, it does not support dictionaries. +*/ + +#ifdef LODEPNG_COMPILE_DECODER +/*Inflate a buffer. Inflate is the decompression step of deflate. Out buffer must be freed after use.*/ +unsigned lodepng_inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings); + +/* +Decompresses Zlib data. Reallocates the out buffer and appends the data. The +data must be according to the zlib specification. +Either, *out must be NULL and *outsize must be 0, or, *out must be a valid +buffer and *outsize its size in bytes. out must be freed by user after usage. +*/ +unsigned lodepng_zlib_decompress(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* +Compresses data with Zlib. Reallocates the out buffer and appends the data. +Zlib adds a small header and trailer around the deflate data. +The data is output in the format of the zlib specification. +Either, *out must be NULL and *outsize must be 0, or, *out must be a valid +buffer and *outsize its size in bytes. out must be freed by user after usage. +*/ +unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings); + +/* +Find length-limited Huffman code for given frequencies. This function is in the +public interface only for tests, it's used internally by lodepng_deflate. +*/ +unsigned lodepng_huffman_code_lengths(unsigned* lengths, const unsigned* frequencies, + size_t numcodes, unsigned maxbitlen); + +/*Compress a buffer with deflate. See RFC 1951. Out buffer must be freed after use.*/ +unsigned lodepng_deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings); + +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_ZLIB*/ + +#ifdef LODEPNG_COMPILE_DISK +/* +Load a file from disk into buffer. The function allocates the out buffer, and +after usage you should free it. +out: output parameter, contains pointer to loaded buffer. +outsize: output parameter, size of the allocated out buffer +filename: the path to the file to load +return value: error code (0 means ok) + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and decode in-memory. +*/ +unsigned lodepng_load_file(unsigned char** out, size_t* outsize, const char* filename); + +/* +Save a file from buffer to disk. Warning, if it exists, this function overwrites +the file without warning! +buffer: the buffer to write +buffersize: size of the buffer to write +filename: the path to the file to save to +return value: error code (0 means ok) + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and encode in-memory +*/ +unsigned lodepng_save_file(const unsigned char* buffer, size_t buffersize, const char* filename); +#endif /*LODEPNG_COMPILE_DISK*/ + +#ifdef LODEPNG_COMPILE_CPP +/* The LodePNG C++ wrapper uses std::vectors instead of manually allocated memory buffers. */ +namespace lodepng { +#ifdef LODEPNG_COMPILE_PNG +class State : public LodePNGState { + public: + State(); + State(const State& other); + ~State(); + State& operator=(const State& other); +}; + +#ifdef LODEPNG_COMPILE_DECODER +/* Same as other lodepng::decode, but using a State for more settings and information. */ +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const unsigned char* in, size_t insize); +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const std::vector& in); +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER +/* Same as other lodepng::encode, but using a State for more settings and information. */ +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + State& state); +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + State& state); +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DISK +/* +Load a file from disk into an std::vector. +return value: error code (0 means ok) + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and decode in-memory +*/ +unsigned load_file(std::vector& buffer, const std::string& filename); + +/* +Save the binary data in an std::vector to a file on disk. The file is overwritten +without warning. + +NOTE: Wide-character filenames are not supported, you can use an external method +to handle such files and encode in-memory +*/ +unsigned save_file(const std::vector& buffer, const std::string& filename); +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_PNG */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_DECODER +/* Zlib-decompress an unsigned char buffer */ +unsigned decompress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); + +/* Zlib-decompress an std::vector */ +unsigned decompress(std::vector& out, const std::vector& in, + const LodePNGDecompressSettings& settings = lodepng_default_decompress_settings); +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +/* Zlib-compress an unsigned char buffer */ +unsigned compress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings& settings = lodepng_default_compress_settings); + +/* Zlib-compress an std::vector */ +unsigned compress(std::vector& out, const std::vector& in, + const LodePNGCompressSettings& settings = lodepng_default_compress_settings); +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_ZLIB */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ + +/* +TODO: +[.] test if there are no memory leaks or security exploits - done a lot but needs to be checked often +[.] check compatibility with various compilers - done but needs to be redone for every newer version +[X] converting color to 16-bit per channel types +[X] support color profile chunk types (but never let them touch RGB values by default) +[ ] support all public PNG chunk types (almost done except sPLT and hIST) +[ ] make sure encoder generates no chunks with size > (2^31)-1 +[ ] partial decoding (stream processing) +[X] let the "isFullyOpaque" function check color keys and transparent palettes too +[X] better name for the variables "codes", "codesD", "codelengthcodes", "clcl" and "lldl" +[ ] allow treating some errors like warnings, when image is recoverable (e.g. 69, 57, 58) +[ ] make warnings like: oob palette, checksum fail, data after iend, wrong/unknown crit chunk, no null terminator in text, ... +[ ] error messages with line numbers (and version) +[ ] errors in state instead of as return code? +[ ] new errors/warnings like suspiciously big decompressed ztxt or iccp chunk +[ ] let the C++ wrapper catch exceptions coming from the standard library and return LodePNG error codes +[ ] allow user to provide custom color conversion functions, e.g. for premultiplied alpha, padding bits or not, ... +[ ] allow user to give data (void*) to custom allocator +[X] provide alternatives for C library functions not present on some platforms (memcpy, ...) +*/ + +#endif /*LODEPNG_H inclusion guard*/ + +/* +LodePNG Documentation +--------------------- + +0. table of contents +-------------------- + + 1. about + 1.1. supported features + 1.2. features not supported + 2. C and C++ version + 3. security + 4. decoding + 5. encoding + 6. color conversions + 6.1. PNG color types + 6.2. color conversions + 6.3. padding bits + 6.4. A note about 16-bits per channel and endianness + 7. error values + 8. chunks and PNG editing + 9. compiler support + 10. examples + 10.1. decoder C++ example + 10.2. decoder C example + 11. state settings reference + 12. changes + 13. contact information + + +1. about +-------- + +PNG is a file format to store raster images losslessly with good compression, +supporting different color types and alpha channel. + +LodePNG is a PNG codec according to the Portable Network Graphics (PNG) +Specification (Second Edition) - W3C Recommendation 10 November 2003. + +The specifications used are: + +*) Portable Network Graphics (PNG) Specification (Second Edition): + http://www.w3.org/TR/2003/REC-PNG-20031110 +*) RFC 1950 ZLIB Compressed Data Format version 3.3: + http://www.gzip.org/zlib/rfc-zlib.html +*) RFC 1951 DEFLATE Compressed Data Format Specification ver 1.3: + http://www.gzip.org/zlib/rfc-deflate.html + +The most recent version of LodePNG can currently be found at +http://lodev.org/lodepng/ + +LodePNG works both in C (ISO C90) and C++, with a C++ wrapper that adds +extra functionality. + +LodePNG exists out of two files: +-lodepng.h: the header file for both C and C++ +-lodepng.c(pp): give it the name lodepng.c or lodepng.cpp (or .cc) depending on your usage + +If you want to start using LodePNG right away without reading this doc, get the +examples from the LodePNG website to see how to use it in code, or check the +smaller examples in chapter 13 here. + +LodePNG is simple but only supports the basic requirements. To achieve +simplicity, the following design choices were made: There are no dependencies +on any external library. There are functions to decode and encode a PNG with +a single function call, and extended versions of these functions taking a +LodePNGState struct allowing to specify or get more information. By default +the colors of the raw image are always RGB or RGBA, no matter what color type +the PNG file uses. To read and write files, there are simple functions to +convert the files to/from buffers in memory. + +This all makes LodePNG suitable for loading textures in games, demos and small +programs, ... It's less suitable for full fledged image editors, loading PNGs +over network (it requires all the image data to be available before decoding can +begin), life-critical systems, ... + +1.1. supported features +----------------------- + +The following features are supported by the decoder: + +*) decoding of PNGs with any color type, bit depth and interlace mode, to a 24- or 32-bit color raw image, + or the same color type as the PNG +*) encoding of PNGs, from any raw image to 24- or 32-bit color, or the same color type as the raw image +*) Adam7 interlace and deinterlace for any color type +*) loading the image from harddisk or decoding it from a buffer from other sources than harddisk +*) support for alpha channels, including RGBA color model, translucent palettes and color keying +*) zlib decompression (inflate) +*) zlib compression (deflate) +*) CRC32 and ADLER32 checksums +*) colorimetric color profile conversions: currently experimentally available in lodepng_util.cpp only, + plus alternatively ability to pass on chroma/gamma/ICC profile information to other color management system. +*) handling of unknown chunks, allowing making a PNG editor that stores custom and unknown chunks. +*) the following chunks are supported by both encoder and decoder: + IHDR: header information + PLTE: color palette + IDAT: pixel data + IEND: the final chunk + tRNS: transparency for palettized images + tEXt: textual information + zTXt: compressed textual information + iTXt: international textual information + bKGD: suggested background color + pHYs: physical dimensions + tIME: modification time + cHRM: RGB chromaticities + gAMA: RGB gamma correction + iCCP: ICC color profile + sRGB: rendering intent + sBIT: significant bits + +1.2. features not supported +--------------------------- + +The following features are not (yet) supported: + +*) some features needed to make a conformant PNG-Editor might be still missing. +*) partial loading/stream processing. All data must be available and is processed in one call. +*) The hIST and sPLT public chunks are not (yet) supported but treated as unknown chunks + + +2. C and C++ version +-------------------- + +The C version uses buffers allocated with alloc that you need to free() +yourself. You need to use init and cleanup functions for each struct whenever +using a struct from the C version to avoid exploits and memory leaks. + +The C++ version has extra functions with std::vectors in the interface and the +lodepng::State class which is a LodePNGState with constructor and destructor. + +These files work without modification for both C and C++ compilers because all +the additional C++ code is in "#ifdef __cplusplus" blocks that make C-compilers +ignore it, and the C code is made to compile both with strict ISO C90 and C++. + +To use the C++ version, you need to rename the source file to lodepng.cpp +(instead of lodepng.c), and compile it with a C++ compiler. + +To use the C version, you need to rename the source file to lodepng.c (instead +of lodepng.cpp), and compile it with a C compiler. + + +3. Security +----------- + +Even if carefully designed, it's always possible that LodePNG contains possible +exploits. If you discover one, please let me know, and it will be fixed. + +When using LodePNG, care has to be taken with the C version of LodePNG, as well +as the C-style structs when working with C++. The following conventions are used +for all C-style structs: + +-if a struct has a corresponding init function, always call the init function when making a new one +-if a struct has a corresponding cleanup function, call it before the struct disappears to avoid memory leaks +-if a struct has a corresponding copy function, use the copy function instead of "=". + The destination must also be inited already. + + +4. Decoding +----------- + +Decoding converts a PNG compressed image to a raw pixel buffer. + +Most documentation on using the decoder is at its declarations in the header +above. For C, simple decoding can be done with functions such as +lodepng_decode32, and more advanced decoding can be done with the struct +LodePNGState and lodepng_decode. For C++, all decoding can be done with the +various lodepng::decode functions, and lodepng::State can be used for advanced +features. + +When using the LodePNGState, it uses the following fields for decoding: +*) LodePNGInfo info_png: it stores extra information about the PNG (the input) in here +*) LodePNGColorMode info_raw: here you can say what color mode of the raw image (the output) you want to get +*) LodePNGDecoderSettings decoder: you can specify a few extra settings for the decoder to use + +LodePNGInfo info_png +-------------------- + +After decoding, this contains extra information of the PNG image, except the actual +pixels, width and height because these are already gotten directly from the decoder +functions. + +It contains for example the original color type of the PNG image, text comments, +suggested background color, etc... More details about the LodePNGInfo struct are +at its declaration documentation. + +LodePNGColorMode info_raw +------------------------- + +When decoding, here you can specify which color type you want +the resulting raw image to be. If this is different from the colortype of the +PNG, then the decoder will automatically convert the result. This conversion +always works, except if you want it to convert a color PNG to grayscale or to +a palette with missing colors. + +By default, 32-bit color is used for the result. + +LodePNGDecoderSettings decoder +------------------------------ + +The settings can be used to ignore the errors created by invalid CRC and Adler32 +chunks, and to disable the decoding of tEXt chunks. + +There's also a setting color_convert, true by default. If false, no conversion +is done, the resulting data will be as it was in the PNG (after decompression) +and you'll have to puzzle the colors of the pixels together yourself using the +color type information in the LodePNGInfo. + + +5. Encoding +----------- + +Encoding converts a raw pixel buffer to a PNG compressed image. + +Most documentation on using the encoder is at its declarations in the header +above. For C, simple encoding can be done with functions such as +lodepng_encode32, and more advanced decoding can be done with the struct +LodePNGState and lodepng_encode. For C++, all encoding can be done with the +various lodepng::encode functions, and lodepng::State can be used for advanced +features. + +Like the decoder, the encoder can also give errors. However it gives less errors +since the encoder input is trusted, the decoder input (a PNG image that could +be forged by anyone) is not trusted. + +When using the LodePNGState, it uses the following fields for encoding: +*) LodePNGInfo info_png: here you specify how you want the PNG (the output) to be. +*) LodePNGColorMode info_raw: here you say what color type of the raw image (the input) has +*) LodePNGEncoderSettings encoder: you can specify a few settings for the encoder to use + +LodePNGInfo info_png +-------------------- + +When encoding, you use this the opposite way as when decoding: for encoding, +you fill in the values you want the PNG to have before encoding. By default it's +not needed to specify a color type for the PNG since it's automatically chosen, +but it's possible to choose it yourself given the right settings. + +The encoder will not always exactly match the LodePNGInfo struct you give, +it tries as close as possible. Some things are ignored by the encoder. The +encoder uses, for example, the following settings from it when applicable: +colortype and bitdepth, text chunks, time chunk, the color key, the palette, the +background color, the interlace method, unknown chunks, ... + +When encoding to a PNG with colortype 3, the encoder will generate a PLTE chunk. +If the palette contains any colors for which the alpha channel is not 255 (so +there are translucent colors in the palette), it'll add a tRNS chunk. + +LodePNGColorMode info_raw +------------------------- + +You specify the color type of the raw image that you give to the input here, +including a possible transparent color key and palette you happen to be using in +your raw image data. + +By default, 32-bit color is assumed, meaning your input has to be in RGBA +format with 4 bytes (unsigned chars) per pixel. + +LodePNGEncoderSettings encoder +------------------------------ + +The following settings are supported (some are in sub-structs): +*) auto_convert: when this option is enabled, the encoder will +automatically choose the smallest possible color mode (including color key) that +can encode the colors of all pixels without information loss. +*) btype: the block type for LZ77. 0 = uncompressed, 1 = fixed huffman tree, + 2 = dynamic huffman tree (best compression). Should be 2 for proper + compression. +*) use_lz77: whether or not to use LZ77 for compressed block types. Should be + true for proper compression. +*) windowsize: the window size used by the LZ77 encoder (1 - 32768). Has value + 2048 by default, but can be set to 32768 for better, but slow, compression. +*) force_palette: if colortype is 2 or 6, you can make the encoder write a PLTE + chunk if force_palette is true. This can used as suggested palette to convert + to by viewers that don't support more than 256 colors (if those still exist) +*) add_id: add text chunk "Encoder: LodePNG " to the image. +*) text_compression: default 1. If 1, it'll store texts as zTXt instead of tEXt chunks. + zTXt chunks use zlib compression on the text. This gives a smaller result on + large texts but a larger result on small texts (such as a single program name). + It's all tEXt or all zTXt though, there's no separate setting per text yet. + + +6. color conversions +-------------------- + +An important thing to note about LodePNG, is that the color type of the PNG, and +the color type of the raw image, are completely independent. By default, when +you decode a PNG, you get the result as a raw image in the color type you want, +no matter whether the PNG was encoded with a palette, grayscale or RGBA color. +And if you encode an image, by default LodePNG will automatically choose the PNG +color type that gives good compression based on the values of colors and amount +of colors in the image. It can be configured to let you control it instead as +well, though. + +To be able to do this, LodePNG does conversions from one color mode to another. +It can convert from almost any color type to any other color type, except the +following conversions: RGB to grayscale is not supported, and converting to a +palette when the palette doesn't have a required color is not supported. This is +not supported on purpose: this is information loss which requires a color +reduction algorithm that is beyond the scope of a PNG encoder (yes, RGB to gray +is easy, but there are multiple ways if you want to give some channels more +weight). + +By default, when decoding, you get the raw image in 32-bit RGBA or 24-bit RGB +color, no matter what color type the PNG has. And by default when encoding, +LodePNG automatically picks the best color model for the output PNG, and expects +the input image to be 32-bit RGBA or 24-bit RGB. So, unless you want to control +the color format of the images yourself, you can skip this chapter. + +6.1. PNG color types +-------------------- + +A PNG image can have many color types, ranging from 1-bit color to 64-bit color, +as well as palettized color modes. After the zlib decompression and unfiltering +in the PNG image is done, the raw pixel data will have that color type and thus +a certain amount of bits per pixel. If you want the output raw image after +decoding to have another color type, a conversion is done by LodePNG. + +The PNG specification gives the following color types: + +0: grayscale, bit depths 1, 2, 4, 8, 16 +2: RGB, bit depths 8 and 16 +3: palette, bit depths 1, 2, 4 and 8 +4: grayscale with alpha, bit depths 8 and 16 +6: RGBA, bit depths 8 and 16 + +Bit depth is the amount of bits per pixel per color channel. So the total amount +of bits per pixel is: amount of channels * bitdepth. + +6.2. color conversions +---------------------- + +As explained in the sections about the encoder and decoder, you can specify +color types and bit depths in info_png and info_raw to change the default +behaviour. + +If, when decoding, you want the raw image to be something else than the default, +you need to set the color type and bit depth you want in the LodePNGColorMode, +or the parameters colortype and bitdepth of the simple decoding function. + +If, when encoding, you use another color type than the default in the raw input +image, you need to specify its color type and bit depth in the LodePNGColorMode +of the raw image, or use the parameters colortype and bitdepth of the simple +encoding function. + +If, when encoding, you don't want LodePNG to choose the output PNG color type +but control it yourself, you need to set auto_convert in the encoder settings +to false, and specify the color type you want in the LodePNGInfo of the +encoder (including palette: it can generate a palette if auto_convert is true, +otherwise not). + +If the input and output color type differ (whether user chosen or auto chosen), +LodePNG will do a color conversion, which follows the rules below, and may +sometimes result in an error. + +To avoid some confusion: +-the decoder converts from PNG to raw image +-the encoder converts from raw image to PNG +-the colortype and bitdepth in LodePNGColorMode info_raw, are those of the raw image +-the colortype and bitdepth in the color field of LodePNGInfo info_png, are those of the PNG +-when encoding, the color type in LodePNGInfo is ignored if auto_convert + is enabled, it is automatically generated instead +-when decoding, the color type in LodePNGInfo is set by the decoder to that of the original + PNG image, but it can be ignored since the raw image has the color type you requested instead +-if the color type of the LodePNGColorMode and PNG image aren't the same, a conversion + between the color types is done if the color types are supported. If it is not + supported, an error is returned. If the types are the same, no conversion is done. +-even though some conversions aren't supported, LodePNG supports loading PNGs from any + colortype and saving PNGs to any colortype, sometimes it just requires preparing + the raw image correctly before encoding. +-both encoder and decoder use the same color converter. + +The function lodepng_convert does the color conversion. It is available in the +interface but normally isn't needed since the encoder and decoder already call +it. + +Non supported color conversions: +-color to grayscale when non-gray pixels are present: no error is thrown, but +the result will look ugly because only the red channel is taken (it assumes all +three channels are the same in this case so ignores green and blue). The reason +no error is given is to allow converting from three-channel grayscale images to +one-channel even if there are numerical imprecisions. +-anything to palette when the palette does not have an exact match for a from-color +in it: in this case an error is thrown + +Supported color conversions: +-anything to 8-bit RGB, 8-bit RGBA, 16-bit RGB, 16-bit RGBA +-any gray or gray+alpha, to gray or gray+alpha +-anything to a palette, as long as the palette has the requested colors in it +-removing alpha channel +-higher to smaller bitdepth, and vice versa + +If you want no color conversion to be done (e.g. for speed or control): +-In the encoder, you can make it save a PNG with any color type by giving the +raw color mode and LodePNGInfo the same color mode, and setting auto_convert to +false. +-In the decoder, you can make it store the pixel data in the same color type +as the PNG has, by setting the color_convert setting to false. Settings in +info_raw are then ignored. + +6.3. padding bits +----------------- + +In the PNG file format, if a less than 8-bit per pixel color type is used and the scanlines +have a bit amount that isn't a multiple of 8, then padding bits are used so that each +scanline starts at a fresh byte. But that is NOT true for the LodePNG raw input and output. +The raw input image you give to the encoder, and the raw output image you get from the decoder +will NOT have these padding bits, e.g. in the case of a 1-bit image with a width +of 7 pixels, the first pixel of the second scanline will the 8th bit of the first byte, +not the first bit of a new byte. + +6.4. A note about 16-bits per channel and endianness +---------------------------------------------------- + +LodePNG uses unsigned char arrays for 16-bit per channel colors too, just like +for any other color format. The 16-bit values are stored in big endian (most +significant byte first) in these arrays. This is the opposite order of the +little endian used by x86 CPU's. + +LodePNG always uses big endian because the PNG file format does so internally. +Conversions to other formats than PNG uses internally are not supported by +LodePNG on purpose, there are myriads of formats, including endianness of 16-bit +colors, the order in which you store R, G, B and A, and so on. Supporting and +converting to/from all that is outside the scope of LodePNG. + +This may mean that, depending on your use case, you may want to convert the big +endian output of LodePNG to little endian with a for loop. This is certainly not +always needed, many applications and libraries support big endian 16-bit colors +anyway, but it means you cannot simply cast the unsigned char* buffer to an +unsigned short* buffer on x86 CPUs. + + +7. error values +--------------- + +All functions in LodePNG that return an error code, return 0 if everything went +OK, or a non-zero code if there was an error. + +The meaning of the LodePNG error values can be retrieved with the function +lodepng_error_text: given the numerical error code, it returns a description +of the error in English as a string. + +Check the implementation of lodepng_error_text to see the meaning of each code. + +It is not recommended to use the numerical values to programmatically make +different decisions based on error types as the numbers are not guaranteed to +stay backwards compatible. They are for human consumption only. Programmatically +only 0 or non-0 matter. + + +8. chunks and PNG editing +------------------------- + +If you want to add extra chunks to a PNG you encode, or use LodePNG for a PNG +editor that should follow the rules about handling of unknown chunks, or if your +program is able to read other types of chunks than the ones handled by LodePNG, +then that's possible with the chunk functions of LodePNG. + +A PNG chunk has the following layout: + +4 bytes length +4 bytes type name +length bytes data +4 bytes CRC + +8.1. iterating through chunks +----------------------------- + +If you have a buffer containing the PNG image data, then the first chunk (the +IHDR chunk) starts at byte number 8 of that buffer. The first 8 bytes are the +signature of the PNG and are not part of a chunk. But if you start at byte 8 +then you have a chunk, and can check the following things of it. + +NOTE: none of these functions check for memory buffer boundaries. To avoid +exploits, always make sure the buffer contains all the data of the chunks. +When using lodepng_chunk_next, make sure the returned value is within the +allocated memory. + +unsigned lodepng_chunk_length(const unsigned char* chunk): + +Get the length of the chunk's data. The total chunk length is this length + 12. + +void lodepng_chunk_type(char type[5], const unsigned char* chunk): +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type): + +Get the type of the chunk or compare if it's a certain type + +unsigned char lodepng_chunk_critical(const unsigned char* chunk): +unsigned char lodepng_chunk_private(const unsigned char* chunk): +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk): + +Check if the chunk is critical in the PNG standard (only IHDR, PLTE, IDAT and IEND are). +Check if the chunk is private (public chunks are part of the standard, private ones not). +Check if the chunk is safe to copy. If it's not, then, when modifying data in a critical +chunk, unsafe to copy chunks of the old image may NOT be saved in the new one if your +program doesn't handle that type of unknown chunk. + +unsigned char* lodepng_chunk_data(unsigned char* chunk): +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk): + +Get a pointer to the start of the data of the chunk. + +unsigned lodepng_chunk_check_crc(const unsigned char* chunk): +void lodepng_chunk_generate_crc(unsigned char* chunk): + +Check if the crc is correct or generate a correct one. + +unsigned char* lodepng_chunk_next(unsigned char* chunk): +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk): + +Iterate to the next chunk. This works if you have a buffer with consecutive chunks. Note that these +functions do no boundary checking of the allocated data whatsoever, so make sure there is enough +data available in the buffer to be able to go to the next chunk. + +unsigned lodepng_chunk_append(unsigned char** out, size_t* outsize, const unsigned char* chunk): +unsigned lodepng_chunk_create(unsigned char** out, size_t* outsize, unsigned length, + const char* type, const unsigned char* data): + +These functions are used to create new chunks that are appended to the data in *out that has +length *outsize. The append function appends an existing chunk to the new data. The create +function creates a new chunk with the given parameters and appends it. Type is the 4-letter +name of the chunk. + +8.2. chunks in info_png +----------------------- + +The LodePNGInfo struct contains fields with the unknown chunk in it. It has 3 +buffers (each with size) to contain 3 types of unknown chunks: +the ones that come before the PLTE chunk, the ones that come between the PLTE +and the IDAT chunks, and the ones that come after the IDAT chunks. +It's necessary to make the distinction between these 3 cases because the PNG +standard forces to keep the ordering of unknown chunks compared to the critical +chunks, but does not force any other ordering rules. + +info_png.unknown_chunks_data[0] is the chunks before PLTE +info_png.unknown_chunks_data[1] is the chunks after PLTE, before IDAT +info_png.unknown_chunks_data[2] is the chunks after IDAT + +The chunks in these 3 buffers can be iterated through and read by using the same +way described in the previous subchapter. + +When using the decoder to decode a PNG, you can make it store all unknown chunks +if you set the option settings.remember_unknown_chunks to 1. By default, this +option is off (0). + +The encoder will always encode unknown chunks that are stored in the info_png. +If you need it to add a particular chunk that isn't known by LodePNG, you can +use lodepng_chunk_append or lodepng_chunk_create to the chunk data in +info_png.unknown_chunks_data[x]. + +Chunks that are known by LodePNG should not be added in that way. E.g. to make +LodePNG add a bKGD chunk, set background_defined to true and add the correct +parameters there instead. + + +9. compiler support +------------------- + +No libraries other than the current standard C library are needed to compile +LodePNG. For the C++ version, only the standard C++ library is needed on top. +Add the files lodepng.c(pp) and lodepng.h to your project, include +lodepng.h where needed, and your program can read/write PNG files. + +It is compatible with C90 and up, and C++03 and up. + +If performance is important, use optimization when compiling! For both the +encoder and decoder, this makes a large difference. + +Make sure that LodePNG is compiled with the same compiler of the same version +and with the same settings as the rest of the program, or the interfaces with +std::vectors and std::strings in C++ can be incompatible. + +CHAR_BITS must be 8 or higher, because LodePNG uses unsigned chars for octets. + +*) gcc and g++ + +LodePNG is developed in gcc so this compiler is natively supported. It gives no +warnings with compiler options "-Wall -Wextra -pedantic -ansi", with gcc and g++ +version 4.7.1 on Linux, 32-bit and 64-bit. + +*) Clang + +Fully supported and warning-free. + +*) Mingw + +The Mingw compiler (a port of gcc for Windows) should be fully supported by +LodePNG. + +*) Visual Studio and Visual C++ Express Edition + +LodePNG should be warning-free with warning level W4. Two warnings were disabled +with pragmas though: warning 4244 about implicit conversions, and warning 4996 +where it wants to use a non-standard function fopen_s instead of the standard C +fopen. + +Visual Studio may want "stdafx.h" files to be included in each source file and +give an error "unexpected end of file while looking for precompiled header". +This is not standard C++ and will not be added to the stock LodePNG. You can +disable it for lodepng.cpp only by right clicking it, Properties, C/C++, +Precompiled Headers, and set it to Not Using Precompiled Headers there. + +NOTE: Modern versions of VS should be fully supported, but old versions, e.g. +VS6, are not guaranteed to work. + +*) Compilers on Macintosh + +LodePNG has been reported to work both with gcc and LLVM for Macintosh, both for +C and C++. + +*) Other Compilers + +If you encounter problems on any compilers, feel free to let me know and I may +try to fix it if the compiler is modern and standards compliant. + + +10. examples +------------ + +This decoder example shows the most basic usage of LodePNG. More complex +examples can be found on the LodePNG website. + +NOTE: these examples do not support wide-character filenames, you can use an +external method to handle such files and encode or decode in-memory + +10.1. decoder C++ example +------------------------- + +#include "lodepng.h" +#include + +int main(int argc, char *argv[]) { + const char* filename = argc > 1 ? argv[1] : "test.png"; + + //load and decode + std::vector image; + unsigned width, height; + unsigned error = lodepng::decode(image, width, height, filename); + + //if there's an error, display it + if(error) std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl; + + //the pixels are now in the vector "image", 4 bytes per pixel, ordered RGBARGBA..., use it as texture, draw it, ... +} + +10.2. decoder C example +----------------------- + +#include "lodepng.h" + +int main(int argc, char *argv[]) { + unsigned error; + unsigned char* image; + size_t width, height; + const char* filename = argc > 1 ? argv[1] : "test.png"; + + error = lodepng_decode32_file(&image, &width, &height, filename); + + if(error) printf("decoder error %u: %s\n", error, lodepng_error_text(error)); + + / * use image here * / + + free(image); + return 0; +} + +11. state settings reference +---------------------------- + +A quick reference of some settings to set on the LodePNGState + +For decoding: + +state.decoder.zlibsettings.ignore_adler32: ignore ADLER32 checksums +state.decoder.zlibsettings.custom_...: use custom inflate function +state.decoder.ignore_crc: ignore CRC checksums +state.decoder.ignore_critical: ignore unknown critical chunks +state.decoder.ignore_end: ignore missing IEND chunk. May fail if this corruption causes other errors +state.decoder.color_convert: convert internal PNG color to chosen one +state.decoder.read_text_chunks: whether to read in text metadata chunks +state.decoder.remember_unknown_chunks: whether to read in unknown chunks +state.info_raw.colortype: desired color type for decoded image +state.info_raw.bitdepth: desired bit depth for decoded image +state.info_raw....: more color settings, see struct LodePNGColorMode +state.info_png....: no settings for decoder but ouput, see struct LodePNGInfo + +For encoding: + +state.encoder.zlibsettings.btype: disable compression by setting it to 0 +state.encoder.zlibsettings.use_lz77: use LZ77 in compression +state.encoder.zlibsettings.windowsize: tweak LZ77 windowsize +state.encoder.zlibsettings.minmatch: tweak min LZ77 length to match +state.encoder.zlibsettings.nicematch: tweak LZ77 match where to stop searching +state.encoder.zlibsettings.lazymatching: try one more LZ77 matching +state.encoder.zlibsettings.custom_...: use custom deflate function +state.encoder.auto_convert: choose optimal PNG color type, if 0 uses info_png +state.encoder.filter_palette_zero: PNG filter strategy for palette +state.encoder.filter_strategy: PNG filter strategy to encode with +state.encoder.force_palette: add palette even if not encoding to one +state.encoder.add_id: add LodePNG identifier and version as a text chunk +state.encoder.text_compression: use compressed text chunks for metadata +state.info_raw.colortype: color type of raw input image you provide +state.info_raw.bitdepth: bit depth of raw input image you provide +state.info_raw: more color settings, see struct LodePNGColorMode +state.info_png.color.colortype: desired color type if auto_convert is false +state.info_png.color.bitdepth: desired bit depth if auto_convert is false +state.info_png.color....: more color settings, see struct LodePNGColorMode +state.info_png....: more PNG related settings, see struct LodePNGInfo + + +12. changes +----------- + +The version number of LodePNG is the date of the change given in the format +yyyymmdd. + +Some changes aren't backwards compatible. Those are indicated with a (!) +symbol. + +Not all changes are listed here, the commit history in github lists more: +https://github.com/lvandeve/lodepng + +*) 13 jun 2022: added support for the sBIT chunk. +*) 09 jan 2022: minor decoder speed improvements. +*) 27 jun 2021: added warnings that file reading/writing functions don't support + wide-character filenames (support for this is not planned, opening files is + not the core part of PNG decoding/decoding and is platform dependent). +*) 17 okt 2020: prevent decoding too large text/icc chunks by default. +*) 06 mar 2020: simplified some of the dynamic memory allocations. +*) 12 jan 2020: (!) added 'end' argument to lodepng_chunk_next to allow correct + overflow checks. +*) 14 aug 2019: around 25% faster decoding thanks to huffman lookup tables. +*) 15 jun 2019: (!) auto_choose_color API changed (for bugfix: don't use palette + if gray ICC profile) and non-ICC LodePNGColorProfile renamed to + LodePNGColorStats. +*) 30 dec 2018: code style changes only: removed newlines before opening braces. +*) 10 sep 2018: added way to inspect metadata chunks without full decoding. +*) 19 aug 2018: (!) fixed color mode bKGD is encoded with and made it use + palette index in case of palette. +*) 10 aug 2018: (!) added support for gAMA, cHRM, sRGB and iCCP chunks. This + change is backwards compatible unless you relied on unknown_chunks for those. +*) 11 jun 2018: less restrictive check for pixel size integer overflow +*) 14 jan 2018: allow optionally ignoring a few more recoverable errors +*) 17 sep 2017: fix memory leak for some encoder input error cases +*) 27 nov 2016: grey+alpha auto color model detection bugfix +*) 18 apr 2016: Changed qsort to custom stable sort (for platforms w/o qsort). +*) 09 apr 2016: Fixed colorkey usage detection, and better file loading (within + the limits of pure C90). +*) 08 dec 2015: Made load_file function return error if file can't be opened. +*) 24 okt 2015: Bugfix with decoding to palette output. +*) 18 apr 2015: Boundary PM instead of just package-merge for faster encoding. +*) 24 aug 2014: Moved to github +*) 23 aug 2014: Reduced needless memory usage of decoder. +*) 28 jun 2014: Removed fix_png setting, always support palette OOB for + simplicity. Made ColorProfile public. +*) 09 jun 2014: Faster encoder by fixing hash bug and more zeros optimization. +*) 22 dec 2013: Power of two windowsize required for optimization. +*) 15 apr 2013: Fixed bug with LAC_ALPHA and color key. +*) 25 mar 2013: Added an optional feature to ignore some PNG errors (fix_png). +*) 11 mar 2013: (!) Bugfix with custom free. Changed from "my" to "lodepng_" + prefix for the custom allocators and made it possible with a new #define to + use custom ones in your project without needing to change lodepng's code. +*) 28 jan 2013: Bugfix with color key. +*) 27 okt 2012: Tweaks in text chunk keyword length error handling. +*) 8 okt 2012: (!) Added new filter strategy (entropy) and new auto color mode. + (no palette). Better deflate tree encoding. New compression tweak settings. + Faster color conversions while decoding. Some internal cleanups. +*) 23 sep 2012: Reduced warnings in Visual Studio a little bit. +*) 1 sep 2012: (!) Removed #define's for giving custom (de)compression functions + and made it work with function pointers instead. +*) 23 jun 2012: Added more filter strategies. Made it easier to use custom alloc + and free functions and toggle #defines from compiler flags. Small fixes. +*) 6 may 2012: (!) Made plugging in custom zlib/deflate functions more flexible. +*) 22 apr 2012: (!) Made interface more consistent, renaming a lot. Removed + redundant C++ codec classes. Reduced amount of structs. Everything changed, + but it is cleaner now imho and functionality remains the same. Also fixed + several bugs and shrunk the implementation code. Made new samples. +*) 6 nov 2011: (!) By default, the encoder now automatically chooses the best + PNG color model and bit depth, based on the amount and type of colors of the + raw image. For this, autoLeaveOutAlphaChannel replaced by auto_choose_color. +*) 9 okt 2011: simpler hash chain implementation for the encoder. +*) 8 sep 2011: lz77 encoder lazy matching instead of greedy matching. +*) 23 aug 2011: tweaked the zlib compression parameters after benchmarking. + A bug with the PNG filtertype heuristic was fixed, so that it chooses much + better ones (it's quite significant). A setting to do an experimental, slow, + brute force search for PNG filter types is added. +*) 17 aug 2011: (!) changed some C zlib related function names. +*) 16 aug 2011: made the code less wide (max 120 characters per line). +*) 17 apr 2011: code cleanup. Bugfixes. Convert low to 16-bit per sample colors. +*) 21 feb 2011: fixed compiling for C90. Fixed compiling with sections disabled. +*) 11 dec 2010: encoding is made faster, based on suggestion by Peter Eastman + to optimize long sequences of zeros. +*) 13 nov 2010: added LodePNG_InfoColor_hasPaletteAlpha and + LodePNG_InfoColor_canHaveAlpha functions for convenience. +*) 7 nov 2010: added LodePNG_error_text function to get error code description. +*) 30 okt 2010: made decoding slightly faster +*) 26 okt 2010: (!) changed some C function and struct names (more consistent). + Reorganized the documentation and the declaration order in the header. +*) 08 aug 2010: only changed some comments and external samples. +*) 05 jul 2010: fixed bug thanks to warnings in the new gcc version. +*) 14 mar 2010: fixed bug where too much memory was allocated for char buffers. +*) 02 sep 2008: fixed bug where it could create empty tree that linux apps could + read by ignoring the problem but windows apps couldn't. +*) 06 jun 2008: added more error checks for out of memory cases. +*) 26 apr 2008: added a few more checks here and there to ensure more safety. +*) 06 mar 2008: crash with encoding of strings fixed +*) 02 feb 2008: support for international text chunks added (iTXt) +*) 23 jan 2008: small cleanups, and #defines to divide code in sections +*) 20 jan 2008: support for unknown chunks allowing using LodePNG for an editor. +*) 18 jan 2008: support for tIME and pHYs chunks added to encoder and decoder. +*) 17 jan 2008: ability to encode and decode compressed zTXt chunks added + Also various fixes, such as in the deflate and the padding bits code. +*) 13 jan 2008: Added ability to encode Adam7-interlaced images. Improved + filtering code of encoder. +*) 07 jan 2008: (!) changed LodePNG to use ISO C90 instead of C++. A + C++ wrapper around this provides an interface almost identical to before. + Having LodePNG be pure ISO C90 makes it more portable. The C and C++ code + are together in these files but it works both for C and C++ compilers. +*) 29 dec 2007: (!) changed most integer types to unsigned int + other tweaks +*) 30 aug 2007: bug fixed which makes this Borland C++ compatible +*) 09 aug 2007: some VS2005 warnings removed again +*) 21 jul 2007: deflate code placed in new namespace separate from zlib code +*) 08 jun 2007: fixed bug with 2- and 4-bit color, and small interlaced images +*) 04 jun 2007: improved support for Visual Studio 2005: crash with accessing + invalid std::vector element [0] fixed, and level 3 and 4 warnings removed +*) 02 jun 2007: made the encoder add a tag with version by default +*) 27 may 2007: zlib and png code separated (but still in the same file), + simple encoder/decoder functions added for more simple usage cases +*) 19 may 2007: minor fixes, some code cleaning, new error added (error 69), + moved some examples from here to lodepng_examples.cpp +*) 12 may 2007: palette decoding bug fixed +*) 24 apr 2007: changed the license from BSD to the zlib license +*) 11 mar 2007: very simple addition: ability to encode bKGD chunks. +*) 04 mar 2007: (!) tEXt chunk related fixes, and support for encoding + palettized PNG images. Plus little interface change with palette and texts. +*) 03 mar 2007: Made it encode dynamic Huffman shorter with repeat codes. + Fixed a bug where the end code of a block had length 0 in the Huffman tree. +*) 26 feb 2007: Huffman compression with dynamic trees (BTYPE 2) now implemented + and supported by the encoder, resulting in smaller PNGs at the output. +*) 27 jan 2007: Made the Adler-32 test faster so that a timewaste is gone. +*) 24 jan 2007: gave encoder an error interface. Added color conversion from any + greyscale type to 8-bit greyscale with or without alpha. +*) 21 jan 2007: (!) Totally changed the interface. It allows more color types + to convert to and is more uniform. See the manual for how it works now. +*) 07 jan 2007: Some cleanup & fixes, and a few changes over the last days: + encode/decode custom tEXt chunks, separate classes for zlib & deflate, and + at last made the decoder give errors for incorrect Adler32 or Crc. +*) 01 jan 2007: Fixed bug with encoding PNGs with less than 8 bits per channel. +*) 29 dec 2006: Added support for encoding images without alpha channel, and + cleaned out code as well as making certain parts faster. +*) 28 dec 2006: Added "Settings" to the encoder. +*) 26 dec 2006: The encoder now does LZ77 encoding and produces much smaller files now. + Removed some code duplication in the decoder. Fixed little bug in an example. +*) 09 dec 2006: (!) Placed output parameters of public functions as first parameter. + Fixed a bug of the decoder with 16-bit per color. +*) 15 okt 2006: Changed documentation structure +*) 09 okt 2006: Encoder class added. It encodes a valid PNG image from the + given image buffer, however for now it's not compressed. +*) 08 sep 2006: (!) Changed to interface with a Decoder class +*) 30 jul 2006: (!) LodePNG_InfoPng , width and height are now retrieved in different + way. Renamed decodePNG to decodePNGGeneric. +*) 29 jul 2006: (!) Changed the interface: image info is now returned as a + struct of type LodePNG::LodePNG_Info, instead of a vector, which was a bit clumsy. +*) 28 jul 2006: Cleaned the code and added new error checks. + Corrected terminology "deflate" into "inflate". +*) 23 jun 2006: Added SDL example in the documentation in the header, this + example allows easy debugging by displaying the PNG and its transparency. +*) 22 jun 2006: (!) Changed way to obtain error value. Added + loadFile function for convenience. Made decodePNG32 faster. +*) 21 jun 2006: (!) Changed type of info vector to unsigned. + Changed position of palette in info vector. Fixed an important bug that + happened on PNGs with an uncompressed block. +*) 16 jun 2006: Internally changed unsigned into unsigned where + needed, and performed some optimizations. +*) 07 jun 2006: (!) Renamed functions to decodePNG and placed them + in LodePNG namespace. Changed the order of the parameters. Rewrote the + documentation in the header. Renamed files to lodepng.cpp and lodepng.h +*) 22 apr 2006: Optimized and improved some code +*) 07 sep 2005: (!) Changed to std::vector interface +*) 12 aug 2005: Initial release (C++, decoder only) + + +13. contact information +----------------------- + +Feel free to contact me with suggestions, problems, comments, ... concerning +LodePNG. If you encounter a PNG image that doesn't work properly with this +decoder, feel free to send it and I'll use it to find and fix the problem. + +My email address is (puzzle the account and domain together with an @ symbol): +Domain: gmail dot com. +Account: lode dot vandevenne. + + +Copyright (c) 2005-2022 Lode Vandevenne +*/ \ No newline at end of file diff --git a/mlx/lib/glad/glad.c b/mlx/lib/glad/glad.c new file mode 100644 index 0000000..ca2e6ed --- /dev/null +++ b/mlx/lib/glad/glad.c @@ -0,0 +1,2532 @@ +/* + + OpenGL loader generated by glad 0.1.35 on Wed Aug 10 09:50:58 2022. + + Language/Generator: C/C++ + Specification: gl + APIs: gl=4.6 + Profile: compatibility + Extensions: + + Loader: True + Local files: False + Omit khrplatform: False + Reproducible: False + + Commandline: + --profile="compatibility" --api="gl=4.6" --generator="c" --spec="gl" --extensions="" + Online: + https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D4.6 +*/ + +#include +#include +#include +#include + +static void* get_proc(const char *namez); + +#if defined(_WIN32) || defined(__CYGWIN__) +#ifndef _WINDOWS_ +#undef APIENTRY +#endif +#include +static HMODULE libGL; + +typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); +static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; + +#ifdef _MSC_VER +#ifdef __has_include + #if __has_include() + #define HAVE_WINAPIFAMILY 1 + #endif +#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_ + #define HAVE_WINAPIFAMILY 1 +#endif +#endif + +#ifdef HAVE_WINAPIFAMILY + #include + #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + #define IS_UWP 1 + #endif +#endif + +static +int open_gl(void) { +#ifndef IS_UWP + libGL = LoadLibraryW(L"opengl32.dll"); + if(libGL != NULL) { + void (* tmp)(void); + tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress"); + gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp; + return gladGetProcAddressPtr != NULL; + } +#endif + + return 0; +} + +static +void close_gl(void) { + if(libGL != NULL) { + FreeLibrary((HMODULE) libGL); + libGL = NULL; + } +} +#else +#include +static void* libGL; + +#if !defined(__APPLE__) && !defined(__HAIKU__) +typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*); +static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; +#endif + +static +int open_gl(void) { +#ifdef __APPLE__ + static const char *NAMES[] = { + "../Frameworks/OpenGL.framework/OpenGL", + "/Library/Frameworks/OpenGL.framework/OpenGL", + "/System/Library/Frameworks/OpenGL.framework/OpenGL", + "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL" + }; +#else + static const char *NAMES[] = {"libGL.so.1", "libGL.so"}; +#endif + + unsigned int index = 0; + for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) { + libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL); + + if(libGL != NULL) { +#if defined(__APPLE__) || defined(__HAIKU__) + return 1; +#else + gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL, + "glXGetProcAddressARB"); + return gladGetProcAddressPtr != NULL; +#endif + } + } + + return 0; +} + +static +void close_gl(void) { + if(libGL != NULL) { + dlclose(libGL); + libGL = NULL; + } +} +#endif + +static +void* get_proc(const char *namez) { + void* result = NULL; + if(libGL == NULL) return NULL; + +#if !defined(__APPLE__) && !defined(__HAIKU__) + if(gladGetProcAddressPtr != NULL) { + result = gladGetProcAddressPtr(namez); + } +#endif + if(result == NULL) { +#if defined(_WIN32) || defined(__CYGWIN__) + result = (void*)GetProcAddress((HMODULE) libGL, namez); +#else + result = dlsym(libGL, namez); +#endif + } + + return result; +} + +int gladLoadGL(void) { + int status = 0; + + if(open_gl()) { + status = gladLoadGLLoader(&get_proc); + close_gl(); + } + + return status; +} + +struct gladGLversionStruct GLVersion = { 0, 0 }; + +#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) +#define _GLAD_IS_SOME_NEW_VERSION 1 +#endif + +static int max_loaded_major; +static int max_loaded_minor; + +static const char *exts = NULL; +static int num_exts_i = 0; +static char **exts_i = NULL; + +static int get_exts(void) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + exts = (const char *)glGetString(GL_EXTENSIONS); +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + unsigned int index; + + num_exts_i = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); + if (num_exts_i > 0) { + exts_i = (char **)malloc((size_t)num_exts_i * (sizeof *exts_i)); + } + + if (exts_i == NULL) { + return 0; + } + + for(index = 0; index < (unsigned)num_exts_i; index++) { + const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index); + size_t len = strlen(gl_str_tmp); + + char *local_str = (char*)malloc((len+1) * sizeof(char)); + if(local_str != NULL) { + memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char)); + } + exts_i[index] = local_str; + } + } +#endif + return 1; +} + +static void free_exts(void) { + if (exts_i != NULL) { + int index; + for(index = 0; index < num_exts_i; index++) { + free((char *)exts_i[index]); + } + free((void *)exts_i); + exts_i = NULL; + } +} + +static int has_ext(const char *ext) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + const char *extensions; + const char *loc; + const char *terminator; + extensions = exts; + if(extensions == NULL || ext == NULL) { + return 0; + } + + while(1) { + loc = strstr(extensions, ext); + if(loc == NULL) { + return 0; + } + + terminator = loc + strlen(ext); + if((loc == extensions || *(loc - 1) == ' ') && + (*terminator == ' ' || *terminator == '\0')) { + return 1; + } + extensions = terminator; + } +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + if(exts_i == NULL) return 0; + for(index = 0; index < num_exts_i; index++) { + const char *e = exts_i[index]; + + if(exts_i[index] != NULL && strcmp(e, ext) == 0) { + return 1; + } + } + } +#endif + + return 0; +} +int GLAD_GL_VERSION_1_0 = 0; +int GLAD_GL_VERSION_1_1 = 0; +int GLAD_GL_VERSION_1_2 = 0; +int GLAD_GL_VERSION_1_3 = 0; +int GLAD_GL_VERSION_1_4 = 0; +int GLAD_GL_VERSION_1_5 = 0; +int GLAD_GL_VERSION_2_0 = 0; +int GLAD_GL_VERSION_2_1 = 0; +int GLAD_GL_VERSION_3_0 = 0; +int GLAD_GL_VERSION_3_1 = 0; +int GLAD_GL_VERSION_3_2 = 0; +int GLAD_GL_VERSION_3_3 = 0; +int GLAD_GL_VERSION_4_0 = 0; +int GLAD_GL_VERSION_4_1 = 0; +int GLAD_GL_VERSION_4_2 = 0; +int GLAD_GL_VERSION_4_3 = 0; +int GLAD_GL_VERSION_4_4 = 0; +int GLAD_GL_VERSION_4_5 = 0; +int GLAD_GL_VERSION_4_6 = 0; +PFNGLACCUMPROC glad_glAccum = NULL; +PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL; +PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; +PFNGLALPHAFUNCPROC glad_glAlphaFunc = NULL; +PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident = NULL; +PFNGLARRAYELEMENTPROC glad_glArrayElement = NULL; +PFNGLATTACHSHADERPROC glad_glAttachShader = NULL; +PFNGLBEGINPROC glad_glBegin = NULL; +PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL; +PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL; +PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL; +PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL; +PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL; +PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; +PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL; +PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL; +PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase = NULL; +PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange = NULL; +PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL; +PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL; +PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL; +PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL; +PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures = NULL; +PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL; +PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL; +PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL; +PFNGLBINDSAMPLERSPROC glad_glBindSamplers = NULL; +PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; +PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit = NULL; +PFNGLBINDTEXTURESPROC glad_glBindTextures = NULL; +PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL; +PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL; +PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL; +PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers = NULL; +PFNGLBITMAPPROC glad_glBitmap = NULL; +PFNGLBLENDCOLORPROC glad_glBlendColor = NULL; +PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL; +PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL; +PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei = NULL; +PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi = NULL; +PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL; +PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL; +PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL; +PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL; +PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL; +PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer = NULL; +PFNGLBUFFERDATAPROC glad_glBufferData = NULL; +PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL; +PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; +PFNGLCALLLISTPROC glad_glCallList = NULL; +PFNGLCALLLISTSPROC glad_glCallLists = NULL; +PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL; +PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus = NULL; +PFNGLCLAMPCOLORPROC glad_glClampColor = NULL; +PFNGLCLEARPROC glad_glClear = NULL; +PFNGLCLEARACCUMPROC glad_glClearAccum = NULL; +PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData = NULL; +PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData = NULL; +PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL; +PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL; +PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL; +PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL; +PFNGLCLEARCOLORPROC glad_glClearColor = NULL; +PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL; +PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; +PFNGLCLEARINDEXPROC glad_glClearIndex = NULL; +PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData = NULL; +PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv = NULL; +PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; +PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage = NULL; +PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage = NULL; +PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture = NULL; +PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL; +PFNGLCLIPCONTROLPROC glad_glClipControl = NULL; +PFNGLCLIPPLANEPROC glad_glClipPlane = NULL; +PFNGLCOLOR3BPROC glad_glColor3b = NULL; +PFNGLCOLOR3BVPROC glad_glColor3bv = NULL; +PFNGLCOLOR3DPROC glad_glColor3d = NULL; +PFNGLCOLOR3DVPROC glad_glColor3dv = NULL; +PFNGLCOLOR3FPROC glad_glColor3f = NULL; +PFNGLCOLOR3FVPROC glad_glColor3fv = NULL; +PFNGLCOLOR3IPROC glad_glColor3i = NULL; +PFNGLCOLOR3IVPROC glad_glColor3iv = NULL; +PFNGLCOLOR3SPROC glad_glColor3s = NULL; +PFNGLCOLOR3SVPROC glad_glColor3sv = NULL; +PFNGLCOLOR3UBPROC glad_glColor3ub = NULL; +PFNGLCOLOR3UBVPROC glad_glColor3ubv = NULL; +PFNGLCOLOR3UIPROC glad_glColor3ui = NULL; +PFNGLCOLOR3UIVPROC glad_glColor3uiv = NULL; +PFNGLCOLOR3USPROC glad_glColor3us = NULL; +PFNGLCOLOR3USVPROC glad_glColor3usv = NULL; +PFNGLCOLOR4BPROC glad_glColor4b = NULL; +PFNGLCOLOR4BVPROC glad_glColor4bv = NULL; +PFNGLCOLOR4DPROC glad_glColor4d = NULL; +PFNGLCOLOR4DVPROC glad_glColor4dv = NULL; +PFNGLCOLOR4FPROC glad_glColor4f = NULL; +PFNGLCOLOR4FVPROC glad_glColor4fv = NULL; +PFNGLCOLOR4IPROC glad_glColor4i = NULL; +PFNGLCOLOR4IVPROC glad_glColor4iv = NULL; +PFNGLCOLOR4SPROC glad_glColor4s = NULL; +PFNGLCOLOR4SVPROC glad_glColor4sv = NULL; +PFNGLCOLOR4UBPROC glad_glColor4ub = NULL; +PFNGLCOLOR4UBVPROC glad_glColor4ubv = NULL; +PFNGLCOLOR4UIPROC glad_glColor4ui = NULL; +PFNGLCOLOR4UIVPROC glad_glColor4uiv = NULL; +PFNGLCOLOR4USPROC glad_glColor4us = NULL; +PFNGLCOLOR4USVPROC glad_glColor4usv = NULL; +PFNGLCOLORMASKPROC glad_glColorMask = NULL; +PFNGLCOLORMASKIPROC glad_glColorMaski = NULL; +PFNGLCOLORMATERIALPROC glad_glColorMaterial = NULL; +PFNGLCOLORP3UIPROC glad_glColorP3ui = NULL; +PFNGLCOLORP3UIVPROC glad_glColorP3uiv = NULL; +PFNGLCOLORP4UIPROC glad_glColorP4ui = NULL; +PFNGLCOLORP4UIVPROC glad_glColorP4uiv = NULL; +PFNGLCOLORPOINTERPROC glad_glColorPointer = NULL; +PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL; +PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL; +PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; +PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D = NULL; +PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL; +PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData = NULL; +PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData = NULL; +PFNGLCOPYPIXELSPROC glad_glCopyPixels = NULL; +PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL; +PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL; +PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL; +PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D = NULL; +PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D = NULL; +PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D = NULL; +PFNGLCREATEBUFFERSPROC glad_glCreateBuffers = NULL; +PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers = NULL; +PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL; +PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines = NULL; +PFNGLCREATEQUERIESPROC glad_glCreateQueries = NULL; +PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers = NULL; +PFNGLCREATESAMPLERSPROC glad_glCreateSamplers = NULL; +PFNGLCREATESHADERPROC glad_glCreateShader = NULL; +PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL; +PFNGLCREATETEXTURESPROC glad_glCreateTextures = NULL; +PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL; +PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays = NULL; +PFNGLCULLFACEPROC glad_glCullFace = NULL; +PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL; +PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL; +PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL; +PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; +PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL; +PFNGLDELETELISTSPROC glad_glDeleteLists = NULL; +PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL; +PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL; +PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL; +PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL; +PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL; +PFNGLDELETESHADERPROC glad_glDeleteShader = NULL; +PFNGLDELETESYNCPROC glad_glDeleteSync = NULL; +PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL; +PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL; +PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL; +PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL; +PFNGLDEPTHMASKPROC glad_glDepthMask = NULL; +PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL; +PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv = NULL; +PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed = NULL; +PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; +PFNGLDETACHSHADERPROC glad_glDetachShader = NULL; +PFNGLDISABLEPROC glad_glDisable = NULL; +PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState = NULL; +PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib = NULL; +PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL; +PFNGLDISABLEIPROC glad_glDisablei = NULL; +PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL; +PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect = NULL; +PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL; +PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL; +PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL; +PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance = NULL; +PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL; +PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL; +PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL; +PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL; +PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL; +PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance = NULL; +PFNGLDRAWPIXELSPROC glad_glDrawPixels = NULL; +PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL; +PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL; +PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL; +PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced = NULL; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced = NULL; +PFNGLEDGEFLAGPROC glad_glEdgeFlag = NULL; +PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer = NULL; +PFNGLEDGEFLAGVPROC glad_glEdgeFlagv = NULL; +PFNGLENABLEPROC glad_glEnable = NULL; +PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState = NULL; +PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib = NULL; +PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL; +PFNGLENABLEIPROC glad_glEnablei = NULL; +PFNGLENDPROC glad_glEnd = NULL; +PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL; +PFNGLENDLISTPROC glad_glEndList = NULL; +PFNGLENDQUERYPROC glad_glEndQuery = NULL; +PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL; +PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL; +PFNGLEVALCOORD1DPROC glad_glEvalCoord1d = NULL; +PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv = NULL; +PFNGLEVALCOORD1FPROC glad_glEvalCoord1f = NULL; +PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv = NULL; +PFNGLEVALCOORD2DPROC glad_glEvalCoord2d = NULL; +PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv = NULL; +PFNGLEVALCOORD2FPROC glad_glEvalCoord2f = NULL; +PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv = NULL; +PFNGLEVALMESH1PROC glad_glEvalMesh1 = NULL; +PFNGLEVALMESH2PROC glad_glEvalMesh2 = NULL; +PFNGLEVALPOINT1PROC glad_glEvalPoint1 = NULL; +PFNGLEVALPOINT2PROC glad_glEvalPoint2 = NULL; +PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer = NULL; +PFNGLFENCESYNCPROC glad_glFenceSync = NULL; +PFNGLFINISHPROC glad_glFinish = NULL; +PFNGLFLUSHPROC glad_glFlush = NULL; +PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL; +PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange = NULL; +PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer = NULL; +PFNGLFOGCOORDDPROC glad_glFogCoordd = NULL; +PFNGLFOGCOORDDVPROC glad_glFogCoorddv = NULL; +PFNGLFOGCOORDFPROC glad_glFogCoordf = NULL; +PFNGLFOGCOORDFVPROC glad_glFogCoordfv = NULL; +PFNGLFOGFPROC glad_glFogf = NULL; +PFNGLFOGFVPROC glad_glFogfv = NULL; +PFNGLFOGIPROC glad_glFogi = NULL; +PFNGLFOGIVPROC glad_glFogiv = NULL; +PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL; +PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL; +PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL; +PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL; +PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL; +PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL; +PFNGLFRONTFACEPROC glad_glFrontFace = NULL; +PFNGLFRUSTUMPROC glad_glFrustum = NULL; +PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; +PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL; +PFNGLGENLISTSPROC glad_glGenLists = NULL; +PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL; +PFNGLGENQUERIESPROC glad_glGenQueries = NULL; +PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL; +PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL; +PFNGLGENTEXTURESPROC glad_glGenTextures = NULL; +PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL; +PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL; +PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL; +PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap = NULL; +PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv = NULL; +PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL; +PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv = NULL; +PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL; +PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL; +PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL; +PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL; +PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL; +PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL; +PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL; +PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL; +PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL; +PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL; +PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; +PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL; +PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL; +PFNGLGETCLIPPLANEPROC glad_glGetClipPlane = NULL; +PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL; +PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage = NULL; +PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage = NULL; +PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL; +PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL; +PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL; +PFNGLGETERRORPROC glad_glGetError = NULL; +PFNGLGETFLOATI_VPROC glad_glGetFloati_v = NULL; +PFNGLGETFLOATVPROC glad_glGetFloatv = NULL; +PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL; +PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL; +PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL; +PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus = NULL; +PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL; +PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL; +PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL; +PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; +PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v = NULL; +PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL; +PFNGLGETLIGHTFVPROC glad_glGetLightfv = NULL; +PFNGLGETLIGHTIVPROC glad_glGetLightiv = NULL; +PFNGLGETMAPDVPROC glad_glGetMapdv = NULL; +PFNGLGETMAPFVPROC glad_glGetMapfv = NULL; +PFNGLGETMAPIVPROC glad_glGetMapiv = NULL; +PFNGLGETMATERIALFVPROC glad_glGetMaterialfv = NULL; +PFNGLGETMATERIALIVPROC glad_glGetMaterialiv = NULL; +PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL; +PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v = NULL; +PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv = NULL; +PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv = NULL; +PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData = NULL; +PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv = NULL; +PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv = NULL; +PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv = NULL; +PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL; +PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL; +PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv = NULL; +PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv = NULL; +PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv = NULL; +PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL; +PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple = NULL; +PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL; +PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL; +PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL; +PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL; +PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL; +PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex = NULL; +PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName = NULL; +PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL; +PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL; +PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL; +PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v = NULL; +PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv = NULL; +PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v = NULL; +PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv = NULL; +PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL; +PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL; +PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL; +PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL; +PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL; +PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL; +PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL; +PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL; +PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL; +PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL; +PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL; +PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL; +PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL; +PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL; +PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL; +PFNGLGETSTRINGPROC glad_glGetString = NULL; +PFNGLGETSTRINGIPROC glad_glGetStringi = NULL; +PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL; +PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL; +PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL; +PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv = NULL; +PFNGLGETTEXENVIVPROC glad_glGetTexEnviv = NULL; +PFNGLGETTEXGENDVPROC glad_glGetTexGendv = NULL; +PFNGLGETTEXGENFVPROC glad_glGetTexGenfv = NULL; +PFNGLGETTEXGENIVPROC glad_glGetTexGeniv = NULL; +PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL; +PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL; +PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL; +PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL; +PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL; +PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; +PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; +PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage = NULL; +PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv = NULL; +PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv = NULL; +PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv = NULL; +PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv = NULL; +PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv = NULL; +PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv = NULL; +PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage = NULL; +PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL; +PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v = NULL; +PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v = NULL; +PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv = NULL; +PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL; +PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL; +PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL; +PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv = NULL; +PFNGLGETUNIFORMDVPROC glad_glGetUniformdv = NULL; +PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL; +PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL; +PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL; +PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv = NULL; +PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv = NULL; +PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv = NULL; +PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL; +PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL; +PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL; +PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL; +PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL; +PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL; +PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL; +PFNGLGETNCOLORTABLEPROC glad_glGetnColorTable = NULL; +PFNGLGETNCOMPRESSEDTEXIMAGEPROC glad_glGetnCompressedTexImage = NULL; +PFNGLGETNCONVOLUTIONFILTERPROC glad_glGetnConvolutionFilter = NULL; +PFNGLGETNHISTOGRAMPROC glad_glGetnHistogram = NULL; +PFNGLGETNMAPDVPROC glad_glGetnMapdv = NULL; +PFNGLGETNMAPFVPROC glad_glGetnMapfv = NULL; +PFNGLGETNMAPIVPROC glad_glGetnMapiv = NULL; +PFNGLGETNMINMAXPROC glad_glGetnMinmax = NULL; +PFNGLGETNPIXELMAPFVPROC glad_glGetnPixelMapfv = NULL; +PFNGLGETNPIXELMAPUIVPROC glad_glGetnPixelMapuiv = NULL; +PFNGLGETNPIXELMAPUSVPROC glad_glGetnPixelMapusv = NULL; +PFNGLGETNPOLYGONSTIPPLEPROC glad_glGetnPolygonStipple = NULL; +PFNGLGETNSEPARABLEFILTERPROC glad_glGetnSeparableFilter = NULL; +PFNGLGETNTEXIMAGEPROC glad_glGetnTexImage = NULL; +PFNGLGETNUNIFORMDVPROC glad_glGetnUniformdv = NULL; +PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv = NULL; +PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv = NULL; +PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv = NULL; +PFNGLHINTPROC glad_glHint = NULL; +PFNGLINDEXMASKPROC glad_glIndexMask = NULL; +PFNGLINDEXPOINTERPROC glad_glIndexPointer = NULL; +PFNGLINDEXDPROC glad_glIndexd = NULL; +PFNGLINDEXDVPROC glad_glIndexdv = NULL; +PFNGLINDEXFPROC glad_glIndexf = NULL; +PFNGLINDEXFVPROC glad_glIndexfv = NULL; +PFNGLINDEXIPROC glad_glIndexi = NULL; +PFNGLINDEXIVPROC glad_glIndexiv = NULL; +PFNGLINDEXSPROC glad_glIndexs = NULL; +PFNGLINDEXSVPROC glad_glIndexsv = NULL; +PFNGLINDEXUBPROC glad_glIndexub = NULL; +PFNGLINDEXUBVPROC glad_glIndexubv = NULL; +PFNGLINITNAMESPROC glad_glInitNames = NULL; +PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays = NULL; +PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData = NULL; +PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData = NULL; +PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL; +PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData = NULL; +PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData = NULL; +PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL; +PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage = NULL; +PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage = NULL; +PFNGLISBUFFERPROC glad_glIsBuffer = NULL; +PFNGLISENABLEDPROC glad_glIsEnabled = NULL; +PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL; +PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL; +PFNGLISLISTPROC glad_glIsList = NULL; +PFNGLISPROGRAMPROC glad_glIsProgram = NULL; +PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL; +PFNGLISQUERYPROC glad_glIsQuery = NULL; +PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL; +PFNGLISSAMPLERPROC glad_glIsSampler = NULL; +PFNGLISSHADERPROC glad_glIsShader = NULL; +PFNGLISSYNCPROC glad_glIsSync = NULL; +PFNGLISTEXTUREPROC glad_glIsTexture = NULL; +PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL; +PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL; +PFNGLLIGHTMODELFPROC glad_glLightModelf = NULL; +PFNGLLIGHTMODELFVPROC glad_glLightModelfv = NULL; +PFNGLLIGHTMODELIPROC glad_glLightModeli = NULL; +PFNGLLIGHTMODELIVPROC glad_glLightModeliv = NULL; +PFNGLLIGHTFPROC glad_glLightf = NULL; +PFNGLLIGHTFVPROC glad_glLightfv = NULL; +PFNGLLIGHTIPROC glad_glLighti = NULL; +PFNGLLIGHTIVPROC glad_glLightiv = NULL; +PFNGLLINESTIPPLEPROC glad_glLineStipple = NULL; +PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; +PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL; +PFNGLLISTBASEPROC glad_glListBase = NULL; +PFNGLLOADIDENTITYPROC glad_glLoadIdentity = NULL; +PFNGLLOADMATRIXDPROC glad_glLoadMatrixd = NULL; +PFNGLLOADMATRIXFPROC glad_glLoadMatrixf = NULL; +PFNGLLOADNAMEPROC glad_glLoadName = NULL; +PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd = NULL; +PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf = NULL; +PFNGLLOGICOPPROC glad_glLogicOp = NULL; +PFNGLMAP1DPROC glad_glMap1d = NULL; +PFNGLMAP1FPROC glad_glMap1f = NULL; +PFNGLMAP2DPROC glad_glMap2d = NULL; +PFNGLMAP2FPROC glad_glMap2f = NULL; +PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL; +PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL; +PFNGLMAPGRID1DPROC glad_glMapGrid1d = NULL; +PFNGLMAPGRID1FPROC glad_glMapGrid1f = NULL; +PFNGLMAPGRID2DPROC glad_glMapGrid2d = NULL; +PFNGLMAPGRID2FPROC glad_glMapGrid2f = NULL; +PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer = NULL; +PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange = NULL; +PFNGLMATERIALFPROC glad_glMaterialf = NULL; +PFNGLMATERIALFVPROC glad_glMaterialfv = NULL; +PFNGLMATERIALIPROC glad_glMateriali = NULL; +PFNGLMATERIALIVPROC glad_glMaterialiv = NULL; +PFNGLMATRIXMODEPROC glad_glMatrixMode = NULL; +PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL; +PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL; +PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL; +PFNGLMULTMATRIXDPROC glad_glMultMatrixd = NULL; +PFNGLMULTMATRIXFPROC glad_glMultMatrixf = NULL; +PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd = NULL; +PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf = NULL; +PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glad_glMultiDrawArraysIndirectCount = NULL; +PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL; +PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glad_glMultiDrawElementsIndirectCount = NULL; +PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d = NULL; +PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv = NULL; +PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f = NULL; +PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv = NULL; +PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i = NULL; +PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv = NULL; +PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s = NULL; +PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv = NULL; +PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d = NULL; +PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv = NULL; +PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f = NULL; +PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv = NULL; +PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i = NULL; +PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv = NULL; +PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s = NULL; +PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv = NULL; +PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d = NULL; +PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv = NULL; +PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f = NULL; +PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv = NULL; +PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i = NULL; +PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv = NULL; +PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s = NULL; +PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv = NULL; +PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d = NULL; +PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv = NULL; +PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f = NULL; +PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv = NULL; +PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i = NULL; +PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv = NULL; +PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s = NULL; +PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv = NULL; +PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui = NULL; +PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv = NULL; +PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui = NULL; +PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv = NULL; +PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui = NULL; +PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv = NULL; +PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui = NULL; +PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv = NULL; +PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData = NULL; +PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage = NULL; +PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData = NULL; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer = NULL; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers = NULL; +PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri = NULL; +PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer = NULL; +PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample = NULL; +PFNGLNEWLISTPROC glad_glNewList = NULL; +PFNGLNORMAL3BPROC glad_glNormal3b = NULL; +PFNGLNORMAL3BVPROC glad_glNormal3bv = NULL; +PFNGLNORMAL3DPROC glad_glNormal3d = NULL; +PFNGLNORMAL3DVPROC glad_glNormal3dv = NULL; +PFNGLNORMAL3FPROC glad_glNormal3f = NULL; +PFNGLNORMAL3FVPROC glad_glNormal3fv = NULL; +PFNGLNORMAL3IPROC glad_glNormal3i = NULL; +PFNGLNORMAL3IVPROC glad_glNormal3iv = NULL; +PFNGLNORMAL3SPROC glad_glNormal3s = NULL; +PFNGLNORMAL3SVPROC glad_glNormal3sv = NULL; +PFNGLNORMALP3UIPROC glad_glNormalP3ui = NULL; +PFNGLNORMALP3UIVPROC glad_glNormalP3uiv = NULL; +PFNGLNORMALPOINTERPROC glad_glNormalPointer = NULL; +PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL; +PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL; +PFNGLORTHOPROC glad_glOrtho = NULL; +PFNGLPASSTHROUGHPROC glad_glPassThrough = NULL; +PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL; +PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL; +PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL; +PFNGLPIXELMAPFVPROC glad_glPixelMapfv = NULL; +PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv = NULL; +PFNGLPIXELMAPUSVPROC glad_glPixelMapusv = NULL; +PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL; +PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; +PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf = NULL; +PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi = NULL; +PFNGLPIXELZOOMPROC glad_glPixelZoom = NULL; +PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL; +PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL; +PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL; +PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL; +PFNGLPOINTSIZEPROC glad_glPointSize = NULL; +PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL; +PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; +PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp = NULL; +PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple = NULL; +PFNGLPOPATTRIBPROC glad_glPopAttrib = NULL; +PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib = NULL; +PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL; +PFNGLPOPMATRIXPROC glad_glPopMatrix = NULL; +PFNGLPOPNAMEPROC glad_glPopName = NULL; +PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL; +PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures = NULL; +PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL; +PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL; +PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL; +PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv = NULL; +PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL; +PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL; +PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL; +PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL; +PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL; +PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL; +PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d = NULL; +PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv = NULL; +PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL; +PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL; +PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL; +PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL; +PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL; +PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL; +PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d = NULL; +PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv = NULL; +PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL; +PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL; +PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL; +PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL; +PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL; +PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL; +PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d = NULL; +PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv = NULL; +PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL; +PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL; +PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL; +PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL; +PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL; +PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL; +PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL; +PFNGLPUSHATTRIBPROC glad_glPushAttrib = NULL; +PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib = NULL; +PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL; +PFNGLPUSHMATRIXPROC glad_glPushMatrix = NULL; +PFNGLPUSHNAMEPROC glad_glPushName = NULL; +PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL; +PFNGLRASTERPOS2DPROC glad_glRasterPos2d = NULL; +PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv = NULL; +PFNGLRASTERPOS2FPROC glad_glRasterPos2f = NULL; +PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv = NULL; +PFNGLRASTERPOS2IPROC glad_glRasterPos2i = NULL; +PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv = NULL; +PFNGLRASTERPOS2SPROC glad_glRasterPos2s = NULL; +PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv = NULL; +PFNGLRASTERPOS3DPROC glad_glRasterPos3d = NULL; +PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv = NULL; +PFNGLRASTERPOS3FPROC glad_glRasterPos3f = NULL; +PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv = NULL; +PFNGLRASTERPOS3IPROC glad_glRasterPos3i = NULL; +PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv = NULL; +PFNGLRASTERPOS3SPROC glad_glRasterPos3s = NULL; +PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv = NULL; +PFNGLRASTERPOS4DPROC glad_glRasterPos4d = NULL; +PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv = NULL; +PFNGLRASTERPOS4FPROC glad_glRasterPos4f = NULL; +PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv = NULL; +PFNGLRASTERPOS4IPROC glad_glRasterPos4i = NULL; +PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv = NULL; +PFNGLRASTERPOS4SPROC glad_glRasterPos4s = NULL; +PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv = NULL; +PFNGLREADBUFFERPROC glad_glReadBuffer = NULL; +PFNGLREADPIXELSPROC glad_glReadPixels = NULL; +PFNGLREADNPIXELSPROC glad_glReadnPixels = NULL; +PFNGLRECTDPROC glad_glRectd = NULL; +PFNGLRECTDVPROC glad_glRectdv = NULL; +PFNGLRECTFPROC glad_glRectf = NULL; +PFNGLRECTFVPROC glad_glRectfv = NULL; +PFNGLRECTIPROC glad_glRecti = NULL; +PFNGLRECTIVPROC glad_glRectiv = NULL; +PFNGLRECTSPROC glad_glRects = NULL; +PFNGLRECTSVPROC glad_glRectsv = NULL; +PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL; +PFNGLRENDERMODEPROC glad_glRenderMode = NULL; +PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL; +PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL; +PFNGLROTATEDPROC glad_glRotated = NULL; +PFNGLROTATEFPROC glad_glRotatef = NULL; +PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; +PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL; +PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL; +PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL; +PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL; +PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL; +PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL; +PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL; +PFNGLSCALEDPROC glad_glScaled = NULL; +PFNGLSCALEFPROC glad_glScalef = NULL; +PFNGLSCISSORPROC glad_glScissor = NULL; +PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL; +PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL; +PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL; +PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b = NULL; +PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv = NULL; +PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d = NULL; +PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv = NULL; +PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f = NULL; +PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv = NULL; +PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i = NULL; +PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv = NULL; +PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s = NULL; +PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv = NULL; +PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub = NULL; +PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv = NULL; +PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui = NULL; +PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv = NULL; +PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us = NULL; +PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv = NULL; +PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui = NULL; +PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv = NULL; +PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer = NULL; +PFNGLSELECTBUFFERPROC glad_glSelectBuffer = NULL; +PFNGLSHADEMODELPROC glad_glShadeModel = NULL; +PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL; +PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL; +PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding = NULL; +PFNGLSPECIALIZESHADERPROC glad_glSpecializeShader = NULL; +PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; +PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL; +PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; +PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL; +PFNGLSTENCILOPPROC glad_glStencilOp = NULL; +PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL; +PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL; +PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange = NULL; +PFNGLTEXCOORD1DPROC glad_glTexCoord1d = NULL; +PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv = NULL; +PFNGLTEXCOORD1FPROC glad_glTexCoord1f = NULL; +PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv = NULL; +PFNGLTEXCOORD1IPROC glad_glTexCoord1i = NULL; +PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv = NULL; +PFNGLTEXCOORD1SPROC glad_glTexCoord1s = NULL; +PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv = NULL; +PFNGLTEXCOORD2DPROC glad_glTexCoord2d = NULL; +PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv = NULL; +PFNGLTEXCOORD2FPROC glad_glTexCoord2f = NULL; +PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv = NULL; +PFNGLTEXCOORD2IPROC glad_glTexCoord2i = NULL; +PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv = NULL; +PFNGLTEXCOORD2SPROC glad_glTexCoord2s = NULL; +PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv = NULL; +PFNGLTEXCOORD3DPROC glad_glTexCoord3d = NULL; +PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv = NULL; +PFNGLTEXCOORD3FPROC glad_glTexCoord3f = NULL; +PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv = NULL; +PFNGLTEXCOORD3IPROC glad_glTexCoord3i = NULL; +PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv = NULL; +PFNGLTEXCOORD3SPROC glad_glTexCoord3s = NULL; +PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv = NULL; +PFNGLTEXCOORD4DPROC glad_glTexCoord4d = NULL; +PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv = NULL; +PFNGLTEXCOORD4FPROC glad_glTexCoord4f = NULL; +PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv = NULL; +PFNGLTEXCOORD4IPROC glad_glTexCoord4i = NULL; +PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv = NULL; +PFNGLTEXCOORD4SPROC glad_glTexCoord4s = NULL; +PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv = NULL; +PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui = NULL; +PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv = NULL; +PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui = NULL; +PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv = NULL; +PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui = NULL; +PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv = NULL; +PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui = NULL; +PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv = NULL; +PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer = NULL; +PFNGLTEXENVFPROC glad_glTexEnvf = NULL; +PFNGLTEXENVFVPROC glad_glTexEnvfv = NULL; +PFNGLTEXENVIPROC glad_glTexEnvi = NULL; +PFNGLTEXENVIVPROC glad_glTexEnviv = NULL; +PFNGLTEXGENDPROC glad_glTexGend = NULL; +PFNGLTEXGENDVPROC glad_glTexGendv = NULL; +PFNGLTEXGENFPROC glad_glTexGenf = NULL; +PFNGLTEXGENFVPROC glad_glTexGenfv = NULL; +PFNGLTEXGENIPROC glad_glTexGeni = NULL; +PFNGLTEXGENIVPROC glad_glTexGeniv = NULL; +PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL; +PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; +PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL; +PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL; +PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL; +PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL; +PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL; +PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL; +PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL; +PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL; +PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL; +PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D = NULL; +PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D = NULL; +PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample = NULL; +PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D = NULL; +PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample = NULL; +PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL; +PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; +PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL; +PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier = NULL; +PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer = NULL; +PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange = NULL; +PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv = NULL; +PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv = NULL; +PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf = NULL; +PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv = NULL; +PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri = NULL; +PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv = NULL; +PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D = NULL; +PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D = NULL; +PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample = NULL; +PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D = NULL; +PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample = NULL; +PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D = NULL; +PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D = NULL; +PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D = NULL; +PFNGLTEXTUREVIEWPROC glad_glTextureView = NULL; +PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL; +PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange = NULL; +PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL; +PFNGLTRANSLATEDPROC glad_glTranslated = NULL; +PFNGLTRANSLATEFPROC glad_glTranslatef = NULL; +PFNGLUNIFORM1DPROC glad_glUniform1d = NULL; +PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL; +PFNGLUNIFORM1FPROC glad_glUniform1f = NULL; +PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL; +PFNGLUNIFORM1IPROC glad_glUniform1i = NULL; +PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL; +PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL; +PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL; +PFNGLUNIFORM2DPROC glad_glUniform2d = NULL; +PFNGLUNIFORM2DVPROC glad_glUniform2dv = NULL; +PFNGLUNIFORM2FPROC glad_glUniform2f = NULL; +PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL; +PFNGLUNIFORM2IPROC glad_glUniform2i = NULL; +PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL; +PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL; +PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL; +PFNGLUNIFORM3DPROC glad_glUniform3d = NULL; +PFNGLUNIFORM3DVPROC glad_glUniform3dv = NULL; +PFNGLUNIFORM3FPROC glad_glUniform3f = NULL; +PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL; +PFNGLUNIFORM3IPROC glad_glUniform3i = NULL; +PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL; +PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL; +PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL; +PFNGLUNIFORM4DPROC glad_glUniform4d = NULL; +PFNGLUNIFORM4DVPROC glad_glUniform4dv = NULL; +PFNGLUNIFORM4FPROC glad_glUniform4f = NULL; +PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL; +PFNGLUNIFORM4IPROC glad_glUniform4i = NULL; +PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL; +PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL; +PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL; +PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL; +PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv = NULL; +PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL; +PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv = NULL; +PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL; +PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv = NULL; +PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL; +PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv = NULL; +PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL; +PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv = NULL; +PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL; +PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv = NULL; +PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL; +PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv = NULL; +PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL; +PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv = NULL; +PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL; +PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv = NULL; +PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL; +PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL; +PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL; +PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer = NULL; +PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL; +PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL; +PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL; +PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL; +PFNGLVERTEX2DPROC glad_glVertex2d = NULL; +PFNGLVERTEX2DVPROC glad_glVertex2dv = NULL; +PFNGLVERTEX2FPROC glad_glVertex2f = NULL; +PFNGLVERTEX2FVPROC glad_glVertex2fv = NULL; +PFNGLVERTEX2IPROC glad_glVertex2i = NULL; +PFNGLVERTEX2IVPROC glad_glVertex2iv = NULL; +PFNGLVERTEX2SPROC glad_glVertex2s = NULL; +PFNGLVERTEX2SVPROC glad_glVertex2sv = NULL; +PFNGLVERTEX3DPROC glad_glVertex3d = NULL; +PFNGLVERTEX3DVPROC glad_glVertex3dv = NULL; +PFNGLVERTEX3FPROC glad_glVertex3f = NULL; +PFNGLVERTEX3FVPROC glad_glVertex3fv = NULL; +PFNGLVERTEX3IPROC glad_glVertex3i = NULL; +PFNGLVERTEX3IVPROC glad_glVertex3iv = NULL; +PFNGLVERTEX3SPROC glad_glVertex3s = NULL; +PFNGLVERTEX3SVPROC glad_glVertex3sv = NULL; +PFNGLVERTEX4DPROC glad_glVertex4d = NULL; +PFNGLVERTEX4DVPROC glad_glVertex4dv = NULL; +PFNGLVERTEX4FPROC glad_glVertex4f = NULL; +PFNGLVERTEX4FVPROC glad_glVertex4fv = NULL; +PFNGLVERTEX4IPROC glad_glVertex4i = NULL; +PFNGLVERTEX4IVPROC glad_glVertex4iv = NULL; +PFNGLVERTEX4SPROC glad_glVertex4s = NULL; +PFNGLVERTEX4SVPROC glad_glVertex4sv = NULL; +PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding = NULL; +PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat = NULL; +PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat = NULL; +PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat = NULL; +PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor = NULL; +PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer = NULL; +PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer = NULL; +PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers = NULL; +PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL; +PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL; +PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL; +PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL; +PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL; +PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL; +PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL; +PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL; +PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL; +PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL; +PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL; +PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL; +PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL; +PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL; +PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL; +PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL; +PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL; +PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL; +PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL; +PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL; +PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL; +PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL; +PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL; +PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL; +PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL; +PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL; +PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL; +PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL; +PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL; +PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL; +PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL; +PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL; +PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL; +PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL; +PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL; +PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL; +PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding = NULL; +PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL; +PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat = NULL; +PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL; +PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL; +PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL; +PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL; +PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL; +PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL; +PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL; +PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL; +PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL; +PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL; +PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL; +PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL; +PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL; +PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL; +PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL; +PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL; +PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL; +PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL; +PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL; +PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL; +PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat = NULL; +PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL; +PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d = NULL; +PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv = NULL; +PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d = NULL; +PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv = NULL; +PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d = NULL; +PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv = NULL; +PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d = NULL; +PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv = NULL; +PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat = NULL; +PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer = NULL; +PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL; +PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL; +PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL; +PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL; +PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL; +PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL; +PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL; +PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL; +PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL; +PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor = NULL; +PFNGLVERTEXP2UIPROC glad_glVertexP2ui = NULL; +PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv = NULL; +PFNGLVERTEXP3UIPROC glad_glVertexP3ui = NULL; +PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv = NULL; +PFNGLVERTEXP4UIPROC glad_glVertexP4ui = NULL; +PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv = NULL; +PFNGLVERTEXPOINTERPROC glad_glVertexPointer = NULL; +PFNGLVIEWPORTPROC glad_glViewport = NULL; +PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL; +PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL; +PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL; +PFNGLWAITSYNCPROC glad_glWaitSync = NULL; +PFNGLWINDOWPOS2DPROC glad_glWindowPos2d = NULL; +PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv = NULL; +PFNGLWINDOWPOS2FPROC glad_glWindowPos2f = NULL; +PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv = NULL; +PFNGLWINDOWPOS2IPROC glad_glWindowPos2i = NULL; +PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv = NULL; +PFNGLWINDOWPOS2SPROC glad_glWindowPos2s = NULL; +PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv = NULL; +PFNGLWINDOWPOS3DPROC glad_glWindowPos3d = NULL; +PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv = NULL; +PFNGLWINDOWPOS3FPROC glad_glWindowPos3f = NULL; +PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv = NULL; +PFNGLWINDOWPOS3IPROC glad_glWindowPos3i = NULL; +PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv = NULL; +PFNGLWINDOWPOS3SPROC glad_glWindowPos3s = NULL; +PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv = NULL; +static void load_GL_VERSION_1_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_0) return; + glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); + glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); + glad_glHint = (PFNGLHINTPROC)load("glHint"); + glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); + glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); + glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); + glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); + glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); + glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); + glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); + glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); + glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); + glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); + glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); + glad_glClear = (PFNGLCLEARPROC)load("glClear"); + glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); + glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); + glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); + glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); + glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); + glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); + glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); + glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); + glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); + glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); + glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); + glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); + glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); + glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); + glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); + glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); + glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); + glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); + glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); + glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); + glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); + glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); + glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); + glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); + glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); + glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); + glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); + glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); + glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); + glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); + glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); + glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); + glad_glNewList = (PFNGLNEWLISTPROC)load("glNewList"); + glad_glEndList = (PFNGLENDLISTPROC)load("glEndList"); + glad_glCallList = (PFNGLCALLLISTPROC)load("glCallList"); + glad_glCallLists = (PFNGLCALLLISTSPROC)load("glCallLists"); + glad_glDeleteLists = (PFNGLDELETELISTSPROC)load("glDeleteLists"); + glad_glGenLists = (PFNGLGENLISTSPROC)load("glGenLists"); + glad_glListBase = (PFNGLLISTBASEPROC)load("glListBase"); + glad_glBegin = (PFNGLBEGINPROC)load("glBegin"); + glad_glBitmap = (PFNGLBITMAPPROC)load("glBitmap"); + glad_glColor3b = (PFNGLCOLOR3BPROC)load("glColor3b"); + glad_glColor3bv = (PFNGLCOLOR3BVPROC)load("glColor3bv"); + glad_glColor3d = (PFNGLCOLOR3DPROC)load("glColor3d"); + glad_glColor3dv = (PFNGLCOLOR3DVPROC)load("glColor3dv"); + glad_glColor3f = (PFNGLCOLOR3FPROC)load("glColor3f"); + glad_glColor3fv = (PFNGLCOLOR3FVPROC)load("glColor3fv"); + glad_glColor3i = (PFNGLCOLOR3IPROC)load("glColor3i"); + glad_glColor3iv = (PFNGLCOLOR3IVPROC)load("glColor3iv"); + glad_glColor3s = (PFNGLCOLOR3SPROC)load("glColor3s"); + glad_glColor3sv = (PFNGLCOLOR3SVPROC)load("glColor3sv"); + glad_glColor3ub = (PFNGLCOLOR3UBPROC)load("glColor3ub"); + glad_glColor3ubv = (PFNGLCOLOR3UBVPROC)load("glColor3ubv"); + glad_glColor3ui = (PFNGLCOLOR3UIPROC)load("glColor3ui"); + glad_glColor3uiv = (PFNGLCOLOR3UIVPROC)load("glColor3uiv"); + glad_glColor3us = (PFNGLCOLOR3USPROC)load("glColor3us"); + glad_glColor3usv = (PFNGLCOLOR3USVPROC)load("glColor3usv"); + glad_glColor4b = (PFNGLCOLOR4BPROC)load("glColor4b"); + glad_glColor4bv = (PFNGLCOLOR4BVPROC)load("glColor4bv"); + glad_glColor4d = (PFNGLCOLOR4DPROC)load("glColor4d"); + glad_glColor4dv = (PFNGLCOLOR4DVPROC)load("glColor4dv"); + glad_glColor4f = (PFNGLCOLOR4FPROC)load("glColor4f"); + glad_glColor4fv = (PFNGLCOLOR4FVPROC)load("glColor4fv"); + glad_glColor4i = (PFNGLCOLOR4IPROC)load("glColor4i"); + glad_glColor4iv = (PFNGLCOLOR4IVPROC)load("glColor4iv"); + glad_glColor4s = (PFNGLCOLOR4SPROC)load("glColor4s"); + glad_glColor4sv = (PFNGLCOLOR4SVPROC)load("glColor4sv"); + glad_glColor4ub = (PFNGLCOLOR4UBPROC)load("glColor4ub"); + glad_glColor4ubv = (PFNGLCOLOR4UBVPROC)load("glColor4ubv"); + glad_glColor4ui = (PFNGLCOLOR4UIPROC)load("glColor4ui"); + glad_glColor4uiv = (PFNGLCOLOR4UIVPROC)load("glColor4uiv"); + glad_glColor4us = (PFNGLCOLOR4USPROC)load("glColor4us"); + glad_glColor4usv = (PFNGLCOLOR4USVPROC)load("glColor4usv"); + glad_glEdgeFlag = (PFNGLEDGEFLAGPROC)load("glEdgeFlag"); + glad_glEdgeFlagv = (PFNGLEDGEFLAGVPROC)load("glEdgeFlagv"); + glad_glEnd = (PFNGLENDPROC)load("glEnd"); + glad_glIndexd = (PFNGLINDEXDPROC)load("glIndexd"); + glad_glIndexdv = (PFNGLINDEXDVPROC)load("glIndexdv"); + glad_glIndexf = (PFNGLINDEXFPROC)load("glIndexf"); + glad_glIndexfv = (PFNGLINDEXFVPROC)load("glIndexfv"); + glad_glIndexi = (PFNGLINDEXIPROC)load("glIndexi"); + glad_glIndexiv = (PFNGLINDEXIVPROC)load("glIndexiv"); + glad_glIndexs = (PFNGLINDEXSPROC)load("glIndexs"); + glad_glIndexsv = (PFNGLINDEXSVPROC)load("glIndexsv"); + glad_glNormal3b = (PFNGLNORMAL3BPROC)load("glNormal3b"); + glad_glNormal3bv = (PFNGLNORMAL3BVPROC)load("glNormal3bv"); + glad_glNormal3d = (PFNGLNORMAL3DPROC)load("glNormal3d"); + glad_glNormal3dv = (PFNGLNORMAL3DVPROC)load("glNormal3dv"); + glad_glNormal3f = (PFNGLNORMAL3FPROC)load("glNormal3f"); + glad_glNormal3fv = (PFNGLNORMAL3FVPROC)load("glNormal3fv"); + glad_glNormal3i = (PFNGLNORMAL3IPROC)load("glNormal3i"); + glad_glNormal3iv = (PFNGLNORMAL3IVPROC)load("glNormal3iv"); + glad_glNormal3s = (PFNGLNORMAL3SPROC)load("glNormal3s"); + glad_glNormal3sv = (PFNGLNORMAL3SVPROC)load("glNormal3sv"); + glad_glRasterPos2d = (PFNGLRASTERPOS2DPROC)load("glRasterPos2d"); + glad_glRasterPos2dv = (PFNGLRASTERPOS2DVPROC)load("glRasterPos2dv"); + glad_glRasterPos2f = (PFNGLRASTERPOS2FPROC)load("glRasterPos2f"); + glad_glRasterPos2fv = (PFNGLRASTERPOS2FVPROC)load("glRasterPos2fv"); + glad_glRasterPos2i = (PFNGLRASTERPOS2IPROC)load("glRasterPos2i"); + glad_glRasterPos2iv = (PFNGLRASTERPOS2IVPROC)load("glRasterPos2iv"); + glad_glRasterPos2s = (PFNGLRASTERPOS2SPROC)load("glRasterPos2s"); + glad_glRasterPos2sv = (PFNGLRASTERPOS2SVPROC)load("glRasterPos2sv"); + glad_glRasterPos3d = (PFNGLRASTERPOS3DPROC)load("glRasterPos3d"); + glad_glRasterPos3dv = (PFNGLRASTERPOS3DVPROC)load("glRasterPos3dv"); + glad_glRasterPos3f = (PFNGLRASTERPOS3FPROC)load("glRasterPos3f"); + glad_glRasterPos3fv = (PFNGLRASTERPOS3FVPROC)load("glRasterPos3fv"); + glad_glRasterPos3i = (PFNGLRASTERPOS3IPROC)load("glRasterPos3i"); + glad_glRasterPos3iv = (PFNGLRASTERPOS3IVPROC)load("glRasterPos3iv"); + glad_glRasterPos3s = (PFNGLRASTERPOS3SPROC)load("glRasterPos3s"); + glad_glRasterPos3sv = (PFNGLRASTERPOS3SVPROC)load("glRasterPos3sv"); + glad_glRasterPos4d = (PFNGLRASTERPOS4DPROC)load("glRasterPos4d"); + glad_glRasterPos4dv = (PFNGLRASTERPOS4DVPROC)load("glRasterPos4dv"); + glad_glRasterPos4f = (PFNGLRASTERPOS4FPROC)load("glRasterPos4f"); + glad_glRasterPos4fv = (PFNGLRASTERPOS4FVPROC)load("glRasterPos4fv"); + glad_glRasterPos4i = (PFNGLRASTERPOS4IPROC)load("glRasterPos4i"); + glad_glRasterPos4iv = (PFNGLRASTERPOS4IVPROC)load("glRasterPos4iv"); + glad_glRasterPos4s = (PFNGLRASTERPOS4SPROC)load("glRasterPos4s"); + glad_glRasterPos4sv = (PFNGLRASTERPOS4SVPROC)load("glRasterPos4sv"); + glad_glRectd = (PFNGLRECTDPROC)load("glRectd"); + glad_glRectdv = (PFNGLRECTDVPROC)load("glRectdv"); + glad_glRectf = (PFNGLRECTFPROC)load("glRectf"); + glad_glRectfv = (PFNGLRECTFVPROC)load("glRectfv"); + glad_glRecti = (PFNGLRECTIPROC)load("glRecti"); + glad_glRectiv = (PFNGLRECTIVPROC)load("glRectiv"); + glad_glRects = (PFNGLRECTSPROC)load("glRects"); + glad_glRectsv = (PFNGLRECTSVPROC)load("glRectsv"); + glad_glTexCoord1d = (PFNGLTEXCOORD1DPROC)load("glTexCoord1d"); + glad_glTexCoord1dv = (PFNGLTEXCOORD1DVPROC)load("glTexCoord1dv"); + glad_glTexCoord1f = (PFNGLTEXCOORD1FPROC)load("glTexCoord1f"); + glad_glTexCoord1fv = (PFNGLTEXCOORD1FVPROC)load("glTexCoord1fv"); + glad_glTexCoord1i = (PFNGLTEXCOORD1IPROC)load("glTexCoord1i"); + glad_glTexCoord1iv = (PFNGLTEXCOORD1IVPROC)load("glTexCoord1iv"); + glad_glTexCoord1s = (PFNGLTEXCOORD1SPROC)load("glTexCoord1s"); + glad_glTexCoord1sv = (PFNGLTEXCOORD1SVPROC)load("glTexCoord1sv"); + glad_glTexCoord2d = (PFNGLTEXCOORD2DPROC)load("glTexCoord2d"); + glad_glTexCoord2dv = (PFNGLTEXCOORD2DVPROC)load("glTexCoord2dv"); + glad_glTexCoord2f = (PFNGLTEXCOORD2FPROC)load("glTexCoord2f"); + glad_glTexCoord2fv = (PFNGLTEXCOORD2FVPROC)load("glTexCoord2fv"); + glad_glTexCoord2i = (PFNGLTEXCOORD2IPROC)load("glTexCoord2i"); + glad_glTexCoord2iv = (PFNGLTEXCOORD2IVPROC)load("glTexCoord2iv"); + glad_glTexCoord2s = (PFNGLTEXCOORD2SPROC)load("glTexCoord2s"); + glad_glTexCoord2sv = (PFNGLTEXCOORD2SVPROC)load("glTexCoord2sv"); + glad_glTexCoord3d = (PFNGLTEXCOORD3DPROC)load("glTexCoord3d"); + glad_glTexCoord3dv = (PFNGLTEXCOORD3DVPROC)load("glTexCoord3dv"); + glad_glTexCoord3f = (PFNGLTEXCOORD3FPROC)load("glTexCoord3f"); + glad_glTexCoord3fv = (PFNGLTEXCOORD3FVPROC)load("glTexCoord3fv"); + glad_glTexCoord3i = (PFNGLTEXCOORD3IPROC)load("glTexCoord3i"); + glad_glTexCoord3iv = (PFNGLTEXCOORD3IVPROC)load("glTexCoord3iv"); + glad_glTexCoord3s = (PFNGLTEXCOORD3SPROC)load("glTexCoord3s"); + glad_glTexCoord3sv = (PFNGLTEXCOORD3SVPROC)load("glTexCoord3sv"); + glad_glTexCoord4d = (PFNGLTEXCOORD4DPROC)load("glTexCoord4d"); + glad_glTexCoord4dv = (PFNGLTEXCOORD4DVPROC)load("glTexCoord4dv"); + glad_glTexCoord4f = (PFNGLTEXCOORD4FPROC)load("glTexCoord4f"); + glad_glTexCoord4fv = (PFNGLTEXCOORD4FVPROC)load("glTexCoord4fv"); + glad_glTexCoord4i = (PFNGLTEXCOORD4IPROC)load("glTexCoord4i"); + glad_glTexCoord4iv = (PFNGLTEXCOORD4IVPROC)load("glTexCoord4iv"); + glad_glTexCoord4s = (PFNGLTEXCOORD4SPROC)load("glTexCoord4s"); + glad_glTexCoord4sv = (PFNGLTEXCOORD4SVPROC)load("glTexCoord4sv"); + glad_glVertex2d = (PFNGLVERTEX2DPROC)load("glVertex2d"); + glad_glVertex2dv = (PFNGLVERTEX2DVPROC)load("glVertex2dv"); + glad_glVertex2f = (PFNGLVERTEX2FPROC)load("glVertex2f"); + glad_glVertex2fv = (PFNGLVERTEX2FVPROC)load("glVertex2fv"); + glad_glVertex2i = (PFNGLVERTEX2IPROC)load("glVertex2i"); + glad_glVertex2iv = (PFNGLVERTEX2IVPROC)load("glVertex2iv"); + glad_glVertex2s = (PFNGLVERTEX2SPROC)load("glVertex2s"); + glad_glVertex2sv = (PFNGLVERTEX2SVPROC)load("glVertex2sv"); + glad_glVertex3d = (PFNGLVERTEX3DPROC)load("glVertex3d"); + glad_glVertex3dv = (PFNGLVERTEX3DVPROC)load("glVertex3dv"); + glad_glVertex3f = (PFNGLVERTEX3FPROC)load("glVertex3f"); + glad_glVertex3fv = (PFNGLVERTEX3FVPROC)load("glVertex3fv"); + glad_glVertex3i = (PFNGLVERTEX3IPROC)load("glVertex3i"); + glad_glVertex3iv = (PFNGLVERTEX3IVPROC)load("glVertex3iv"); + glad_glVertex3s = (PFNGLVERTEX3SPROC)load("glVertex3s"); + glad_glVertex3sv = (PFNGLVERTEX3SVPROC)load("glVertex3sv"); + glad_glVertex4d = (PFNGLVERTEX4DPROC)load("glVertex4d"); + glad_glVertex4dv = (PFNGLVERTEX4DVPROC)load("glVertex4dv"); + glad_glVertex4f = (PFNGLVERTEX4FPROC)load("glVertex4f"); + glad_glVertex4fv = (PFNGLVERTEX4FVPROC)load("glVertex4fv"); + glad_glVertex4i = (PFNGLVERTEX4IPROC)load("glVertex4i"); + glad_glVertex4iv = (PFNGLVERTEX4IVPROC)load("glVertex4iv"); + glad_glVertex4s = (PFNGLVERTEX4SPROC)load("glVertex4s"); + glad_glVertex4sv = (PFNGLVERTEX4SVPROC)load("glVertex4sv"); + glad_glClipPlane = (PFNGLCLIPPLANEPROC)load("glClipPlane"); + glad_glColorMaterial = (PFNGLCOLORMATERIALPROC)load("glColorMaterial"); + glad_glFogf = (PFNGLFOGFPROC)load("glFogf"); + glad_glFogfv = (PFNGLFOGFVPROC)load("glFogfv"); + glad_glFogi = (PFNGLFOGIPROC)load("glFogi"); + glad_glFogiv = (PFNGLFOGIVPROC)load("glFogiv"); + glad_glLightf = (PFNGLLIGHTFPROC)load("glLightf"); + glad_glLightfv = (PFNGLLIGHTFVPROC)load("glLightfv"); + glad_glLighti = (PFNGLLIGHTIPROC)load("glLighti"); + glad_glLightiv = (PFNGLLIGHTIVPROC)load("glLightiv"); + glad_glLightModelf = (PFNGLLIGHTMODELFPROC)load("glLightModelf"); + glad_glLightModelfv = (PFNGLLIGHTMODELFVPROC)load("glLightModelfv"); + glad_glLightModeli = (PFNGLLIGHTMODELIPROC)load("glLightModeli"); + glad_glLightModeliv = (PFNGLLIGHTMODELIVPROC)load("glLightModeliv"); + glad_glLineStipple = (PFNGLLINESTIPPLEPROC)load("glLineStipple"); + glad_glMaterialf = (PFNGLMATERIALFPROC)load("glMaterialf"); + glad_glMaterialfv = (PFNGLMATERIALFVPROC)load("glMaterialfv"); + glad_glMateriali = (PFNGLMATERIALIPROC)load("glMateriali"); + glad_glMaterialiv = (PFNGLMATERIALIVPROC)load("glMaterialiv"); + glad_glPolygonStipple = (PFNGLPOLYGONSTIPPLEPROC)load("glPolygonStipple"); + glad_glShadeModel = (PFNGLSHADEMODELPROC)load("glShadeModel"); + glad_glTexEnvf = (PFNGLTEXENVFPROC)load("glTexEnvf"); + glad_glTexEnvfv = (PFNGLTEXENVFVPROC)load("glTexEnvfv"); + glad_glTexEnvi = (PFNGLTEXENVIPROC)load("glTexEnvi"); + glad_glTexEnviv = (PFNGLTEXENVIVPROC)load("glTexEnviv"); + glad_glTexGend = (PFNGLTEXGENDPROC)load("glTexGend"); + glad_glTexGendv = (PFNGLTEXGENDVPROC)load("glTexGendv"); + glad_glTexGenf = (PFNGLTEXGENFPROC)load("glTexGenf"); + glad_glTexGenfv = (PFNGLTEXGENFVPROC)load("glTexGenfv"); + glad_glTexGeni = (PFNGLTEXGENIPROC)load("glTexGeni"); + glad_glTexGeniv = (PFNGLTEXGENIVPROC)load("glTexGeniv"); + glad_glFeedbackBuffer = (PFNGLFEEDBACKBUFFERPROC)load("glFeedbackBuffer"); + glad_glSelectBuffer = (PFNGLSELECTBUFFERPROC)load("glSelectBuffer"); + glad_glRenderMode = (PFNGLRENDERMODEPROC)load("glRenderMode"); + glad_glInitNames = (PFNGLINITNAMESPROC)load("glInitNames"); + glad_glLoadName = (PFNGLLOADNAMEPROC)load("glLoadName"); + glad_glPassThrough = (PFNGLPASSTHROUGHPROC)load("glPassThrough"); + glad_glPopName = (PFNGLPOPNAMEPROC)load("glPopName"); + glad_glPushName = (PFNGLPUSHNAMEPROC)load("glPushName"); + glad_glClearAccum = (PFNGLCLEARACCUMPROC)load("glClearAccum"); + glad_glClearIndex = (PFNGLCLEARINDEXPROC)load("glClearIndex"); + glad_glIndexMask = (PFNGLINDEXMASKPROC)load("glIndexMask"); + glad_glAccum = (PFNGLACCUMPROC)load("glAccum"); + glad_glPopAttrib = (PFNGLPOPATTRIBPROC)load("glPopAttrib"); + glad_glPushAttrib = (PFNGLPUSHATTRIBPROC)load("glPushAttrib"); + glad_glMap1d = (PFNGLMAP1DPROC)load("glMap1d"); + glad_glMap1f = (PFNGLMAP1FPROC)load("glMap1f"); + glad_glMap2d = (PFNGLMAP2DPROC)load("glMap2d"); + glad_glMap2f = (PFNGLMAP2FPROC)load("glMap2f"); + glad_glMapGrid1d = (PFNGLMAPGRID1DPROC)load("glMapGrid1d"); + glad_glMapGrid1f = (PFNGLMAPGRID1FPROC)load("glMapGrid1f"); + glad_glMapGrid2d = (PFNGLMAPGRID2DPROC)load("glMapGrid2d"); + glad_glMapGrid2f = (PFNGLMAPGRID2FPROC)load("glMapGrid2f"); + glad_glEvalCoord1d = (PFNGLEVALCOORD1DPROC)load("glEvalCoord1d"); + glad_glEvalCoord1dv = (PFNGLEVALCOORD1DVPROC)load("glEvalCoord1dv"); + glad_glEvalCoord1f = (PFNGLEVALCOORD1FPROC)load("glEvalCoord1f"); + glad_glEvalCoord1fv = (PFNGLEVALCOORD1FVPROC)load("glEvalCoord1fv"); + glad_glEvalCoord2d = (PFNGLEVALCOORD2DPROC)load("glEvalCoord2d"); + glad_glEvalCoord2dv = (PFNGLEVALCOORD2DVPROC)load("glEvalCoord2dv"); + glad_glEvalCoord2f = (PFNGLEVALCOORD2FPROC)load("glEvalCoord2f"); + glad_glEvalCoord2fv = (PFNGLEVALCOORD2FVPROC)load("glEvalCoord2fv"); + glad_glEvalMesh1 = (PFNGLEVALMESH1PROC)load("glEvalMesh1"); + glad_glEvalPoint1 = (PFNGLEVALPOINT1PROC)load("glEvalPoint1"); + glad_glEvalMesh2 = (PFNGLEVALMESH2PROC)load("glEvalMesh2"); + glad_glEvalPoint2 = (PFNGLEVALPOINT2PROC)load("glEvalPoint2"); + glad_glAlphaFunc = (PFNGLALPHAFUNCPROC)load("glAlphaFunc"); + glad_glPixelZoom = (PFNGLPIXELZOOMPROC)load("glPixelZoom"); + glad_glPixelTransferf = (PFNGLPIXELTRANSFERFPROC)load("glPixelTransferf"); + glad_glPixelTransferi = (PFNGLPIXELTRANSFERIPROC)load("glPixelTransferi"); + glad_glPixelMapfv = (PFNGLPIXELMAPFVPROC)load("glPixelMapfv"); + glad_glPixelMapuiv = (PFNGLPIXELMAPUIVPROC)load("glPixelMapuiv"); + glad_glPixelMapusv = (PFNGLPIXELMAPUSVPROC)load("glPixelMapusv"); + glad_glCopyPixels = (PFNGLCOPYPIXELSPROC)load("glCopyPixels"); + glad_glDrawPixels = (PFNGLDRAWPIXELSPROC)load("glDrawPixels"); + glad_glGetClipPlane = (PFNGLGETCLIPPLANEPROC)load("glGetClipPlane"); + glad_glGetLightfv = (PFNGLGETLIGHTFVPROC)load("glGetLightfv"); + glad_glGetLightiv = (PFNGLGETLIGHTIVPROC)load("glGetLightiv"); + glad_glGetMapdv = (PFNGLGETMAPDVPROC)load("glGetMapdv"); + glad_glGetMapfv = (PFNGLGETMAPFVPROC)load("glGetMapfv"); + glad_glGetMapiv = (PFNGLGETMAPIVPROC)load("glGetMapiv"); + glad_glGetMaterialfv = (PFNGLGETMATERIALFVPROC)load("glGetMaterialfv"); + glad_glGetMaterialiv = (PFNGLGETMATERIALIVPROC)load("glGetMaterialiv"); + glad_glGetPixelMapfv = (PFNGLGETPIXELMAPFVPROC)load("glGetPixelMapfv"); + glad_glGetPixelMapuiv = (PFNGLGETPIXELMAPUIVPROC)load("glGetPixelMapuiv"); + glad_glGetPixelMapusv = (PFNGLGETPIXELMAPUSVPROC)load("glGetPixelMapusv"); + glad_glGetPolygonStipple = (PFNGLGETPOLYGONSTIPPLEPROC)load("glGetPolygonStipple"); + glad_glGetTexEnvfv = (PFNGLGETTEXENVFVPROC)load("glGetTexEnvfv"); + glad_glGetTexEnviv = (PFNGLGETTEXENVIVPROC)load("glGetTexEnviv"); + glad_glGetTexGendv = (PFNGLGETTEXGENDVPROC)load("glGetTexGendv"); + glad_glGetTexGenfv = (PFNGLGETTEXGENFVPROC)load("glGetTexGenfv"); + glad_glGetTexGeniv = (PFNGLGETTEXGENIVPROC)load("glGetTexGeniv"); + glad_glIsList = (PFNGLISLISTPROC)load("glIsList"); + glad_glFrustum = (PFNGLFRUSTUMPROC)load("glFrustum"); + glad_glLoadIdentity = (PFNGLLOADIDENTITYPROC)load("glLoadIdentity"); + glad_glLoadMatrixf = (PFNGLLOADMATRIXFPROC)load("glLoadMatrixf"); + glad_glLoadMatrixd = (PFNGLLOADMATRIXDPROC)load("glLoadMatrixd"); + glad_glMatrixMode = (PFNGLMATRIXMODEPROC)load("glMatrixMode"); + glad_glMultMatrixf = (PFNGLMULTMATRIXFPROC)load("glMultMatrixf"); + glad_glMultMatrixd = (PFNGLMULTMATRIXDPROC)load("glMultMatrixd"); + glad_glOrtho = (PFNGLORTHOPROC)load("glOrtho"); + glad_glPopMatrix = (PFNGLPOPMATRIXPROC)load("glPopMatrix"); + glad_glPushMatrix = (PFNGLPUSHMATRIXPROC)load("glPushMatrix"); + glad_glRotated = (PFNGLROTATEDPROC)load("glRotated"); + glad_glRotatef = (PFNGLROTATEFPROC)load("glRotatef"); + glad_glScaled = (PFNGLSCALEDPROC)load("glScaled"); + glad_glScalef = (PFNGLSCALEFPROC)load("glScalef"); + glad_glTranslated = (PFNGLTRANSLATEDPROC)load("glTranslated"); + glad_glTranslatef = (PFNGLTRANSLATEFPROC)load("glTranslatef"); +} +static void load_GL_VERSION_1_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_1) return; + glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); + glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); + glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); + glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); + glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); + glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); + glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); + glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); + glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); + glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); + glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); + glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); + glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); + glad_glArrayElement = (PFNGLARRAYELEMENTPROC)load("glArrayElement"); + glad_glColorPointer = (PFNGLCOLORPOINTERPROC)load("glColorPointer"); + glad_glDisableClientState = (PFNGLDISABLECLIENTSTATEPROC)load("glDisableClientState"); + glad_glEdgeFlagPointer = (PFNGLEDGEFLAGPOINTERPROC)load("glEdgeFlagPointer"); + glad_glEnableClientState = (PFNGLENABLECLIENTSTATEPROC)load("glEnableClientState"); + glad_glIndexPointer = (PFNGLINDEXPOINTERPROC)load("glIndexPointer"); + glad_glInterleavedArrays = (PFNGLINTERLEAVEDARRAYSPROC)load("glInterleavedArrays"); + glad_glNormalPointer = (PFNGLNORMALPOINTERPROC)load("glNormalPointer"); + glad_glTexCoordPointer = (PFNGLTEXCOORDPOINTERPROC)load("glTexCoordPointer"); + glad_glVertexPointer = (PFNGLVERTEXPOINTERPROC)load("glVertexPointer"); + glad_glAreTexturesResident = (PFNGLARETEXTURESRESIDENTPROC)load("glAreTexturesResident"); + glad_glPrioritizeTextures = (PFNGLPRIORITIZETEXTURESPROC)load("glPrioritizeTextures"); + glad_glIndexub = (PFNGLINDEXUBPROC)load("glIndexub"); + glad_glIndexubv = (PFNGLINDEXUBVPROC)load("glIndexubv"); + glad_glPopClientAttrib = (PFNGLPOPCLIENTATTRIBPROC)load("glPopClientAttrib"); + glad_glPushClientAttrib = (PFNGLPUSHCLIENTATTRIBPROC)load("glPushClientAttrib"); +} +static void load_GL_VERSION_1_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_2) return; + glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); + glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); + glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); + glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); +} +static void load_GL_VERSION_1_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_3) return; + glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); + glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); + glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); + glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); + glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); + glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); + glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); + glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); + glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); + glad_glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)load("glClientActiveTexture"); + glad_glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC)load("glMultiTexCoord1d"); + glad_glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC)load("glMultiTexCoord1dv"); + glad_glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC)load("glMultiTexCoord1f"); + glad_glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC)load("glMultiTexCoord1fv"); + glad_glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC)load("glMultiTexCoord1i"); + glad_glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC)load("glMultiTexCoord1iv"); + glad_glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC)load("glMultiTexCoord1s"); + glad_glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC)load("glMultiTexCoord1sv"); + glad_glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC)load("glMultiTexCoord2d"); + glad_glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC)load("glMultiTexCoord2dv"); + glad_glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC)load("glMultiTexCoord2f"); + glad_glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC)load("glMultiTexCoord2fv"); + glad_glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC)load("glMultiTexCoord2i"); + glad_glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC)load("glMultiTexCoord2iv"); + glad_glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC)load("glMultiTexCoord2s"); + glad_glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC)load("glMultiTexCoord2sv"); + glad_glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC)load("glMultiTexCoord3d"); + glad_glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC)load("glMultiTexCoord3dv"); + glad_glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC)load("glMultiTexCoord3f"); + glad_glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC)load("glMultiTexCoord3fv"); + glad_glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC)load("glMultiTexCoord3i"); + glad_glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC)load("glMultiTexCoord3iv"); + glad_glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC)load("glMultiTexCoord3s"); + glad_glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC)load("glMultiTexCoord3sv"); + glad_glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC)load("glMultiTexCoord4d"); + glad_glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC)load("glMultiTexCoord4dv"); + glad_glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)load("glMultiTexCoord4f"); + glad_glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC)load("glMultiTexCoord4fv"); + glad_glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC)load("glMultiTexCoord4i"); + glad_glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC)load("glMultiTexCoord4iv"); + glad_glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC)load("glMultiTexCoord4s"); + glad_glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC)load("glMultiTexCoord4sv"); + glad_glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC)load("glLoadTransposeMatrixf"); + glad_glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC)load("glLoadTransposeMatrixd"); + glad_glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC)load("glMultTransposeMatrixf"); + glad_glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC)load("glMultTransposeMatrixd"); +} +static void load_GL_VERSION_1_4(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_4) return; + glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); + glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); + glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); + glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); + glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); + glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); + glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); + glad_glFogCoordf = (PFNGLFOGCOORDFPROC)load("glFogCoordf"); + glad_glFogCoordfv = (PFNGLFOGCOORDFVPROC)load("glFogCoordfv"); + glad_glFogCoordd = (PFNGLFOGCOORDDPROC)load("glFogCoordd"); + glad_glFogCoorddv = (PFNGLFOGCOORDDVPROC)load("glFogCoorddv"); + glad_glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC)load("glFogCoordPointer"); + glad_glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC)load("glSecondaryColor3b"); + glad_glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC)load("glSecondaryColor3bv"); + glad_glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC)load("glSecondaryColor3d"); + glad_glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC)load("glSecondaryColor3dv"); + glad_glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC)load("glSecondaryColor3f"); + glad_glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC)load("glSecondaryColor3fv"); + glad_glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC)load("glSecondaryColor3i"); + glad_glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC)load("glSecondaryColor3iv"); + glad_glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC)load("glSecondaryColor3s"); + glad_glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC)load("glSecondaryColor3sv"); + glad_glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC)load("glSecondaryColor3ub"); + glad_glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC)load("glSecondaryColor3ubv"); + glad_glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC)load("glSecondaryColor3ui"); + glad_glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC)load("glSecondaryColor3uiv"); + glad_glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC)load("glSecondaryColor3us"); + glad_glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC)load("glSecondaryColor3usv"); + glad_glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC)load("glSecondaryColorPointer"); + glad_glWindowPos2d = (PFNGLWINDOWPOS2DPROC)load("glWindowPos2d"); + glad_glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC)load("glWindowPos2dv"); + glad_glWindowPos2f = (PFNGLWINDOWPOS2FPROC)load("glWindowPos2f"); + glad_glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC)load("glWindowPos2fv"); + glad_glWindowPos2i = (PFNGLWINDOWPOS2IPROC)load("glWindowPos2i"); + glad_glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC)load("glWindowPos2iv"); + glad_glWindowPos2s = (PFNGLWINDOWPOS2SPROC)load("glWindowPos2s"); + glad_glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC)load("glWindowPos2sv"); + glad_glWindowPos3d = (PFNGLWINDOWPOS3DPROC)load("glWindowPos3d"); + glad_glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC)load("glWindowPos3dv"); + glad_glWindowPos3f = (PFNGLWINDOWPOS3FPROC)load("glWindowPos3f"); + glad_glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC)load("glWindowPos3fv"); + glad_glWindowPos3i = (PFNGLWINDOWPOS3IPROC)load("glWindowPos3i"); + glad_glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC)load("glWindowPos3iv"); + glad_glWindowPos3s = (PFNGLWINDOWPOS3SPROC)load("glWindowPos3s"); + glad_glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC)load("glWindowPos3sv"); + glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); + glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); +} +static void load_GL_VERSION_1_5(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_5) return; + glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); + glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); + glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); + glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); + glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); + glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); + glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); + glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); + glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); + glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); + glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); + glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); + glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); + glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); + glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); + glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); + glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); + glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); + glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); +} +static void load_GL_VERSION_2_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_0) return; + glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); + glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); + glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); + glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); + glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); + glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); + glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); + glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); + glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); + glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); + glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); + glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); + glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); + glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); + glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); + glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); + glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); + glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); + glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); + glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); + glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); + glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); + glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); + glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); + glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); + glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); + glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); + glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); + glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); + glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); + glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); + glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); + glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); + glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); + glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); + glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); + glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); + glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); + glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); + glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); + glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); + glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); + glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); + glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); + glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); + glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); + glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); + glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); + glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); + glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); + glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); + glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); + glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); + glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); + glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); + glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); + glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); + glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); + glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); + glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); + glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); + glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); + glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); + glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); + glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); + glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); + glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); + glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); + glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); + glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); + glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); + glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); + glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); + glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); + glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); + glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); + glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); + glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); + glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); + glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); + glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); + glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); + glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); + glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); + glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); + glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); + glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); + glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); + glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); + glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); + glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); + glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); + glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); +} +static void load_GL_VERSION_2_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_1) return; + glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); + glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); + glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); + glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); + glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); + glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); +} +static void load_GL_VERSION_3_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_0) return; + glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); + glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); + glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); + glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); + glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); + glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); + glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); + glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); + glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); + glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); + glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); + glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); + glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); + glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); + glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); + glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); + glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); + glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); + glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); + glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); + glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); + glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); + glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); + glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); + glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); + glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); + glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); + glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); + glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); + glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); + glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); + glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); + glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); + glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); + glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); + glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); + glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); + glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); + glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); + glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); + glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); + glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); + glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); + glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); + glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); + glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); + glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); + glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); + glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); + glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); + glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); + glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); + glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); + glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); +} +static void load_GL_VERSION_3_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_1) return; + glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); + glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); + glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); + glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); +} +static void load_GL_VERSION_3_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_2) return; + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); + glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); + glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); + glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); + glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); + glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); + glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); + glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); + glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); + glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); + glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); + glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); +} +static void load_GL_VERSION_3_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_3) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); + glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); + glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); + glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); + glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); + glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); + glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); + glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); + glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); + glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); + glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); + glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); + glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); + glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); + glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); + glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); + glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); + glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); + glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); + glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); + glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); + glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); + glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); + glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); + glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); + glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); + glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); + glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); + glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); + glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); + glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); + glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); + glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); + glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); + glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); + glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); + glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); + glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); + glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); + glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); + glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); + glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); + glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); + glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); + glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); + glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); + glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); + glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); + glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); + glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); + glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); + glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); + glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); + glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); +} +static void load_GL_VERSION_4_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_0) return; + glad_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC)load("glMinSampleShading"); + glad_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC)load("glBlendEquationi"); + glad_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC)load("glBlendEquationSeparatei"); + glad_glBlendFunci = (PFNGLBLENDFUNCIPROC)load("glBlendFunci"); + glad_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC)load("glBlendFuncSeparatei"); + glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load("glDrawArraysIndirect"); + glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load("glDrawElementsIndirect"); + glad_glUniform1d = (PFNGLUNIFORM1DPROC)load("glUniform1d"); + glad_glUniform2d = (PFNGLUNIFORM2DPROC)load("glUniform2d"); + glad_glUniform3d = (PFNGLUNIFORM3DPROC)load("glUniform3d"); + glad_glUniform4d = (PFNGLUNIFORM4DPROC)load("glUniform4d"); + glad_glUniform1dv = (PFNGLUNIFORM1DVPROC)load("glUniform1dv"); + glad_glUniform2dv = (PFNGLUNIFORM2DVPROC)load("glUniform2dv"); + glad_glUniform3dv = (PFNGLUNIFORM3DVPROC)load("glUniform3dv"); + glad_glUniform4dv = (PFNGLUNIFORM4DVPROC)load("glUniform4dv"); + glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)load("glUniformMatrix2dv"); + glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)load("glUniformMatrix3dv"); + glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)load("glUniformMatrix4dv"); + glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)load("glUniformMatrix2x3dv"); + glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)load("glUniformMatrix2x4dv"); + glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)load("glUniformMatrix3x2dv"); + glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)load("glUniformMatrix3x4dv"); + glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)load("glUniformMatrix4x2dv"); + glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)load("glUniformMatrix4x3dv"); + glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC)load("glGetUniformdv"); + glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)load("glGetSubroutineUniformLocation"); + glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)load("glGetSubroutineIndex"); + glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)load("glGetActiveSubroutineUniformiv"); + glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)load("glGetActiveSubroutineUniformName"); + glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)load("glGetActiveSubroutineName"); + glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)load("glUniformSubroutinesuiv"); + glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)load("glGetUniformSubroutineuiv"); + glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)load("glGetProgramStageiv"); + glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)load("glPatchParameteri"); + glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)load("glPatchParameterfv"); + glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback"); + glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks"); + glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks"); + glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback"); + glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback"); + glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback"); + glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)load("glDrawTransformFeedback"); + glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)load("glDrawTransformFeedbackStream"); + glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)load("glBeginQueryIndexed"); + glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)load("glEndQueryIndexed"); + glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)load("glGetQueryIndexediv"); +} +static void load_GL_VERSION_4_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_1) return; + glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler"); + glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary"); + glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat"); + glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); + glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); + glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary"); + glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); + glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load("glUseProgramStages"); + glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load("glActiveShaderProgram"); + glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load("glCreateShaderProgramv"); + glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load("glBindProgramPipeline"); + glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load("glDeleteProgramPipelines"); + glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load("glGenProgramPipelines"); + glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load("glIsProgramPipeline"); + glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load("glGetProgramPipelineiv"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); + glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load("glProgramUniform1i"); + glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load("glProgramUniform1iv"); + glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load("glProgramUniform1f"); + glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load("glProgramUniform1fv"); + glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)load("glProgramUniform1d"); + glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)load("glProgramUniform1dv"); + glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load("glProgramUniform1ui"); + glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load("glProgramUniform1uiv"); + glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load("glProgramUniform2i"); + glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load("glProgramUniform2iv"); + glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load("glProgramUniform2f"); + glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load("glProgramUniform2fv"); + glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)load("glProgramUniform2d"); + glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)load("glProgramUniform2dv"); + glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load("glProgramUniform2ui"); + glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load("glProgramUniform2uiv"); + glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load("glProgramUniform3i"); + glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load("glProgramUniform3iv"); + glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load("glProgramUniform3f"); + glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load("glProgramUniform3fv"); + glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)load("glProgramUniform3d"); + glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)load("glProgramUniform3dv"); + glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load("glProgramUniform3ui"); + glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load("glProgramUniform3uiv"); + glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load("glProgramUniform4i"); + glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load("glProgramUniform4iv"); + glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load("glProgramUniform4f"); + glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load("glProgramUniform4fv"); + glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)load("glProgramUniform4d"); + glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)load("glProgramUniform4dv"); + glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load("glProgramUniform4ui"); + glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load("glProgramUniform4uiv"); + glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load("glProgramUniformMatrix2fv"); + glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load("glProgramUniformMatrix3fv"); + glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load("glProgramUniformMatrix4fv"); + glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)load("glProgramUniformMatrix2dv"); + glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)load("glProgramUniformMatrix3dv"); + glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)load("glProgramUniformMatrix4dv"); + glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load("glProgramUniformMatrix2x3fv"); + glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load("glProgramUniformMatrix3x2fv"); + glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load("glProgramUniformMatrix2x4fv"); + glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load("glProgramUniformMatrix4x2fv"); + glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load("glProgramUniformMatrix3x4fv"); + glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load("glProgramUniformMatrix4x3fv"); + glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)load("glProgramUniformMatrix2x3dv"); + glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)load("glProgramUniformMatrix3x2dv"); + glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)load("glProgramUniformMatrix2x4dv"); + glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)load("glProgramUniformMatrix4x2dv"); + glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)load("glProgramUniformMatrix3x4dv"); + glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)load("glProgramUniformMatrix4x3dv"); + glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load("glValidateProgramPipeline"); + glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load("glGetProgramPipelineInfoLog"); + glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)load("glVertexAttribL1d"); + glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)load("glVertexAttribL2d"); + glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)load("glVertexAttribL3d"); + glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)load("glVertexAttribL4d"); + glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)load("glVertexAttribL1dv"); + glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)load("glVertexAttribL2dv"); + glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)load("glVertexAttribL3dv"); + glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)load("glVertexAttribL4dv"); + glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)load("glVertexAttribLPointer"); + glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)load("glGetVertexAttribLdv"); + glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)load("glViewportArrayv"); + glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)load("glViewportIndexedf"); + glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)load("glViewportIndexedfv"); + glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC)load("glScissorArrayv"); + glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)load("glScissorIndexed"); + glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)load("glScissorIndexedv"); + glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)load("glDepthRangeArrayv"); + glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)load("glDepthRangeIndexed"); + glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC)load("glGetFloati_v"); + glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)load("glGetDoublei_v"); +} +static void load_GL_VERSION_4_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_2) return; + glad_glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)load("glDrawArraysInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)load("glDrawElementsInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)load("glDrawElementsInstancedBaseVertexBaseInstance"); + glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load("glGetInternalformativ"); + glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)load("glGetActiveAtomicCounterBufferiv"); + glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)load("glBindImageTexture"); + glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)load("glMemoryBarrier"); + glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)load("glTexStorage1D"); + glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load("glTexStorage2D"); + glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load("glTexStorage3D"); + glad_glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)load("glDrawTransformFeedbackInstanced"); + glad_glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)load("glDrawTransformFeedbackStreamInstanced"); +} +static void load_GL_VERSION_4_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_3) return; + glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC)load("glClearBufferData"); + glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC)load("glClearBufferSubData"); + glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)load("glDispatchCompute"); + glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)load("glDispatchComputeIndirect"); + glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC)load("glCopyImageSubData"); + glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)load("glFramebufferParameteri"); + glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)load("glGetFramebufferParameteriv"); + glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC)load("glGetInternalformati64v"); + glad_glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC)load("glInvalidateTexSubImage"); + glad_glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC)load("glInvalidateTexImage"); + glad_glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC)load("glInvalidateBufferSubData"); + glad_glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC)load("glInvalidateBufferData"); + glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)load("glInvalidateFramebuffer"); + glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)load("glInvalidateSubFramebuffer"); + glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC)load("glMultiDrawArraysIndirect"); + glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC)load("glMultiDrawElementsIndirect"); + glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)load("glGetProgramInterfaceiv"); + glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)load("glGetProgramResourceIndex"); + glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)load("glGetProgramResourceName"); + glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)load("glGetProgramResourceiv"); + glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)load("glGetProgramResourceLocation"); + glad_glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)load("glGetProgramResourceLocationIndex"); + glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC)load("glShaderStorageBlockBinding"); + glad_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC)load("glTexBufferRange"); + glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)load("glTexStorage2DMultisample"); + glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)load("glTexStorage3DMultisample"); + glad_glTextureView = (PFNGLTEXTUREVIEWPROC)load("glTextureView"); + glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load("glBindVertexBuffer"); + glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load("glVertexAttribFormat"); + glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load("glVertexAttribIFormat"); + glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)load("glVertexAttribLFormat"); + glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load("glVertexAttribBinding"); + glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load("glVertexBindingDivisor"); + glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)load("glDebugMessageControl"); + glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)load("glDebugMessageInsert"); + glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)load("glDebugMessageCallback"); + glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)load("glGetDebugMessageLog"); + glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)load("glPushDebugGroup"); + glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)load("glPopDebugGroup"); + glad_glObjectLabel = (PFNGLOBJECTLABELPROC)load("glObjectLabel"); + glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)load("glGetObjectLabel"); + glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)load("glObjectPtrLabel"); + glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); +} +static void load_GL_VERSION_4_4(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_4) return; + glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)load("glBufferStorage"); + glad_glClearTexImage = (PFNGLCLEARTEXIMAGEPROC)load("glClearTexImage"); + glad_glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC)load("glClearTexSubImage"); + glad_glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC)load("glBindBuffersBase"); + glad_glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC)load("glBindBuffersRange"); + glad_glBindTextures = (PFNGLBINDTEXTURESPROC)load("glBindTextures"); + glad_glBindSamplers = (PFNGLBINDSAMPLERSPROC)load("glBindSamplers"); + glad_glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC)load("glBindImageTextures"); + glad_glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC)load("glBindVertexBuffers"); +} +static void load_GL_VERSION_4_5(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_5) return; + glad_glClipControl = (PFNGLCLIPCONTROLPROC)load("glClipControl"); + glad_glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC)load("glCreateTransformFeedbacks"); + glad_glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)load("glTransformFeedbackBufferBase"); + glad_glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)load("glTransformFeedbackBufferRange"); + glad_glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC)load("glGetTransformFeedbackiv"); + glad_glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC)load("glGetTransformFeedbacki_v"); + glad_glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC)load("glGetTransformFeedbacki64_v"); + glad_glCreateBuffers = (PFNGLCREATEBUFFERSPROC)load("glCreateBuffers"); + glad_glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC)load("glNamedBufferStorage"); + glad_glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC)load("glNamedBufferData"); + glad_glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC)load("glNamedBufferSubData"); + glad_glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC)load("glCopyNamedBufferSubData"); + glad_glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC)load("glClearNamedBufferData"); + glad_glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC)load("glClearNamedBufferSubData"); + glad_glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC)load("glMapNamedBuffer"); + glad_glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC)load("glMapNamedBufferRange"); + glad_glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC)load("glUnmapNamedBuffer"); + glad_glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)load("glFlushMappedNamedBufferRange"); + glad_glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC)load("glGetNamedBufferParameteriv"); + glad_glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)load("glGetNamedBufferParameteri64v"); + glad_glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC)load("glGetNamedBufferPointerv"); + glad_glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC)load("glGetNamedBufferSubData"); + glad_glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC)load("glCreateFramebuffers"); + glad_glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)load("glNamedFramebufferRenderbuffer"); + glad_glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)load("glNamedFramebufferParameteri"); + glad_glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)load("glNamedFramebufferTexture"); + glad_glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)load("glNamedFramebufferTextureLayer"); + glad_glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)load("glNamedFramebufferDrawBuffer"); + glad_glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)load("glNamedFramebufferDrawBuffers"); + glad_glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)load("glNamedFramebufferReadBuffer"); + glad_glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)load("glInvalidateNamedFramebufferData"); + glad_glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)load("glInvalidateNamedFramebufferSubData"); + glad_glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)load("glClearNamedFramebufferiv"); + glad_glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)load("glClearNamedFramebufferuiv"); + glad_glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)load("glClearNamedFramebufferfv"); + glad_glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)load("glClearNamedFramebufferfi"); + glad_glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC)load("glBlitNamedFramebuffer"); + glad_glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)load("glCheckNamedFramebufferStatus"); + glad_glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)load("glGetNamedFramebufferParameteriv"); + glad_glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetNamedFramebufferAttachmentParameteriv"); + glad_glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC)load("glCreateRenderbuffers"); + glad_glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC)load("glNamedRenderbufferStorage"); + glad_glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glNamedRenderbufferStorageMultisample"); + glad_glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)load("glGetNamedRenderbufferParameteriv"); + glad_glCreateTextures = (PFNGLCREATETEXTURESPROC)load("glCreateTextures"); + glad_glTextureBuffer = (PFNGLTEXTUREBUFFERPROC)load("glTextureBuffer"); + glad_glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC)load("glTextureBufferRange"); + glad_glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC)load("glTextureStorage1D"); + glad_glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC)load("glTextureStorage2D"); + glad_glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC)load("glTextureStorage3D"); + glad_glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)load("glTextureStorage2DMultisample"); + glad_glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)load("glTextureStorage3DMultisample"); + glad_glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC)load("glTextureSubImage1D"); + glad_glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC)load("glTextureSubImage2D"); + glad_glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC)load("glTextureSubImage3D"); + glad_glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)load("glCompressedTextureSubImage1D"); + glad_glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)load("glCompressedTextureSubImage2D"); + glad_glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)load("glCompressedTextureSubImage3D"); + glad_glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC)load("glCopyTextureSubImage1D"); + glad_glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC)load("glCopyTextureSubImage2D"); + glad_glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC)load("glCopyTextureSubImage3D"); + glad_glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC)load("glTextureParameterf"); + glad_glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC)load("glTextureParameterfv"); + glad_glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC)load("glTextureParameteri"); + glad_glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC)load("glTextureParameterIiv"); + glad_glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC)load("glTextureParameterIuiv"); + glad_glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC)load("glTextureParameteriv"); + glad_glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC)load("glGenerateTextureMipmap"); + glad_glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC)load("glBindTextureUnit"); + glad_glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC)load("glGetTextureImage"); + glad_glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)load("glGetCompressedTextureImage"); + glad_glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC)load("glGetTextureLevelParameterfv"); + glad_glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC)load("glGetTextureLevelParameteriv"); + glad_glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC)load("glGetTextureParameterfv"); + glad_glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC)load("glGetTextureParameterIiv"); + glad_glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC)load("glGetTextureParameterIuiv"); + glad_glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC)load("glGetTextureParameteriv"); + glad_glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC)load("glCreateVertexArrays"); + glad_glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC)load("glDisableVertexArrayAttrib"); + glad_glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC)load("glEnableVertexArrayAttrib"); + glad_glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC)load("glVertexArrayElementBuffer"); + glad_glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC)load("glVertexArrayVertexBuffer"); + glad_glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC)load("glVertexArrayVertexBuffers"); + glad_glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC)load("glVertexArrayAttribBinding"); + glad_glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC)load("glVertexArrayAttribFormat"); + glad_glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC)load("glVertexArrayAttribIFormat"); + glad_glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC)load("glVertexArrayAttribLFormat"); + glad_glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC)load("glVertexArrayBindingDivisor"); + glad_glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC)load("glGetVertexArrayiv"); + glad_glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC)load("glGetVertexArrayIndexediv"); + glad_glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC)load("glGetVertexArrayIndexed64iv"); + glad_glCreateSamplers = (PFNGLCREATESAMPLERSPROC)load("glCreateSamplers"); + glad_glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC)load("glCreateProgramPipelines"); + glad_glCreateQueries = (PFNGLCREATEQUERIESPROC)load("glCreateQueries"); + glad_glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC)load("glGetQueryBufferObjecti64v"); + glad_glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC)load("glGetQueryBufferObjectiv"); + glad_glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC)load("glGetQueryBufferObjectui64v"); + glad_glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC)load("glGetQueryBufferObjectuiv"); + glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)load("glMemoryBarrierByRegion"); + glad_glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC)load("glGetTextureSubImage"); + glad_glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)load("glGetCompressedTextureSubImage"); + glad_glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC)load("glGetGraphicsResetStatus"); + glad_glGetnCompressedTexImage = (PFNGLGETNCOMPRESSEDTEXIMAGEPROC)load("glGetnCompressedTexImage"); + glad_glGetnTexImage = (PFNGLGETNTEXIMAGEPROC)load("glGetnTexImage"); + glad_glGetnUniformdv = (PFNGLGETNUNIFORMDVPROC)load("glGetnUniformdv"); + glad_glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC)load("glGetnUniformfv"); + glad_glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC)load("glGetnUniformiv"); + glad_glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC)load("glGetnUniformuiv"); + glad_glReadnPixels = (PFNGLREADNPIXELSPROC)load("glReadnPixels"); + glad_glGetnMapdv = (PFNGLGETNMAPDVPROC)load("glGetnMapdv"); + glad_glGetnMapfv = (PFNGLGETNMAPFVPROC)load("glGetnMapfv"); + glad_glGetnMapiv = (PFNGLGETNMAPIVPROC)load("glGetnMapiv"); + glad_glGetnPixelMapfv = (PFNGLGETNPIXELMAPFVPROC)load("glGetnPixelMapfv"); + glad_glGetnPixelMapuiv = (PFNGLGETNPIXELMAPUIVPROC)load("glGetnPixelMapuiv"); + glad_glGetnPixelMapusv = (PFNGLGETNPIXELMAPUSVPROC)load("glGetnPixelMapusv"); + glad_glGetnPolygonStipple = (PFNGLGETNPOLYGONSTIPPLEPROC)load("glGetnPolygonStipple"); + glad_glGetnColorTable = (PFNGLGETNCOLORTABLEPROC)load("glGetnColorTable"); + glad_glGetnConvolutionFilter = (PFNGLGETNCONVOLUTIONFILTERPROC)load("glGetnConvolutionFilter"); + glad_glGetnSeparableFilter = (PFNGLGETNSEPARABLEFILTERPROC)load("glGetnSeparableFilter"); + glad_glGetnHistogram = (PFNGLGETNHISTOGRAMPROC)load("glGetnHistogram"); + glad_glGetnMinmax = (PFNGLGETNMINMAXPROC)load("glGetnMinmax"); + glad_glTextureBarrier = (PFNGLTEXTUREBARRIERPROC)load("glTextureBarrier"); +} +static void load_GL_VERSION_4_6(GLADloadproc load) { + if(!GLAD_GL_VERSION_4_6) return; + glad_glSpecializeShader = (PFNGLSPECIALIZESHADERPROC)load("glSpecializeShader"); + glad_glMultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)load("glMultiDrawArraysIndirectCount"); + glad_glMultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)load("glMultiDrawElementsIndirectCount"); + glad_glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC)load("glPolygonOffsetClamp"); +} +static int find_extensionsGL(void) { + if (!get_exts()) return 0; + (void)&has_ext; + free_exts(); + return 1; +} + +static void find_coreGL(void) { + + /* Thank you @elmindreda + * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 + * https://github.com/glfw/glfw/blob/master/src/context.c#L36 + */ + int i, major, minor; + + const char* version; + const char* prefixes[] = { + "OpenGL ES-CM ", + "OpenGL ES-CL ", + "OpenGL ES ", + NULL + }; + + version = (const char*) glGetString(GL_VERSION); + if (!version) return; + + for (i = 0; prefixes[i]; i++) { + const size_t length = strlen(prefixes[i]); + if (strncmp(version, prefixes[i], length) == 0) { + version += length; + break; + } + } + +/* PR #18 */ +#ifdef _MSC_VER + sscanf_s(version, "%d.%d", &major, &minor); +#else + sscanf(version, "%d.%d", &major, &minor); +#endif + + GLVersion.major = major; GLVersion.minor = minor; + max_loaded_major = major; max_loaded_minor = minor; + GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; + GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; + GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; + GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; + GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; + GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; + GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; + GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; + GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; + GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; + GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; + GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; + GLAD_GL_VERSION_4_0 = (major == 4 && minor >= 0) || major > 4; + GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; + GLAD_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4; + GLAD_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4; + GLAD_GL_VERSION_4_4 = (major == 4 && minor >= 4) || major > 4; + GLAD_GL_VERSION_4_5 = (major == 4 && minor >= 5) || major > 4; + GLAD_GL_VERSION_4_6 = (major == 4 && minor >= 6) || major > 4; + if (GLVersion.major > 4 || (GLVersion.major >= 4 && GLVersion.minor >= 6)) { + max_loaded_major = 4; + max_loaded_minor = 6; + } +} + +int gladLoadGLLoader(GLADloadproc load) { + GLVersion.major = 0; GLVersion.minor = 0; + glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + if(glGetString == NULL) return 0; + if(glGetString(GL_VERSION) == NULL) return 0; + find_coreGL(); + load_GL_VERSION_1_0(load); + load_GL_VERSION_1_1(load); + load_GL_VERSION_1_2(load); + load_GL_VERSION_1_3(load); + load_GL_VERSION_1_4(load); + load_GL_VERSION_1_5(load); + load_GL_VERSION_2_0(load); + load_GL_VERSION_2_1(load); + load_GL_VERSION_3_0(load); + load_GL_VERSION_3_1(load); + load_GL_VERSION_3_2(load); + load_GL_VERSION_3_3(load); + load_GL_VERSION_4_0(load); + load_GL_VERSION_4_1(load); + load_GL_VERSION_4_2(load); + load_GL_VERSION_4_3(load); + load_GL_VERSION_4_4(load); + load_GL_VERSION_4_5(load); + load_GL_VERSION_4_6(load); + + if (!find_extensionsGL()) return 0; + return GLVersion.major != 0 || GLVersion.minor != 0; +} + diff --git a/mlx/lib/png/lodepng.c b/mlx/lib/png/lodepng.c new file mode 100644 index 0000000..d023076 --- /dev/null +++ b/mlx/lib/png/lodepng.c @@ -0,0 +1,6658 @@ +/* +LodePNG version 20220717 + +Copyright (c) 2005-2022 Lode Vandevenne + +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. +*/ + +/* +The manual and changelog are in the header file "lodepng.h" +Rename this file to lodepng.cpp to use it for C++, or to lodepng.c to use it for C. +*/ + +#include "lodepng/lodepng.h" + +#ifdef LODEPNG_COMPILE_DISK +#include /* LONG_MAX */ +#include /* file handling */ +#endif /* LODEPNG_COMPILE_DISK */ + +#ifdef LODEPNG_COMPILE_ALLOCATORS +#include /* allocations */ +#endif /* LODEPNG_COMPILE_ALLOCATORS */ + +#if defined(_MSC_VER) && (_MSC_VER >= 1310) /*Visual Studio: A few warning types are not desired here.*/ +#pragma warning( disable : 4244 ) /*implicit conversions: not warned by gcc -Wall -Wextra and requires too much casts*/ +#pragma warning( disable : 4996 ) /*VS does not like fopen, but fopen_s is not standard C so unusable here*/ +#endif /*_MSC_VER */ + +const char* LODEPNG_VERSION_STRING = "20220717"; + +/* +This source file is divided into the following large parts. The code sections +with the "LODEPNG_COMPILE_" #defines divide this up further in an intermixed way. +-Tools for C and common code for PNG and Zlib +-C Code for Zlib (huffman, deflate, ...) +-C Code for PNG (file format chunks, adam7, PNG filters, color conversions, ...) +-The C++ wrapper around all of the above +*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // Tools for C, and common code for PNG and Zlib. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*The malloc, realloc and free functions defined here with "lodepng_" in front +of the name, so that you can easily change them to others related to your +platform if needed. Everything else in the code calls these. Pass +-DLODEPNG_NO_COMPILE_ALLOCATORS to the compiler, or comment out +#define LODEPNG_COMPILE_ALLOCATORS in the header, to disable the ones here and +define them in your own project's source files without needing to change +lodepng source code. Don't forget to remove "static" if you copypaste them +from here.*/ + +#ifdef LODEPNG_COMPILE_ALLOCATORS +static void* lodepng_malloc(size_t size) { +#ifdef LODEPNG_MAX_ALLOC + if(size > LODEPNG_MAX_ALLOC) return 0; +#endif + return malloc(size); +} + +/* NOTE: when realloc returns NULL, it leaves the original memory untouched */ +static void* lodepng_realloc(void* ptr, size_t new_size) { +#ifdef LODEPNG_MAX_ALLOC + if(new_size > LODEPNG_MAX_ALLOC) return 0; +#endif + return realloc(ptr, new_size); +} + +static void lodepng_free(void* ptr) { + free(ptr); +} +#else /*LODEPNG_COMPILE_ALLOCATORS*/ +/* TODO: support giving additional void* payload to the custom allocators */ +void* lodepng_malloc(size_t size); +void* lodepng_realloc(void* ptr, size_t new_size); +void lodepng_free(void* ptr); +#endif /*LODEPNG_COMPILE_ALLOCATORS*/ + +/* convince the compiler to inline a function, for use when this measurably improves performance */ +/* inline is not available in C90, but use it when supported by the compiler */ +#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || (defined(__cplusplus) && (__cplusplus >= 199711L)) +#define LODEPNG_INLINE inline +#else +#define LODEPNG_INLINE /* not available */ +#endif + +/* restrict is not available in C90, but use it when supported by the compiler */ +#if (defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))) ||\ + (defined(_MSC_VER) && (_MSC_VER >= 1400)) || \ + (defined(__WATCOMC__) && (__WATCOMC__ >= 1250) && !defined(__cplusplus)) +#define LODEPNG_RESTRICT __restrict +#else +#define LODEPNG_RESTRICT /* not available */ +#endif + +/* Replacements for C library functions such as memcpy and strlen, to support platforms +where a full C library is not available. The compiler can recognize them and compile +to something as fast. */ + +static void lodepng_memcpy(void* LODEPNG_RESTRICT dst, + const void* LODEPNG_RESTRICT src, size_t size) { + size_t i; + for(i = 0; i < size; i++) ((char*)dst)[i] = ((const char*)src)[i]; +} + +static void lodepng_memset(void* LODEPNG_RESTRICT dst, + int value, size_t num) { + size_t i; + for(i = 0; i < num; i++) ((char*)dst)[i] = (char)value; +} + +/* does not check memory out of bounds, do not use on untrusted data */ +static size_t lodepng_strlen(const char* a) { + const char* orig = a; + /* avoid warning about unused function in case of disabled COMPILE... macros */ + (void)(&lodepng_strlen); + while(*a) a++; + return (size_t)(a - orig); +} + +#define LODEPNG_MAX(a, b) (((a) > (b)) ? (a) : (b)) +#define LODEPNG_MIN(a, b) (((a) < (b)) ? (a) : (b)) +#define LODEPNG_ABS(x) ((x) < 0 ? -(x) : (x)) + +#if defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_DECODER) +/* Safely check if adding two integers will overflow (no undefined +behavior, compiler removing the code, etc...) and output result. */ +static int lodepng_addofl(size_t a, size_t b, size_t* result) { + *result = a + b; /* Unsigned addition is well defined and safe in C90 */ + return *result < a; +} +#endif /*defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_DECODER)*/ + +#ifdef LODEPNG_COMPILE_DECODER +/* Safely check if multiplying two integers will overflow (no undefined +behavior, compiler removing the code, etc...) and output result. */ +static int lodepng_mulofl(size_t a, size_t b, size_t* result) { + *result = a * b; /* Unsigned multiplication is well defined and safe in C90 */ + return (a != 0 && *result / a != b); +} + +#ifdef LODEPNG_COMPILE_ZLIB +/* Safely check if a + b > c, even if overflow could happen. */ +static int lodepng_gtofl(size_t a, size_t b, size_t c) { + size_t d; + if(lodepng_addofl(a, b, &d)) return 1; + return d > c; +} +#endif /*LODEPNG_COMPILE_ZLIB*/ +#endif /*LODEPNG_COMPILE_DECODER*/ + + +/* +Often in case of an error a value is assigned to a variable and then it breaks +out of a loop (to go to the cleanup phase of a function). This macro does that. +It makes the error handling code shorter and more readable. + +Example: if(!uivector_resize(&lz77_encoded, datasize)) ERROR_BREAK(83); +*/ +#define CERROR_BREAK(errorvar, code){\ + errorvar = code;\ + break;\ +} + +/*version of CERROR_BREAK that assumes the common case where the error variable is named "error"*/ +#define ERROR_BREAK(code) CERROR_BREAK(error, code) + +/*Set error var to the error code, and return it.*/ +#define CERROR_RETURN_ERROR(errorvar, code){\ + errorvar = code;\ + return code;\ +} + +/*Try the code, if it returns error, also return the error.*/ +#define CERROR_TRY_RETURN(call){\ + unsigned error = call;\ + if(error) return error;\ +} + +/*Set error var to the error code, and return from the void function.*/ +#define CERROR_RETURN(errorvar, code){\ + errorvar = code;\ + return;\ +} + +/* +About uivector, ucvector and string: +-All of them wrap dynamic arrays or text strings in a similar way. +-LodePNG was originally written in C++. The vectors replace the std::vectors that were used in the C++ version. +-The string tools are made to avoid problems with compilers that declare things like strncat as deprecated. +-They're not used in the interface, only internally in this file as static functions. +-As with many other structs in this file, the init and cleanup functions serve as ctor and dtor. +*/ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_ENCODER +/*dynamic vector of unsigned ints*/ +typedef struct uivector { + unsigned* data; + size_t size; /*size in number of unsigned longs*/ + size_t allocsize; /*allocated size in bytes*/ +} uivector; + +static void uivector_cleanup(void* p) { + ((uivector*)p)->size = ((uivector*)p)->allocsize = 0; + lodepng_free(((uivector*)p)->data); + ((uivector*)p)->data = NULL; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_resize(uivector* p, size_t size) { + size_t allocsize = size * sizeof(unsigned); + if(allocsize > p->allocsize) { + size_t newsize = allocsize + (p->allocsize >> 1u); + void* data = lodepng_realloc(p->data, newsize); + if(data) { + p->allocsize = newsize; + p->data = (unsigned*)data; + } + else return 0; /*error: not enough memory*/ + } + p->size = size; + return 1; /*success*/ +} + +static void uivector_init(uivector* p) { + p->data = NULL; + p->size = p->allocsize = 0; +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned uivector_push_back(uivector* p, unsigned c) { + if(!uivector_resize(p, p->size + 1)) return 0; + p->data[p->size - 1] = c; + return 1; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_ZLIB*/ + +/* /////////////////////////////////////////////////////////////////////////// */ + +/*dynamic vector of unsigned chars*/ +typedef struct ucvector { + unsigned char* data; + size_t size; /*used size*/ + size_t allocsize; /*allocated size*/ +} ucvector; + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_reserve(ucvector* p, size_t size) { + if(size > p->allocsize) { + size_t newsize = size + (p->allocsize >> 1u); + void* data = lodepng_realloc(p->data, newsize); + if(data) { + p->allocsize = newsize; + p->data = (unsigned char*)data; + } + else return 0; /*error: not enough memory*/ + } + return 1; /*success*/ +} + +/*returns 1 if success, 0 if failure ==> nothing done*/ +static unsigned ucvector_resize(ucvector* p, size_t size) { + p->size = size; + return ucvector_reserve(p, size); +} + +static ucvector ucvector_init(unsigned char* buffer, size_t size) { + ucvector v; + v.data = buffer; + v.allocsize = v.size = size; + return v; +} + +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_PNG +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + +/*free string pointer and set it to NULL*/ +static void string_cleanup(char** out) { + lodepng_free(*out); + *out = NULL; +} + +/*also appends null termination character*/ +static char* alloc_string_sized(const char* in, size_t insize) { + char* out = (char*)lodepng_malloc(insize + 1); + if(out) { + lodepng_memcpy(out, in, insize); + out[insize] = 0; + } + return out; +} + +/* dynamically allocates a new string with a copy of the null terminated input text */ +static char* alloc_string(const char* in) { + return alloc_string_sized(in, lodepng_strlen(in)); +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +/* ////////////////////////////////////////////////////////////////////////// */ + +#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_PNG) +static unsigned lodepng_read32bitInt(const unsigned char* buffer) { + return (((unsigned)buffer[0] << 24u) | ((unsigned)buffer[1] << 16u) | + ((unsigned)buffer[2] << 8u) | (unsigned)buffer[3]); +} +#endif /*defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_PNG)*/ + +#if defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER) +/*buffer must have at least 4 allocated bytes available*/ +static void lodepng_set32bitInt(unsigned char* buffer, unsigned value) { + buffer[0] = (unsigned char)((value >> 24) & 0xff); + buffer[1] = (unsigned char)((value >> 16) & 0xff); + buffer[2] = (unsigned char)((value >> 8) & 0xff); + buffer[3] = (unsigned char)((value ) & 0xff); +} +#endif /*defined(LODEPNG_COMPILE_PNG) || defined(LODEPNG_COMPILE_ENCODER)*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / File IO / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_DISK + +/* returns negative value on error. This should be pure C compatible, so no fstat. */ +static long lodepng_filesize(const char* filename) { + FILE* file; + long size; + file = fopen(filename, "rb"); + if(!file) return -1; + + if(fseek(file, 0, SEEK_END) != 0) { + fclose(file); + return -1; + } + + size = ftell(file); + /* It may give LONG_MAX as directory size, this is invalid for us. */ + if(size == LONG_MAX) size = -1; + + fclose(file); + return size; +} + +/* load file into buffer that already has the correct allocated size. Returns error code.*/ +static unsigned lodepng_buffer_file(unsigned char* out, size_t size, const char* filename) { + FILE* file; + size_t readsize; + file = fopen(filename, "rb"); + if(!file) return 78; + + readsize = fread(out, 1, size, file); + fclose(file); + + if(readsize != size) return 78; + return 0; +} + +unsigned lodepng_load_file(unsigned char** out, size_t* outsize, const char* filename) { + long size = lodepng_filesize(filename); + if(size < 0) return 78; + *outsize = (size_t)size; + + *out = (unsigned char*)lodepng_malloc((size_t)size); + if(!(*out) && size > 0) return 83; /*the above malloc failed*/ + + return lodepng_buffer_file(*out, (size_t)size, filename); +} + +/*write given buffer to the file, overwriting the file, it doesn't append to it.*/ +unsigned lodepng_save_file(const unsigned char* buffer, size_t buffersize, const char* filename) { + FILE* file; + file = fopen(filename, "wb" ); + if(!file) return 79; + fwrite(buffer, 1, buffersize, file); + fclose(file); + return 0; +} + +#endif /*LODEPNG_COMPILE_DISK*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // End of common code and tools. Begin of Zlib related code. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_ENCODER + +typedef struct { + ucvector* data; + unsigned char bp; /*ok to overflow, indicates bit pos inside byte*/ +} LodePNGBitWriter; + +static void LodePNGBitWriter_init(LodePNGBitWriter* writer, ucvector* data) { + writer->data = data; + writer->bp = 0; +} + +/*TODO: this ignores potential out of memory errors*/ +#define WRITEBIT(writer, bit){\ + /* append new byte */\ + if(((writer->bp) & 7u) == 0) {\ + if(!ucvector_resize(writer->data, writer->data->size + 1)) return;\ + writer->data->data[writer->data->size - 1] = 0;\ + }\ + (writer->data->data[writer->data->size - 1]) |= (bit << ((writer->bp) & 7u));\ + ++writer->bp;\ +} + +/* LSB of value is written first, and LSB of bytes is used first */ +static void writeBits(LodePNGBitWriter* writer, unsigned value, size_t nbits) { + if(nbits == 1) { /* compiler should statically compile this case if nbits == 1 */ + WRITEBIT(writer, value); + } else { + /* TODO: increase output size only once here rather than in each WRITEBIT */ + size_t i; + for(i = 0; i != nbits; ++i) { + WRITEBIT(writer, (unsigned char)((value >> i) & 1)); + } + } +} + +/* This one is to use for adding huffman symbol, the value bits are written MSB first */ +static void writeBitsReversed(LodePNGBitWriter* writer, unsigned value, size_t nbits) { + size_t i; + for(i = 0; i != nbits; ++i) { + /* TODO: increase output size only once here rather than in each WRITEBIT */ + WRITEBIT(writer, (unsigned char)((value >> (nbits - 1u - i)) & 1u)); + } +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +typedef struct { + const unsigned char* data; + size_t size; /*size of data in bytes*/ + size_t bitsize; /*size of data in bits, end of valid bp values, should be 8*size*/ + size_t bp; + unsigned buffer; /*buffer for reading bits. NOTE: 'unsigned' must support at least 32 bits*/ +} LodePNGBitReader; + +/* data size argument is in bytes. Returns error if size too large causing overflow */ +static unsigned LodePNGBitReader_init(LodePNGBitReader* reader, const unsigned char* data, size_t size) { + size_t temp; + reader->data = data; + reader->size = size; + /* size in bits, return error if overflow (if size_t is 32 bit this supports up to 500MB) */ + if(lodepng_mulofl(size, 8u, &reader->bitsize)) return 105; + /*ensure incremented bp can be compared to bitsize without overflow even when it would be incremented 32 too much and + trying to ensure 32 more bits*/ + if(lodepng_addofl(reader->bitsize, 64u, &temp)) return 105; + reader->bp = 0; + reader->buffer = 0; + return 0; /*ok*/ +} + +/* +ensureBits functions: +Ensures the reader can at least read nbits bits in one or more readBits calls, +safely even if not enough bits are available. +The nbits parameter is unused but is given for documentation purposes, error +checking for amount of bits must be done beforehand. +*/ + +/*See ensureBits documentation above. This one ensures up to 9 bits */ +static LODEPNG_INLINE void ensureBits9(LodePNGBitReader* reader, size_t nbits) { + size_t start = reader->bp >> 3u; + size_t size = reader->size; + if(start + 1u < size) { + reader->buffer = (unsigned)reader->data[start + 0] | ((unsigned)reader->data[start + 1] << 8u); + reader->buffer >>= (reader->bp & 7u); + } else { + reader->buffer = 0; + if(start + 0u < size) reader->buffer = reader->data[start + 0]; + reader->buffer >>= (reader->bp & 7u); + } + (void)nbits; +} + +/*See ensureBits documentation above. This one ensures up to 17 bits */ +static LODEPNG_INLINE void ensureBits17(LodePNGBitReader* reader, size_t nbits) { + size_t start = reader->bp >> 3u; + size_t size = reader->size; + if(start + 2u < size) { + reader->buffer = (unsigned)reader->data[start + 0] | ((unsigned)reader->data[start + 1] << 8u) | + ((unsigned)reader->data[start + 2] << 16u); + reader->buffer >>= (reader->bp & 7u); + } else { + reader->buffer = 0; + if(start + 0u < size) reader->buffer |= reader->data[start + 0]; + if(start + 1u < size) reader->buffer |= ((unsigned)reader->data[start + 1] << 8u); + reader->buffer >>= (reader->bp & 7u); + } + (void)nbits; +} + +/*See ensureBits documentation above. This one ensures up to 25 bits */ +static LODEPNG_INLINE void ensureBits25(LodePNGBitReader* reader, size_t nbits) { + size_t start = reader->bp >> 3u; + size_t size = reader->size; + if(start + 3u < size) { + reader->buffer = (unsigned)reader->data[start + 0] | ((unsigned)reader->data[start + 1] << 8u) | + ((unsigned)reader->data[start + 2] << 16u) | ((unsigned)reader->data[start + 3] << 24u); + reader->buffer >>= (reader->bp & 7u); + } else { + reader->buffer = 0; + if(start + 0u < size) reader->buffer |= reader->data[start + 0]; + if(start + 1u < size) reader->buffer |= ((unsigned)reader->data[start + 1] << 8u); + if(start + 2u < size) reader->buffer |= ((unsigned)reader->data[start + 2] << 16u); + reader->buffer >>= (reader->bp & 7u); + } + (void)nbits; +} + +/*See ensureBits documentation above. This one ensures up to 32 bits */ +static LODEPNG_INLINE void ensureBits32(LodePNGBitReader* reader, size_t nbits) { + size_t start = reader->bp >> 3u; + size_t size = reader->size; + if(start + 4u < size) { + reader->buffer = (unsigned)reader->data[start + 0] | ((unsigned)reader->data[start + 1] << 8u) | + ((unsigned)reader->data[start + 2] << 16u) | ((unsigned)reader->data[start + 3] << 24u); + reader->buffer >>= (reader->bp & 7u); + reader->buffer |= (((unsigned)reader->data[start + 4] << 24u) << (8u - (reader->bp & 7u))); + } else { + reader->buffer = 0; + if(start + 0u < size) reader->buffer |= reader->data[start + 0]; + if(start + 1u < size) reader->buffer |= ((unsigned)reader->data[start + 1] << 8u); + if(start + 2u < size) reader->buffer |= ((unsigned)reader->data[start + 2] << 16u); + if(start + 3u < size) reader->buffer |= ((unsigned)reader->data[start + 3] << 24u); + reader->buffer >>= (reader->bp & 7u); + } + (void)nbits; +} + +/* Get bits without advancing the bit pointer. Must have enough bits available with ensureBits. Max nbits is 31. */ +static LODEPNG_INLINE unsigned peekBits(LodePNGBitReader* reader, size_t nbits) { + /* The shift allows nbits to be only up to 31. */ + return reader->buffer & ((1u << nbits) - 1u); +} + +/* Must have enough bits available with ensureBits */ +static LODEPNG_INLINE void advanceBits(LodePNGBitReader* reader, size_t nbits) { + reader->buffer >>= nbits; + reader->bp += nbits; +} + +/* Must have enough bits available with ensureBits */ +static LODEPNG_INLINE unsigned readBits(LodePNGBitReader* reader, size_t nbits) { + unsigned result = peekBits(reader, nbits); + advanceBits(reader, nbits); + return result; +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +static unsigned reverseBits(unsigned bits, unsigned num) { + /*TODO: implement faster lookup table based version when needed*/ + unsigned i, result = 0; + for(i = 0; i < num; i++) result |= ((bits >> (num - i - 1u)) & 1u) << i; + return result; +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Deflate - Huffman / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#define FIRST_LENGTH_CODE_INDEX 257 +#define LAST_LENGTH_CODE_INDEX 285 +/*256 literals, the end code, some length codes, and 2 unused codes*/ +#define NUM_DEFLATE_CODE_SYMBOLS 288 +/*the distance codes have their own symbols, 30 used, 2 unused*/ +#define NUM_DISTANCE_SYMBOLS 32 +/*the code length codes. 0-15: code lengths, 16: copy previous 3-6 times, 17: 3-10 zeros, 18: 11-138 zeros*/ +#define NUM_CODE_LENGTH_CODES 19 + +/*the base lengths represented by codes 257-285*/ +static const unsigned LENGTHBASE[29] + = {3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, + 67, 83, 99, 115, 131, 163, 195, 227, 258}; + +/*the extra bits used by codes 257-285 (added to base length)*/ +static const unsigned LENGTHEXTRA[29] + = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 4, 5, 5, 5, 5, 0}; + +/*the base backwards distances (the bits of distance codes appear after length codes and use their own huffman tree)*/ +static const unsigned DISTANCEBASE[30] + = {1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, + 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577}; + +/*the extra bits of backwards distances (added to base)*/ +static const unsigned DISTANCEEXTRA[30] + = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, + 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13}; + +/*the order in which "code length alphabet code lengths" are stored as specified by deflate, out of this the huffman +tree of the dynamic huffman tree lengths is generated*/ +static const unsigned CLCL_ORDER[NUM_CODE_LENGTH_CODES] + = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + +/* ////////////////////////////////////////////////////////////////////////// */ + +/* +Huffman tree struct, containing multiple representations of the tree +*/ +typedef struct HuffmanTree { + unsigned* codes; /*the huffman codes (bit patterns representing the symbols)*/ + unsigned* lengths; /*the lengths of the huffman codes*/ + unsigned maxbitlen; /*maximum number of bits a single code can get*/ + unsigned numcodes; /*number of symbols in the alphabet = number of codes*/ + /* for reading only */ + unsigned char* table_len; /*length of symbol from lookup table, or max length if secondary lookup needed*/ + unsigned short* table_value; /*value of symbol from lookup table, or pointer to secondary table if needed*/ +} HuffmanTree; + +static void HuffmanTree_init(HuffmanTree* tree) { + tree->codes = 0; + tree->lengths = 0; + tree->table_len = 0; + tree->table_value = 0; +} + +static void HuffmanTree_cleanup(HuffmanTree* tree) { + lodepng_free(tree->codes); + lodepng_free(tree->lengths); + lodepng_free(tree->table_len); + lodepng_free(tree->table_value); +} + +/* amount of bits for first huffman table lookup (aka root bits), see HuffmanTree_makeTable and huffmanDecodeSymbol.*/ +/* values 8u and 9u work the fastest */ +#define FIRSTBITS 9u + +/* a symbol value too big to represent any valid symbol, to indicate reading disallowed huffman bits combination, +which is possible in case of only 0 or 1 present symbols. */ +#define INVALIDSYMBOL 65535u + +/* make table for huffman decoding */ +static unsigned HuffmanTree_makeTable(HuffmanTree* tree) { + static const unsigned headsize = 1u << FIRSTBITS; /*size of the first table*/ + static const unsigned mask = (1u << FIRSTBITS) /*headsize*/ - 1u; + size_t i, numpresent, pointer, size; /*total table size*/ + unsigned* maxlens = (unsigned*)lodepng_malloc(headsize * sizeof(unsigned)); + if(!maxlens) return 83; /*alloc fail*/ + + /* compute maxlens: max total bit length of symbols sharing prefix in the first table*/ + lodepng_memset(maxlens, 0, headsize * sizeof(*maxlens)); + for(i = 0; i < tree->numcodes; i++) { + unsigned symbol = tree->codes[i]; + unsigned l = tree->lengths[i]; + unsigned index; + if(l <= FIRSTBITS) continue; /*symbols that fit in first table don't increase secondary table size*/ + /*get the FIRSTBITS MSBs, the MSBs of the symbol are encoded first. See later comment about the reversing*/ + index = reverseBits(symbol >> (l - FIRSTBITS), FIRSTBITS); + maxlens[index] = LODEPNG_MAX(maxlens[index], l); + } + /* compute total table size: size of first table plus all secondary tables for symbols longer than FIRSTBITS */ + size = headsize; + for(i = 0; i < headsize; ++i) { + unsigned l = maxlens[i]; + if(l > FIRSTBITS) size += (1u << (l - FIRSTBITS)); + } + tree->table_len = (unsigned char*)lodepng_malloc(size * sizeof(*tree->table_len)); + tree->table_value = (unsigned short*)lodepng_malloc(size * sizeof(*tree->table_value)); + if(!tree->table_len || !tree->table_value) { + lodepng_free(maxlens); + /* freeing tree->table values is done at a higher scope */ + return 83; /*alloc fail*/ + } + /*initialize with an invalid length to indicate unused entries*/ + for(i = 0; i < size; ++i) tree->table_len[i] = 16; + + /*fill in the first table for long symbols: max prefix size and pointer to secondary tables*/ + pointer = headsize; + for(i = 0; i < headsize; ++i) { + unsigned l = maxlens[i]; + if(l <= FIRSTBITS) continue; + tree->table_len[i] = l; + tree->table_value[i] = pointer; + pointer += (1u << (l - FIRSTBITS)); + } + lodepng_free(maxlens); + + /*fill in the first table for short symbols, or secondary table for long symbols*/ + numpresent = 0; + for(i = 0; i < tree->numcodes; ++i) { + unsigned l = tree->lengths[i]; + unsigned symbol, reverse; + if(l == 0) continue; + symbol = tree->codes[i]; /*the huffman bit pattern. i itself is the value.*/ + /*reverse bits, because the huffman bits are given in MSB first order but the bit reader reads LSB first*/ + reverse = reverseBits(symbol, l); + numpresent++; + + if(l <= FIRSTBITS) { + /*short symbol, fully in first table, replicated num times if l < FIRSTBITS*/ + unsigned num = 1u << (FIRSTBITS - l); + unsigned j; + for(j = 0; j < num; ++j) { + /*bit reader will read the l bits of symbol first, the remaining FIRSTBITS - l bits go to the MSB's*/ + unsigned index = reverse | (j << l); + if(tree->table_len[index] != 16) return 55; /*invalid tree: long symbol shares prefix with short symbol*/ + tree->table_len[index] = l; + tree->table_value[index] = i; + } + } else { + /*long symbol, shares prefix with other long symbols in first lookup table, needs second lookup*/ + /*the FIRSTBITS MSBs of the symbol are the first table index*/ + unsigned index = reverse & mask; + unsigned maxlen = tree->table_len[index]; + /*log2 of secondary table length, should be >= l - FIRSTBITS*/ + unsigned tablelen = maxlen - FIRSTBITS; + unsigned start = tree->table_value[index]; /*starting index in secondary table*/ + unsigned num = 1u << (tablelen - (l - FIRSTBITS)); /*amount of entries of this symbol in secondary table*/ + unsigned j; + if(maxlen < l) return 55; /*invalid tree: long symbol shares prefix with short symbol*/ + for(j = 0; j < num; ++j) { + unsigned reverse2 = reverse >> FIRSTBITS; /* l - FIRSTBITS bits */ + unsigned index2 = start + (reverse2 | (j << (l - FIRSTBITS))); + tree->table_len[index2] = l; + tree->table_value[index2] = i; + } + } + } + + if(numpresent < 2) { + /* In case of exactly 1 symbol, in theory the huffman symbol needs 0 bits, + but deflate uses 1 bit instead. In case of 0 symbols, no symbols can + appear at all, but such huffman tree could still exist (e.g. if distance + codes are never used). In both cases, not all symbols of the table will be + filled in. Fill them in with an invalid symbol value so returning them from + huffmanDecodeSymbol will cause error. */ + for(i = 0; i < size; ++i) { + if(tree->table_len[i] == 16) { + /* As length, use a value smaller than FIRSTBITS for the head table, + and a value larger than FIRSTBITS for the secondary table, to ensure + valid behavior for advanceBits when reading this symbol. */ + tree->table_len[i] = (i < headsize) ? 1 : (FIRSTBITS + 1); + tree->table_value[i] = INVALIDSYMBOL; + } + } + } else { + /* A good huffman tree has N * 2 - 1 nodes, of which N - 1 are internal nodes. + If that is not the case (due to too long length codes), the table will not + have been fully used, and this is an error (not all bit combinations can be + decoded): an oversubscribed huffman tree, indicated by error 55. */ + for(i = 0; i < size; ++i) { + if(tree->table_len[i] == 16) return 55; + } + } + + return 0; +} + +/* +Second step for the ...makeFromLengths and ...makeFromFrequencies functions. +numcodes, lengths and maxbitlen must already be filled in correctly. return +value is error. +*/ +static unsigned HuffmanTree_makeFromLengths2(HuffmanTree* tree) { + unsigned* blcount; + unsigned* nextcode; + unsigned error = 0; + unsigned bits, n; + + tree->codes = (unsigned*)lodepng_malloc(tree->numcodes * sizeof(unsigned)); + blcount = (unsigned*)lodepng_malloc((tree->maxbitlen + 1) * sizeof(unsigned)); + nextcode = (unsigned*)lodepng_malloc((tree->maxbitlen + 1) * sizeof(unsigned)); + if(!tree->codes || !blcount || !nextcode) error = 83; /*alloc fail*/ + + if(!error) { + for(n = 0; n != tree->maxbitlen + 1; n++) blcount[n] = nextcode[n] = 0; + /*step 1: count number of instances of each code length*/ + for(bits = 0; bits != tree->numcodes; ++bits) ++blcount[tree->lengths[bits]]; + /*step 2: generate the nextcode values*/ + for(bits = 1; bits <= tree->maxbitlen; ++bits) { + nextcode[bits] = (nextcode[bits - 1] + blcount[bits - 1]) << 1u; + } + /*step 3: generate all the codes*/ + for(n = 0; n != tree->numcodes; ++n) { + if(tree->lengths[n] != 0) { + tree->codes[n] = nextcode[tree->lengths[n]]++; + /*remove superfluous bits from the code*/ + tree->codes[n] &= ((1u << tree->lengths[n]) - 1u); + } + } + } + + lodepng_free(blcount); + lodepng_free(nextcode); + + if(!error) error = HuffmanTree_makeTable(tree); + return error; +} + +/* +given the code lengths (as stored in the PNG file), generate the tree as defined +by Deflate. maxbitlen is the maximum bits that a code in the tree can have. +return value is error. +*/ +static unsigned HuffmanTree_makeFromLengths(HuffmanTree* tree, const unsigned* bitlen, + size_t numcodes, unsigned maxbitlen) { + unsigned i; + tree->lengths = (unsigned*)lodepng_malloc(numcodes * sizeof(unsigned)); + if(!tree->lengths) return 83; /*alloc fail*/ + for(i = 0; i != numcodes; ++i) tree->lengths[i] = bitlen[i]; + tree->numcodes = (unsigned)numcodes; /*number of symbols*/ + tree->maxbitlen = maxbitlen; + return HuffmanTree_makeFromLengths2(tree); +} + +#ifdef LODEPNG_COMPILE_ENCODER + +/*BPM: Boundary Package Merge, see "A Fast and Space-Economical Algorithm for Length-Limited Coding", +Jyrki Katajainen, Alistair Moffat, Andrew Turpin, 1995.*/ + +/*chain node for boundary package merge*/ +typedef struct BPMNode { + int weight; /*the sum of all weights in this chain*/ + unsigned index; /*index of this leaf node (called "count" in the paper)*/ + struct BPMNode* tail; /*the next nodes in this chain (null if last)*/ + int in_use; +} BPMNode; + +/*lists of chains*/ +typedef struct BPMLists { + /*memory pool*/ + unsigned memsize; + BPMNode* memory; + unsigned numfree; + unsigned nextfree; + BPMNode** freelist; + /*two heads of lookahead chains per list*/ + unsigned listsize; + BPMNode** chains0; + BPMNode** chains1; +} BPMLists; + +/*creates a new chain node with the given parameters, from the memory in the lists */ +static BPMNode* bpmnode_create(BPMLists* lists, int weight, unsigned index, BPMNode* tail) { + unsigned i; + BPMNode* result; + + /*memory full, so garbage collect*/ + if(lists->nextfree >= lists->numfree) { + /*mark only those that are in use*/ + for(i = 0; i != lists->memsize; ++i) lists->memory[i].in_use = 0; + for(i = 0; i != lists->listsize; ++i) { + BPMNode* node; + for(node = lists->chains0[i]; node != 0; node = node->tail) node->in_use = 1; + for(node = lists->chains1[i]; node != 0; node = node->tail) node->in_use = 1; + } + /*collect those that are free*/ + lists->numfree = 0; + for(i = 0; i != lists->memsize; ++i) { + if(!lists->memory[i].in_use) lists->freelist[lists->numfree++] = &lists->memory[i]; + } + lists->nextfree = 0; + } + + result = lists->freelist[lists->nextfree++]; + result->weight = weight; + result->index = index; + result->tail = tail; + return result; +} + +/*sort the leaves with stable mergesort*/ +static void bpmnode_sort(BPMNode* leaves, size_t num) { + BPMNode* mem = (BPMNode*)lodepng_malloc(sizeof(*leaves) * num); + size_t width, counter = 0; + for(width = 1; width < num; width *= 2) { + BPMNode* a = (counter & 1) ? mem : leaves; + BPMNode* b = (counter & 1) ? leaves : mem; + size_t p; + for(p = 0; p < num; p += 2 * width) { + size_t q = (p + width > num) ? num : (p + width); + size_t r = (p + 2 * width > num) ? num : (p + 2 * width); + size_t i = p, j = q, k; + for(k = p; k < r; k++) { + if(i < q && (j >= r || a[i].weight <= a[j].weight)) b[k] = a[i++]; + else b[k] = a[j++]; + } + } + counter++; + } + if(counter & 1) lodepng_memcpy(leaves, mem, sizeof(*leaves) * num); + lodepng_free(mem); +} + +/*Boundary Package Merge step, numpresent is the amount of leaves, and c is the current chain.*/ +static void boundaryPM(BPMLists* lists, BPMNode* leaves, size_t numpresent, int c, int num) { + unsigned lastindex = lists->chains1[c]->index; + + if(c == 0) { + if(lastindex >= numpresent) return; + lists->chains0[c] = lists->chains1[c]; + lists->chains1[c] = bpmnode_create(lists, leaves[lastindex].weight, lastindex + 1, 0); + } else { + /*sum of the weights of the head nodes of the previous lookahead chains.*/ + int sum = lists->chains0[c - 1]->weight + lists->chains1[c - 1]->weight; + lists->chains0[c] = lists->chains1[c]; + if(lastindex < numpresent && sum > leaves[lastindex].weight) { + lists->chains1[c] = bpmnode_create(lists, leaves[lastindex].weight, lastindex + 1, lists->chains1[c]->tail); + return; + } + lists->chains1[c] = bpmnode_create(lists, sum, lastindex, lists->chains1[c - 1]); + /*in the end we are only interested in the chain of the last list, so no + need to recurse if we're at the last one (this gives measurable speedup)*/ + if(num + 1 < (int)(2 * numpresent - 2)) { + boundaryPM(lists, leaves, numpresent, c - 1, num); + boundaryPM(lists, leaves, numpresent, c - 1, num); + } + } +} + +unsigned lodepng_huffman_code_lengths(unsigned* lengths, const unsigned* frequencies, + size_t numcodes, unsigned maxbitlen) { + unsigned error = 0; + unsigned i; + size_t numpresent = 0; /*number of symbols with non-zero frequency*/ + BPMNode* leaves; /*the symbols, only those with > 0 frequency*/ + + if(numcodes == 0) return 80; /*error: a tree of 0 symbols is not supposed to be made*/ + if((1u << maxbitlen) < (unsigned)numcodes) return 80; /*error: represent all symbols*/ + + leaves = (BPMNode*)lodepng_malloc(numcodes * sizeof(*leaves)); + if(!leaves) return 83; /*alloc fail*/ + + for(i = 0; i != numcodes; ++i) { + if(frequencies[i] > 0) { + leaves[numpresent].weight = (int)frequencies[i]; + leaves[numpresent].index = i; + ++numpresent; + } + } + + lodepng_memset(lengths, 0, numcodes * sizeof(*lengths)); + + /*ensure at least two present symbols. There should be at least one symbol + according to RFC 1951 section 3.2.7. Some decoders incorrectly require two. To + make these work as well ensure there are at least two symbols. The + Package-Merge code below also doesn't work correctly if there's only one + symbol, it'd give it the theoretical 0 bits but in practice zlib wants 1 bit*/ + if(numpresent == 0) { + lengths[0] = lengths[1] = 1; /*note that for RFC 1951 section 3.2.7, only lengths[0] = 1 is needed*/ + } else if(numpresent == 1) { + lengths[leaves[0].index] = 1; + lengths[leaves[0].index == 0 ? 1 : 0] = 1; + } else { + BPMLists lists; + BPMNode* node; + + bpmnode_sort(leaves, numpresent); + + lists.listsize = maxbitlen; + lists.memsize = 2 * maxbitlen * (maxbitlen + 1); + lists.nextfree = 0; + lists.numfree = lists.memsize; + lists.memory = (BPMNode*)lodepng_malloc(lists.memsize * sizeof(*lists.memory)); + lists.freelist = (BPMNode**)lodepng_malloc(lists.memsize * sizeof(BPMNode*)); + lists.chains0 = (BPMNode**)lodepng_malloc(lists.listsize * sizeof(BPMNode*)); + lists.chains1 = (BPMNode**)lodepng_malloc(lists.listsize * sizeof(BPMNode*)); + if(!lists.memory || !lists.freelist || !lists.chains0 || !lists.chains1) error = 83; /*alloc fail*/ + + if(!error) { + for(i = 0; i != lists.memsize; ++i) lists.freelist[i] = &lists.memory[i]; + + bpmnode_create(&lists, leaves[0].weight, 1, 0); + bpmnode_create(&lists, leaves[1].weight, 2, 0); + + for(i = 0; i != lists.listsize; ++i) { + lists.chains0[i] = &lists.memory[0]; + lists.chains1[i] = &lists.memory[1]; + } + + /*each boundaryPM call adds one chain to the last list, and we need 2 * numpresent - 2 chains.*/ + for(i = 2; i != 2 * numpresent - 2; ++i) boundaryPM(&lists, leaves, numpresent, (int)maxbitlen - 1, (int)i); + + for(node = lists.chains1[maxbitlen - 1]; node; node = node->tail) { + for(i = 0; i != node->index; ++i) ++lengths[leaves[i].index]; + } + } + + lodepng_free(lists.memory); + lodepng_free(lists.freelist); + lodepng_free(lists.chains0); + lodepng_free(lists.chains1); + } + + lodepng_free(leaves); + return error; +} + +/*Create the Huffman tree given the symbol frequencies*/ +static unsigned HuffmanTree_makeFromFrequencies(HuffmanTree* tree, const unsigned* frequencies, + size_t mincodes, size_t numcodes, unsigned maxbitlen) { + unsigned error = 0; + while(!frequencies[numcodes - 1] && numcodes > mincodes) --numcodes; /*trim zeroes*/ + tree->lengths = (unsigned*)lodepng_malloc(numcodes * sizeof(unsigned)); + if(!tree->lengths) return 83; /*alloc fail*/ + tree->maxbitlen = maxbitlen; + tree->numcodes = (unsigned)numcodes; /*number of symbols*/ + + error = lodepng_huffman_code_lengths(tree->lengths, frequencies, numcodes, maxbitlen); + if(!error) error = HuffmanTree_makeFromLengths2(tree); + return error; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/*get the literal and length code tree of a deflated block with fixed tree, as per the deflate specification*/ +static unsigned generateFixedLitLenTree(HuffmanTree* tree) { + unsigned i, error = 0; + unsigned* bitlen = (unsigned*)lodepng_malloc(NUM_DEFLATE_CODE_SYMBOLS * sizeof(unsigned)); + if(!bitlen) return 83; /*alloc fail*/ + + /*288 possible codes: 0-255=literals, 256=endcode, 257-285=lengthcodes, 286-287=unused*/ + for(i = 0; i <= 143; ++i) bitlen[i] = 8; + for(i = 144; i <= 255; ++i) bitlen[i] = 9; + for(i = 256; i <= 279; ++i) bitlen[i] = 7; + for(i = 280; i <= 287; ++i) bitlen[i] = 8; + + error = HuffmanTree_makeFromLengths(tree, bitlen, NUM_DEFLATE_CODE_SYMBOLS, 15); + + lodepng_free(bitlen); + return error; +} + +/*get the distance code tree of a deflated block with fixed tree, as specified in the deflate specification*/ +static unsigned generateFixedDistanceTree(HuffmanTree* tree) { + unsigned i, error = 0; + unsigned* bitlen = (unsigned*)lodepng_malloc(NUM_DISTANCE_SYMBOLS * sizeof(unsigned)); + if(!bitlen) return 83; /*alloc fail*/ + + /*there are 32 distance codes, but 30-31 are unused*/ + for(i = 0; i != NUM_DISTANCE_SYMBOLS; ++i) bitlen[i] = 5; + error = HuffmanTree_makeFromLengths(tree, bitlen, NUM_DISTANCE_SYMBOLS, 15); + + lodepng_free(bitlen); + return error; +} + +#ifdef LODEPNG_COMPILE_DECODER + +/* +returns the code. The bit reader must already have been ensured at least 15 bits +*/ +static unsigned huffmanDecodeSymbol(LodePNGBitReader* reader, const HuffmanTree* codetree) { + unsigned short code = peekBits(reader, FIRSTBITS); + unsigned short l = codetree->table_len[code]; + unsigned short value = codetree->table_value[code]; + if(l <= FIRSTBITS) { + advanceBits(reader, l); + return value; + } else { + advanceBits(reader, FIRSTBITS); + value += peekBits(reader, l - FIRSTBITS); + advanceBits(reader, codetree->table_len[value] - FIRSTBITS); + return codetree->table_value[value]; + } +} +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Inflator (Decompressor) / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*get the tree of a deflated block with fixed tree, as specified in the deflate specification +Returns error code.*/ +static unsigned getTreeInflateFixed(HuffmanTree* tree_ll, HuffmanTree* tree_d) { + unsigned error = generateFixedLitLenTree(tree_ll); + if(error) return error; + return generateFixedDistanceTree(tree_d); +} + +/*get the tree of a deflated block with dynamic tree, the tree itself is also Huffman compressed with a known tree*/ +static unsigned getTreeInflateDynamic(HuffmanTree* tree_ll, HuffmanTree* tree_d, + LodePNGBitReader* reader) { + /*make sure that length values that aren't filled in will be 0, or a wrong tree will be generated*/ + unsigned error = 0; + unsigned n, HLIT, HDIST, HCLEN, i; + + /*see comments in deflateDynamic for explanation of the context and these variables, it is analogous*/ + unsigned* bitlen_ll = 0; /*lit,len code lengths*/ + unsigned* bitlen_d = 0; /*dist code lengths*/ + /*code length code lengths ("clcl"), the bit lengths of the huffman tree used to compress bitlen_ll and bitlen_d*/ + unsigned* bitlen_cl = 0; + HuffmanTree tree_cl; /*the code tree for code length codes (the huffman tree for compressed huffman trees)*/ + + if(reader->bitsize - reader->bp < 14) return 49; /*error: the bit pointer is or will go past the memory*/ + ensureBits17(reader, 14); + + /*number of literal/length codes + 257. Unlike the spec, the value 257 is added to it here already*/ + HLIT = readBits(reader, 5) + 257; + /*number of distance codes. Unlike the spec, the value 1 is added to it here already*/ + HDIST = readBits(reader, 5) + 1; + /*number of code length codes. Unlike the spec, the value 4 is added to it here already*/ + HCLEN = readBits(reader, 4) + 4; + + bitlen_cl = (unsigned*)lodepng_malloc(NUM_CODE_LENGTH_CODES * sizeof(unsigned)); + if(!bitlen_cl) return 83 /*alloc fail*/; + + HuffmanTree_init(&tree_cl); + + while(!error) { + /*read the code length codes out of 3 * (amount of code length codes) bits*/ + if(lodepng_gtofl(reader->bp, HCLEN * 3, reader->bitsize)) { + ERROR_BREAK(50); /*error: the bit pointer is or will go past the memory*/ + } + for(i = 0; i != HCLEN; ++i) { + ensureBits9(reader, 3); /*out of bounds already checked above */ + bitlen_cl[CLCL_ORDER[i]] = readBits(reader, 3); + } + for(i = HCLEN; i != NUM_CODE_LENGTH_CODES; ++i) { + bitlen_cl[CLCL_ORDER[i]] = 0; + } + + error = HuffmanTree_makeFromLengths(&tree_cl, bitlen_cl, NUM_CODE_LENGTH_CODES, 7); + if(error) break; + + /*now we can use this tree to read the lengths for the tree that this function will return*/ + bitlen_ll = (unsigned*)lodepng_malloc(NUM_DEFLATE_CODE_SYMBOLS * sizeof(unsigned)); + bitlen_d = (unsigned*)lodepng_malloc(NUM_DISTANCE_SYMBOLS * sizeof(unsigned)); + if(!bitlen_ll || !bitlen_d) ERROR_BREAK(83 /*alloc fail*/); + lodepng_memset(bitlen_ll, 0, NUM_DEFLATE_CODE_SYMBOLS * sizeof(*bitlen_ll)); + lodepng_memset(bitlen_d, 0, NUM_DISTANCE_SYMBOLS * sizeof(*bitlen_d)); + + /*i is the current symbol we're reading in the part that contains the code lengths of lit/len and dist codes*/ + i = 0; + while(i < HLIT + HDIST) { + unsigned code; + ensureBits25(reader, 22); /* up to 15 bits for huffman code, up to 7 extra bits below*/ + code = huffmanDecodeSymbol(reader, &tree_cl); + if(code <= 15) /*a length code*/ { + if(i < HLIT) bitlen_ll[i] = code; + else bitlen_d[i - HLIT] = code; + ++i; + } else if(code == 16) /*repeat previous*/ { + unsigned replength = 3; /*read in the 2 bits that indicate repeat length (3-6)*/ + unsigned value; /*set value to the previous code*/ + + if(i == 0) ERROR_BREAK(54); /*can't repeat previous if i is 0*/ + + replength += readBits(reader, 2); + + if(i < HLIT + 1) value = bitlen_ll[i - 1]; + else value = bitlen_d[i - HLIT - 1]; + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) { + if(i >= HLIT + HDIST) ERROR_BREAK(13); /*error: i is larger than the amount of codes*/ + if(i < HLIT) bitlen_ll[i] = value; + else bitlen_d[i - HLIT] = value; + ++i; + } + } else if(code == 17) /*repeat "0" 3-10 times*/ { + unsigned replength = 3; /*read in the bits that indicate repeat length*/ + replength += readBits(reader, 3); + + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) { + if(i >= HLIT + HDIST) ERROR_BREAK(14); /*error: i is larger than the amount of codes*/ + + if(i < HLIT) bitlen_ll[i] = 0; + else bitlen_d[i - HLIT] = 0; + ++i; + } + } else if(code == 18) /*repeat "0" 11-138 times*/ { + unsigned replength = 11; /*read in the bits that indicate repeat length*/ + replength += readBits(reader, 7); + + /*repeat this value in the next lengths*/ + for(n = 0; n < replength; ++n) { + if(i >= HLIT + HDIST) ERROR_BREAK(15); /*error: i is larger than the amount of codes*/ + + if(i < HLIT) bitlen_ll[i] = 0; + else bitlen_d[i - HLIT] = 0; + ++i; + } + } else /*if(code == INVALIDSYMBOL)*/ { + ERROR_BREAK(16); /*error: tried to read disallowed huffman symbol*/ + } + /*check if any of the ensureBits above went out of bounds*/ + if(reader->bp > reader->bitsize) { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + /* TODO: revise error codes 10,11,50: the above comment is no longer valid */ + ERROR_BREAK(50); /*error, bit pointer jumps past memory*/ + } + } + if(error) break; + + if(bitlen_ll[256] == 0) ERROR_BREAK(64); /*the length of the end code 256 must be larger than 0*/ + + /*now we've finally got HLIT and HDIST, so generate the code trees, and the function is done*/ + error = HuffmanTree_makeFromLengths(tree_ll, bitlen_ll, NUM_DEFLATE_CODE_SYMBOLS, 15); + if(error) break; + error = HuffmanTree_makeFromLengths(tree_d, bitlen_d, NUM_DISTANCE_SYMBOLS, 15); + + break; /*end of error-while*/ + } + + lodepng_free(bitlen_cl); + lodepng_free(bitlen_ll); + lodepng_free(bitlen_d); + HuffmanTree_cleanup(&tree_cl); + + return error; +} + +/*inflate a block with dynamic of fixed Huffman tree. btype must be 1 or 2.*/ +static unsigned inflateHuffmanBlock(ucvector* out, LodePNGBitReader* reader, + unsigned btype, size_t max_output_size) { + unsigned error = 0; + HuffmanTree tree_ll; /*the huffman tree for literal and length codes*/ + HuffmanTree tree_d; /*the huffman tree for distance codes*/ + const size_t reserved_size = 260; /* must be at least 258 for max length, and a few extra for adding a few extra literals */ + int done = 0; + + if(!ucvector_reserve(out, out->size + reserved_size)) return 83; /*alloc fail*/ + + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + + if(btype == 1) error = getTreeInflateFixed(&tree_ll, &tree_d); + else /*if(btype == 2)*/ error = getTreeInflateDynamic(&tree_ll, &tree_d, reader); + + + while(!error && !done) /*decode all symbols until end reached, breaks at end code*/ { + /*code_ll is literal, length or end code*/ + unsigned code_ll; + /* ensure enough bits for 2 huffman code reads (15 bits each): if the first is a literal, a second literal is read at once. This + appears to be slightly faster, than ensuring 20 bits here for 1 huffman symbol and the potential 5 extra bits for the length symbol.*/ + ensureBits32(reader, 30); + code_ll = huffmanDecodeSymbol(reader, &tree_ll); + if(code_ll <= 255) { + /*slightly faster code path if multiple literals in a row*/ + out->data[out->size++] = (unsigned char)code_ll; + code_ll = huffmanDecodeSymbol(reader, &tree_ll); + } + if(code_ll <= 255) /*literal symbol*/ { + out->data[out->size++] = (unsigned char)code_ll; + } else if(code_ll >= FIRST_LENGTH_CODE_INDEX && code_ll <= LAST_LENGTH_CODE_INDEX) /*length code*/ { + unsigned code_d, distance; + unsigned numextrabits_l, numextrabits_d; /*extra bits for length and distance*/ + size_t start, backward, length; + + /*part 1: get length base*/ + length = LENGTHBASE[code_ll - FIRST_LENGTH_CODE_INDEX]; + + /*part 2: get extra bits and add the value of that to length*/ + numextrabits_l = LENGTHEXTRA[code_ll - FIRST_LENGTH_CODE_INDEX]; + if(numextrabits_l != 0) { + /* bits already ensured above */ + ensureBits25(reader, 5); + length += readBits(reader, numextrabits_l); + } + + /*part 3: get distance code*/ + ensureBits32(reader, 28); /* up to 15 for the huffman symbol, up to 13 for the extra bits */ + code_d = huffmanDecodeSymbol(reader, &tree_d); + if(code_d > 29) { + if(code_d <= 31) { + ERROR_BREAK(18); /*error: invalid distance code (30-31 are never used)*/ + } else /* if(code_d == INVALIDSYMBOL) */{ + ERROR_BREAK(16); /*error: tried to read disallowed huffman symbol*/ + } + } + distance = DISTANCEBASE[code_d]; + + /*part 4: get extra bits from distance*/ + numextrabits_d = DISTANCEEXTRA[code_d]; + if(numextrabits_d != 0) { + /* bits already ensured above */ + distance += readBits(reader, numextrabits_d); + } + + /*part 5: fill in all the out[n] values based on the length and dist*/ + start = out->size; + if(distance > start) ERROR_BREAK(52); /*too long backward distance*/ + backward = start - distance; + + out->size += length; + if(distance < length) { + size_t forward; + lodepng_memcpy(out->data + start, out->data + backward, distance); + start += distance; + for(forward = distance; forward < length; ++forward) { + out->data[start++] = out->data[backward++]; + } + } else { + lodepng_memcpy(out->data + start, out->data + backward, length); + } + } else if(code_ll == 256) { + done = 1; /*end code, finish the loop*/ + } else /*if(code_ll == INVALIDSYMBOL)*/ { + ERROR_BREAK(16); /*error: tried to read disallowed huffman symbol*/ + } + if(out->allocsize - out->size < reserved_size) { + if(!ucvector_reserve(out, out->size + reserved_size)) ERROR_BREAK(83); /*alloc fail*/ + } + /*check if any of the ensureBits above went out of bounds*/ + if(reader->bp > reader->bitsize) { + /*return error code 10 or 11 depending on the situation that happened in huffmanDecodeSymbol + (10=no endcode, 11=wrong jump outside of tree)*/ + /* TODO: revise error codes 10,11,50: the above comment is no longer valid */ + ERROR_BREAK(51); /*error, bit pointer jumps past memory*/ + } + if(max_output_size && out->size > max_output_size) { + ERROR_BREAK(109); /*error, larger than max size*/ + } + } + + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + + return error; +} + +static unsigned inflateNoCompression(ucvector* out, LodePNGBitReader* reader, + const LodePNGDecompressSettings* settings) { + size_t bytepos; + size_t size = reader->size; + unsigned LEN, NLEN, error = 0; + + /*go to first boundary of byte*/ + bytepos = (reader->bp + 7u) >> 3u; + + /*read LEN (2 bytes) and NLEN (2 bytes)*/ + if(bytepos + 4 >= size) return 52; /*error, bit pointer will jump past memory*/ + LEN = (unsigned)reader->data[bytepos] + ((unsigned)reader->data[bytepos + 1] << 8u); bytepos += 2; + NLEN = (unsigned)reader->data[bytepos] + ((unsigned)reader->data[bytepos + 1] << 8u); bytepos += 2; + + /*check if 16-bit NLEN is really the one's complement of LEN*/ + if(!settings->ignore_nlen && LEN + NLEN != 65535) { + return 21; /*error: NLEN is not one's complement of LEN*/ + } + + if(!ucvector_resize(out, out->size + LEN)) return 83; /*alloc fail*/ + + /*read the literal data: LEN bytes are now stored in the out buffer*/ + if(bytepos + LEN > size) return 23; /*error: reading outside of in buffer*/ + + /*out->data can be NULL (when LEN is zero), and arithmetics on NULL ptr is undefined*/ + if (LEN) { + lodepng_memcpy(out->data + out->size - LEN, reader->data + bytepos, LEN); + bytepos += LEN; + } + + reader->bp = bytepos << 3u; + + return error; +} + +static unsigned lodepng_inflatev(ucvector* out, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) { + unsigned BFINAL = 0; + LodePNGBitReader reader; + unsigned error = LodePNGBitReader_init(&reader, in, insize); + + if(error) return error; + + while(!BFINAL) { + unsigned BTYPE; + if(reader.bitsize - reader.bp < 3) return 52; /*error, bit pointer will jump past memory*/ + ensureBits9(&reader, 3); + BFINAL = readBits(&reader, 1); + BTYPE = readBits(&reader, 2); + + if(BTYPE == 3) return 20; /*error: invalid BTYPE*/ + else if(BTYPE == 0) error = inflateNoCompression(out, &reader, settings); /*no compression*/ + else error = inflateHuffmanBlock(out, &reader, BTYPE, settings->max_output_size); /*compression, BTYPE 01 or 10*/ + if(!error && settings->max_output_size && out->size > settings->max_output_size) error = 109; + if(error) break; + } + + return error; +} + +unsigned lodepng_inflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) { + ucvector v = ucvector_init(*out, *outsize); + unsigned error = lodepng_inflatev(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + return error; +} + +static unsigned inflatev(ucvector* out, const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) { + if(settings->custom_inflate) { + unsigned error = settings->custom_inflate(&out->data, &out->size, in, insize, settings); + out->allocsize = out->size; + if(error) { + /*the custom inflate is allowed to have its own error codes, however, we translate it to code 110*/ + error = 110; + /*if there's a max output size, and the custom zlib returned error, then indicate that error instead*/ + if(settings->max_output_size && out->size > settings->max_output_size) error = 109; + } + return error; + } else { + return lodepng_inflatev(out, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Deflator (Compressor) / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static const size_t MAX_SUPPORTED_DEFLATE_LENGTH = 258; + +/*search the index in the array, that has the largest value smaller than or equal to the given value, +given array must be sorted (if no value is smaller, it returns the size of the given array)*/ +static size_t searchCodeIndex(const unsigned* array, size_t array_size, size_t value) { + /*binary search (only small gain over linear). TODO: use CPU log2 instruction for getting symbols instead*/ + size_t left = 1; + size_t right = array_size - 1; + + while(left <= right) { + size_t mid = (left + right) >> 1; + if(array[mid] >= value) right = mid - 1; + else left = mid + 1; + } + if(left >= array_size || array[left] > value) left--; + return left; +} + +static void addLengthDistance(uivector* values, size_t length, size_t distance) { + /*values in encoded vector are those used by deflate: + 0-255: literal bytes + 256: end + 257-285: length/distance pair (length code, followed by extra length bits, distance code, extra distance bits) + 286-287: invalid*/ + + unsigned length_code = (unsigned)searchCodeIndex(LENGTHBASE, 29, length); + unsigned extra_length = (unsigned)(length - LENGTHBASE[length_code]); + unsigned dist_code = (unsigned)searchCodeIndex(DISTANCEBASE, 30, distance); + unsigned extra_distance = (unsigned)(distance - DISTANCEBASE[dist_code]); + + size_t pos = values->size; + /*TODO: return error when this fails (out of memory)*/ + unsigned ok = uivector_resize(values, values->size + 4); + if(ok) { + values->data[pos + 0] = length_code + FIRST_LENGTH_CODE_INDEX; + values->data[pos + 1] = extra_length; + values->data[pos + 2] = dist_code; + values->data[pos + 3] = extra_distance; + } +} + +/*3 bytes of data get encoded into two bytes. The hash cannot use more than 3 +bytes as input because 3 is the minimum match length for deflate*/ +static const unsigned HASH_NUM_VALUES = 65536; +static const unsigned HASH_BIT_MASK = 65535; /*HASH_NUM_VALUES - 1, but C90 does not like that as initializer*/ + +typedef struct Hash { + int* head; /*hash value to head circular pos - can be outdated if went around window*/ + /*circular pos to prev circular pos*/ + unsigned short* chain; + int* val; /*circular pos to hash value*/ + + /*TODO: do this not only for zeros but for any repeated byte. However for PNG + it's always going to be the zeros that dominate, so not important for PNG*/ + int* headz; /*similar to head, but for chainz*/ + unsigned short* chainz; /*those with same amount of zeros*/ + unsigned short* zeros; /*length of zeros streak, used as a second hash chain*/ +} Hash; + +static unsigned hash_init(Hash* hash, unsigned windowsize) { + unsigned i; + hash->head = (int*)lodepng_malloc(sizeof(int) * HASH_NUM_VALUES); + hash->val = (int*)lodepng_malloc(sizeof(int) * windowsize); + hash->chain = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + + hash->zeros = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + hash->headz = (int*)lodepng_malloc(sizeof(int) * (MAX_SUPPORTED_DEFLATE_LENGTH + 1)); + hash->chainz = (unsigned short*)lodepng_malloc(sizeof(unsigned short) * windowsize); + + if(!hash->head || !hash->chain || !hash->val || !hash->headz|| !hash->chainz || !hash->zeros) { + return 83; /*alloc fail*/ + } + + /*initialize hash table*/ + for(i = 0; i != HASH_NUM_VALUES; ++i) hash->head[i] = -1; + for(i = 0; i != windowsize; ++i) hash->val[i] = -1; + for(i = 0; i != windowsize; ++i) hash->chain[i] = i; /*same value as index indicates uninitialized*/ + + for(i = 0; i <= MAX_SUPPORTED_DEFLATE_LENGTH; ++i) hash->headz[i] = -1; + for(i = 0; i != windowsize; ++i) hash->chainz[i] = i; /*same value as index indicates uninitialized*/ + + return 0; +} + +static void hash_cleanup(Hash* hash) { + lodepng_free(hash->head); + lodepng_free(hash->val); + lodepng_free(hash->chain); + + lodepng_free(hash->zeros); + lodepng_free(hash->headz); + lodepng_free(hash->chainz); +} + + + +static unsigned getHash(const unsigned char* data, size_t size, size_t pos) { + unsigned result = 0; + if(pos + 2 < size) { + /*A simple shift and xor hash is used. Since the data of PNGs is dominated + by zeroes due to the filters, a better hash does not have a significant + effect on speed in traversing the chain, and causes more time spend on + calculating the hash.*/ + result ^= ((unsigned)data[pos + 0] << 0u); + result ^= ((unsigned)data[pos + 1] << 4u); + result ^= ((unsigned)data[pos + 2] << 8u); + } else { + size_t amount, i; + if(pos >= size) return 0; + amount = size - pos; + for(i = 0; i != amount; ++i) result ^= ((unsigned)data[pos + i] << (i * 8u)); + } + return result & HASH_BIT_MASK; +} + +static unsigned countZeros(const unsigned char* data, size_t size, size_t pos) { + const unsigned char* start = data + pos; + const unsigned char* end = start + MAX_SUPPORTED_DEFLATE_LENGTH; + if(end > data + size) end = data + size; + data = start; + while(data != end && *data == 0) ++data; + /*subtracting two addresses returned as 32-bit number (max value is MAX_SUPPORTED_DEFLATE_LENGTH)*/ + return (unsigned)(data - start); +} + +/*wpos = pos & (windowsize - 1)*/ +static void updateHashChain(Hash* hash, size_t wpos, unsigned hashval, unsigned short numzeros) { + hash->val[wpos] = (int)hashval; + if(hash->head[hashval] != -1) hash->chain[wpos] = hash->head[hashval]; + hash->head[hashval] = (int)wpos; + + hash->zeros[wpos] = numzeros; + if(hash->headz[numzeros] != -1) hash->chainz[wpos] = hash->headz[numzeros]; + hash->headz[numzeros] = (int)wpos; +} + +/* +LZ77-encode the data. Return value is error code. The input are raw bytes, the output +is in the form of unsigned integers with codes representing for example literal bytes, or +length/distance pairs. +It uses a hash table technique to let it encode faster. When doing LZ77 encoding, a +sliding window (of windowsize) is used, and all past bytes in that window can be used as +the "dictionary". A brute force search through all possible distances would be slow, and +this hash technique is one out of several ways to speed this up. +*/ +static unsigned encodeLZ77(uivector* out, Hash* hash, + const unsigned char* in, size_t inpos, size_t insize, unsigned windowsize, + unsigned minmatch, unsigned nicematch, unsigned lazymatching) { + size_t pos; + unsigned i, error = 0; + /*for large window lengths, assume the user wants no compression loss. Otherwise, max hash chain length speedup.*/ + unsigned maxchainlength = windowsize >= 8192 ? windowsize : windowsize / 8u; + unsigned maxlazymatch = windowsize >= 8192 ? MAX_SUPPORTED_DEFLATE_LENGTH : 64; + + unsigned usezeros = 1; /*not sure if setting it to false for windowsize < 8192 is better or worse*/ + unsigned numzeros = 0; + + unsigned offset; /*the offset represents the distance in LZ77 terminology*/ + unsigned length; + unsigned lazy = 0; + unsigned lazylength = 0, lazyoffset = 0; + unsigned hashval; + unsigned current_offset, current_length; + unsigned prev_offset; + const unsigned char *lastptr, *foreptr, *backptr; + unsigned hashpos; + + if(windowsize == 0 || windowsize > 32768) return 60; /*error: windowsize smaller/larger than allowed*/ + if((windowsize & (windowsize - 1)) != 0) return 90; /*error: must be power of two*/ + + if(nicematch > MAX_SUPPORTED_DEFLATE_LENGTH) nicematch = MAX_SUPPORTED_DEFLATE_LENGTH; + + for(pos = inpos; pos < insize; ++pos) { + size_t wpos = pos & (windowsize - 1); /*position for in 'circular' hash buffers*/ + unsigned chainlength = 0; + + hashval = getHash(in, insize, pos); + + if(usezeros && hashval == 0) { + if(numzeros == 0) numzeros = countZeros(in, insize, pos); + else if(pos + numzeros > insize || in[pos + numzeros - 1] != 0) --numzeros; + } else { + numzeros = 0; + } + + updateHashChain(hash, wpos, hashval, numzeros); + + /*the length and offset found for the current position*/ + length = 0; + offset = 0; + + hashpos = hash->chain[wpos]; + + lastptr = &in[insize < pos + MAX_SUPPORTED_DEFLATE_LENGTH ? insize : pos + MAX_SUPPORTED_DEFLATE_LENGTH]; + + /*search for the longest string*/ + prev_offset = 0; + for(;;) { + if(chainlength++ >= maxchainlength) break; + current_offset = (unsigned)(hashpos <= wpos ? wpos - hashpos : wpos - hashpos + windowsize); + + if(current_offset < prev_offset) break; /*stop when went completely around the circular buffer*/ + prev_offset = current_offset; + if(current_offset > 0) { + /*test the next characters*/ + foreptr = &in[pos]; + backptr = &in[pos - current_offset]; + + /*common case in PNGs is lots of zeros. Quickly skip over them as a speedup*/ + if(numzeros >= 3) { + unsigned skip = hash->zeros[hashpos]; + if(skip > numzeros) skip = numzeros; + backptr += skip; + foreptr += skip; + } + + while(foreptr != lastptr && *backptr == *foreptr) /*maximum supported length by deflate is max length*/ { + ++backptr; + ++foreptr; + } + current_length = (unsigned)(foreptr - &in[pos]); + + if(current_length > length) { + length = current_length; /*the longest length*/ + offset = current_offset; /*the offset that is related to this longest length*/ + /*jump out once a length of max length is found (speed gain). This also jumps + out if length is MAX_SUPPORTED_DEFLATE_LENGTH*/ + if(current_length >= nicematch) break; + } + } + + if(hashpos == hash->chain[hashpos]) break; + + if(numzeros >= 3 && length > numzeros) { + hashpos = hash->chainz[hashpos]; + if(hash->zeros[hashpos] != numzeros) break; + } else { + hashpos = hash->chain[hashpos]; + /*outdated hash value, happens if particular value was not encountered in whole last window*/ + if(hash->val[hashpos] != (int)hashval) break; + } + } + + if(lazymatching) { + if(!lazy && length >= 3 && length <= maxlazymatch && length < MAX_SUPPORTED_DEFLATE_LENGTH) { + lazy = 1; + lazylength = length; + lazyoffset = offset; + continue; /*try the next byte*/ + } + if(lazy) { + lazy = 0; + if(pos == 0) ERROR_BREAK(81); + if(length > lazylength + 1) { + /*push the previous character as literal*/ + if(!uivector_push_back(out, in[pos - 1])) ERROR_BREAK(83 /*alloc fail*/); + } else { + length = lazylength; + offset = lazyoffset; + hash->head[hashval] = -1; /*the same hashchain update will be done, this ensures no wrong alteration*/ + hash->headz[numzeros] = -1; /*idem*/ + --pos; + } + } + } + if(length >= 3 && offset > windowsize) ERROR_BREAK(86 /*too big (or overflown negative) offset*/); + + /*encode it as length/distance pair or literal value*/ + if(length < 3) /*only lengths of 3 or higher are supported as length/distance pair*/ { + if(!uivector_push_back(out, in[pos])) ERROR_BREAK(83 /*alloc fail*/); + } else if(length < minmatch || (length == 3 && offset > 4096)) { + /*compensate for the fact that longer offsets have more extra bits, a + length of only 3 may be not worth it then*/ + if(!uivector_push_back(out, in[pos])) ERROR_BREAK(83 /*alloc fail*/); + } else { + addLengthDistance(out, length, offset); + for(i = 1; i < length; ++i) { + ++pos; + wpos = pos & (windowsize - 1); + hashval = getHash(in, insize, pos); + if(usezeros && hashval == 0) { + if(numzeros == 0) numzeros = countZeros(in, insize, pos); + else if(pos + numzeros > insize || in[pos + numzeros - 1] != 0) --numzeros; + } else { + numzeros = 0; + } + updateHashChain(hash, wpos, hashval, numzeros); + } + } + } /*end of the loop through each character of input*/ + + return error; +} + +/* /////////////////////////////////////////////////////////////////////////// */ + +static unsigned deflateNoCompression(ucvector* out, const unsigned char* data, size_t datasize) { + /*non compressed deflate block data: 1 bit BFINAL,2 bits BTYPE,(5 bits): it jumps to start of next byte, + 2 bytes LEN, 2 bytes NLEN, LEN bytes literal DATA*/ + + size_t i, numdeflateblocks = (datasize + 65534u) / 65535u; + unsigned datapos = 0; + for(i = 0; i != numdeflateblocks; ++i) { + unsigned BFINAL, BTYPE, LEN, NLEN; + unsigned char firstbyte; + size_t pos = out->size; + + BFINAL = (i == numdeflateblocks - 1); + BTYPE = 0; + + LEN = 65535; + if(datasize - datapos < 65535u) LEN = (unsigned)datasize - datapos; + NLEN = 65535 - LEN; + + if(!ucvector_resize(out, out->size + LEN + 5)) return 83; /*alloc fail*/ + + firstbyte = (unsigned char)(BFINAL + ((BTYPE & 1u) << 1u) + ((BTYPE & 2u) << 1u)); + out->data[pos + 0] = firstbyte; + out->data[pos + 1] = (unsigned char)(LEN & 255); + out->data[pos + 2] = (unsigned char)(LEN >> 8u); + out->data[pos + 3] = (unsigned char)(NLEN & 255); + out->data[pos + 4] = (unsigned char)(NLEN >> 8u); + lodepng_memcpy(out->data + pos + 5, data + datapos, LEN); + datapos += LEN; + } + + return 0; +} + +/* +write the lz77-encoded data, which has lit, len and dist codes, to compressed stream using huffman trees. +tree_ll: the tree for lit and len codes. +tree_d: the tree for distance codes. +*/ +static void writeLZ77data(LodePNGBitWriter* writer, const uivector* lz77_encoded, + const HuffmanTree* tree_ll, const HuffmanTree* tree_d) { + size_t i = 0; + for(i = 0; i != lz77_encoded->size; ++i) { + unsigned val = lz77_encoded->data[i]; + writeBitsReversed(writer, tree_ll->codes[val], tree_ll->lengths[val]); + if(val > 256) /*for a length code, 3 more things have to be added*/ { + unsigned length_index = val - FIRST_LENGTH_CODE_INDEX; + unsigned n_length_extra_bits = LENGTHEXTRA[length_index]; + unsigned length_extra_bits = lz77_encoded->data[++i]; + + unsigned distance_code = lz77_encoded->data[++i]; + + unsigned distance_index = distance_code; + unsigned n_distance_extra_bits = DISTANCEEXTRA[distance_index]; + unsigned distance_extra_bits = lz77_encoded->data[++i]; + + writeBits(writer, length_extra_bits, n_length_extra_bits); + writeBitsReversed(writer, tree_d->codes[distance_code], tree_d->lengths[distance_code]); + writeBits(writer, distance_extra_bits, n_distance_extra_bits); + } + } +} + +/*Deflate for a block of type "dynamic", that is, with freely, optimally, created huffman trees*/ +static unsigned deflateDynamic(LodePNGBitWriter* writer, Hash* hash, + const unsigned char* data, size_t datapos, size_t dataend, + const LodePNGCompressSettings* settings, unsigned final) { + unsigned error = 0; + + /* + A block is compressed as follows: The PNG data is lz77 encoded, resulting in + literal bytes and length/distance pairs. This is then huffman compressed with + two huffman trees. One huffman tree is used for the lit and len values ("ll"), + another huffman tree is used for the dist values ("d"). These two trees are + stored using their code lengths, and to compress even more these code lengths + are also run-length encoded and huffman compressed. This gives a huffman tree + of code lengths "cl". The code lengths used to describe this third tree are + the code length code lengths ("clcl"). + */ + + /*The lz77 encoded data, represented with integers since there will also be length and distance codes in it*/ + uivector lz77_encoded; + HuffmanTree tree_ll; /*tree for lit,len values*/ + HuffmanTree tree_d; /*tree for distance codes*/ + HuffmanTree tree_cl; /*tree for encoding the code lengths representing tree_ll and tree_d*/ + unsigned* frequencies_ll = 0; /*frequency of lit,len codes*/ + unsigned* frequencies_d = 0; /*frequency of dist codes*/ + unsigned* frequencies_cl = 0; /*frequency of code length codes*/ + unsigned* bitlen_lld = 0; /*lit,len,dist code lengths (int bits), literally (without repeat codes).*/ + unsigned* bitlen_lld_e = 0; /*bitlen_lld encoded with repeat codes (this is a rudimentary run length compression)*/ + size_t datasize = dataend - datapos; + + /* + If we could call "bitlen_cl" the the code length code lengths ("clcl"), that is the bit lengths of codes to represent + tree_cl in CLCL_ORDER, then due to the huffman compression of huffman tree representations ("two levels"), there are + some analogies: + bitlen_lld is to tree_cl what data is to tree_ll and tree_d. + bitlen_lld_e is to bitlen_lld what lz77_encoded is to data. + bitlen_cl is to bitlen_lld_e what bitlen_lld is to lz77_encoded. + */ + + unsigned BFINAL = final; + size_t i; + size_t numcodes_ll, numcodes_d, numcodes_lld, numcodes_lld_e, numcodes_cl; + unsigned HLIT, HDIST, HCLEN; + + uivector_init(&lz77_encoded); + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + HuffmanTree_init(&tree_cl); + /* could fit on stack, but >1KB is on the larger side so allocate instead */ + frequencies_ll = (unsigned*)lodepng_malloc(286 * sizeof(*frequencies_ll)); + frequencies_d = (unsigned*)lodepng_malloc(30 * sizeof(*frequencies_d)); + frequencies_cl = (unsigned*)lodepng_malloc(NUM_CODE_LENGTH_CODES * sizeof(*frequencies_cl)); + + if(!frequencies_ll || !frequencies_d || !frequencies_cl) error = 83; /*alloc fail*/ + + /*This while loop never loops due to a break at the end, it is here to + allow breaking out of it to the cleanup phase on error conditions.*/ + while(!error) { + lodepng_memset(frequencies_ll, 0, 286 * sizeof(*frequencies_ll)); + lodepng_memset(frequencies_d, 0, 30 * sizeof(*frequencies_d)); + lodepng_memset(frequencies_cl, 0, NUM_CODE_LENGTH_CODES * sizeof(*frequencies_cl)); + + if(settings->use_lz77) { + error = encodeLZ77(&lz77_encoded, hash, data, datapos, dataend, settings->windowsize, + settings->minmatch, settings->nicematch, settings->lazymatching); + if(error) break; + } else { + if(!uivector_resize(&lz77_encoded, datasize)) ERROR_BREAK(83 /*alloc fail*/); + for(i = datapos; i < dataend; ++i) lz77_encoded.data[i - datapos] = data[i]; /*no LZ77, but still will be Huffman compressed*/ + } + + /*Count the frequencies of lit, len and dist codes*/ + for(i = 0; i != lz77_encoded.size; ++i) { + unsigned symbol = lz77_encoded.data[i]; + ++frequencies_ll[symbol]; + if(symbol > 256) { + unsigned dist = lz77_encoded.data[i + 2]; + ++frequencies_d[dist]; + i += 3; + } + } + frequencies_ll[256] = 1; /*there will be exactly 1 end code, at the end of the block*/ + + /*Make both huffman trees, one for the lit and len codes, one for the dist codes*/ + error = HuffmanTree_makeFromFrequencies(&tree_ll, frequencies_ll, 257, 286, 15); + if(error) break; + /*2, not 1, is chosen for mincodes: some buggy PNG decoders require at least 2 symbols in the dist tree*/ + error = HuffmanTree_makeFromFrequencies(&tree_d, frequencies_d, 2, 30, 15); + if(error) break; + + numcodes_ll = LODEPNG_MIN(tree_ll.numcodes, 286); + numcodes_d = LODEPNG_MIN(tree_d.numcodes, 30); + /*store the code lengths of both generated trees in bitlen_lld*/ + numcodes_lld = numcodes_ll + numcodes_d; + bitlen_lld = (unsigned*)lodepng_malloc(numcodes_lld * sizeof(*bitlen_lld)); + /*numcodes_lld_e never needs more size than bitlen_lld*/ + bitlen_lld_e = (unsigned*)lodepng_malloc(numcodes_lld * sizeof(*bitlen_lld_e)); + if(!bitlen_lld || !bitlen_lld_e) ERROR_BREAK(83); /*alloc fail*/ + numcodes_lld_e = 0; + + for(i = 0; i != numcodes_ll; ++i) bitlen_lld[i] = tree_ll.lengths[i]; + for(i = 0; i != numcodes_d; ++i) bitlen_lld[numcodes_ll + i] = tree_d.lengths[i]; + + /*run-length compress bitlen_ldd into bitlen_lld_e by using repeat codes 16 (copy length 3-6 times), + 17 (3-10 zeroes), 18 (11-138 zeroes)*/ + for(i = 0; i != numcodes_lld; ++i) { + unsigned j = 0; /*amount of repetitions*/ + while(i + j + 1 < numcodes_lld && bitlen_lld[i + j + 1] == bitlen_lld[i]) ++j; + + if(bitlen_lld[i] == 0 && j >= 2) /*repeat code for zeroes*/ { + ++j; /*include the first zero*/ + if(j <= 10) /*repeat code 17 supports max 10 zeroes*/ { + bitlen_lld_e[numcodes_lld_e++] = 17; + bitlen_lld_e[numcodes_lld_e++] = j - 3; + } else /*repeat code 18 supports max 138 zeroes*/ { + if(j > 138) j = 138; + bitlen_lld_e[numcodes_lld_e++] = 18; + bitlen_lld_e[numcodes_lld_e++] = j - 11; + } + i += (j - 1); + } else if(j >= 3) /*repeat code for value other than zero*/ { + size_t k; + unsigned num = j / 6u, rest = j % 6u; + bitlen_lld_e[numcodes_lld_e++] = bitlen_lld[i]; + for(k = 0; k < num; ++k) { + bitlen_lld_e[numcodes_lld_e++] = 16; + bitlen_lld_e[numcodes_lld_e++] = 6 - 3; + } + if(rest >= 3) { + bitlen_lld_e[numcodes_lld_e++] = 16; + bitlen_lld_e[numcodes_lld_e++] = rest - 3; + } + else j -= rest; + i += j; + } else /*too short to benefit from repeat code*/ { + bitlen_lld_e[numcodes_lld_e++] = bitlen_lld[i]; + } + } + + /*generate tree_cl, the huffmantree of huffmantrees*/ + for(i = 0; i != numcodes_lld_e; ++i) { + ++frequencies_cl[bitlen_lld_e[i]]; + /*after a repeat code come the bits that specify the number of repetitions, + those don't need to be in the frequencies_cl calculation*/ + if(bitlen_lld_e[i] >= 16) ++i; + } + + error = HuffmanTree_makeFromFrequencies(&tree_cl, frequencies_cl, + NUM_CODE_LENGTH_CODES, NUM_CODE_LENGTH_CODES, 7); + if(error) break; + + /*compute amount of code-length-code-lengths to output*/ + numcodes_cl = NUM_CODE_LENGTH_CODES; + /*trim zeros at the end (using CLCL_ORDER), but minimum size must be 4 (see HCLEN below)*/ + while(numcodes_cl > 4u && tree_cl.lengths[CLCL_ORDER[numcodes_cl - 1u]] == 0) { + numcodes_cl--; + } + + /* + Write everything into the output + + After the BFINAL and BTYPE, the dynamic block consists out of the following: + - 5 bits HLIT, 5 bits HDIST, 4 bits HCLEN + - (HCLEN+4)*3 bits code lengths of code length alphabet + - HLIT + 257 code lengths of lit/length alphabet (encoded using the code length + alphabet, + possible repetition codes 16, 17, 18) + - HDIST + 1 code lengths of distance alphabet (encoded using the code length + alphabet, + possible repetition codes 16, 17, 18) + - compressed data + - 256 (end code) + */ + + /*Write block type*/ + writeBits(writer, BFINAL, 1); + writeBits(writer, 0, 1); /*first bit of BTYPE "dynamic"*/ + writeBits(writer, 1, 1); /*second bit of BTYPE "dynamic"*/ + + /*write the HLIT, HDIST and HCLEN values*/ + /*all three sizes take trimmed ending zeroes into account, done either by HuffmanTree_makeFromFrequencies + or in the loop for numcodes_cl above, which saves space. */ + HLIT = (unsigned)(numcodes_ll - 257); + HDIST = (unsigned)(numcodes_d - 1); + HCLEN = (unsigned)(numcodes_cl - 4); + writeBits(writer, HLIT, 5); + writeBits(writer, HDIST, 5); + writeBits(writer, HCLEN, 4); + + /*write the code lengths of the code length alphabet ("bitlen_cl")*/ + for(i = 0; i != numcodes_cl; ++i) writeBits(writer, tree_cl.lengths[CLCL_ORDER[i]], 3); + + /*write the lengths of the lit/len AND the dist alphabet*/ + for(i = 0; i != numcodes_lld_e; ++i) { + writeBitsReversed(writer, tree_cl.codes[bitlen_lld_e[i]], tree_cl.lengths[bitlen_lld_e[i]]); + /*extra bits of repeat codes*/ + if(bitlen_lld_e[i] == 16) writeBits(writer, bitlen_lld_e[++i], 2); + else if(bitlen_lld_e[i] == 17) writeBits(writer, bitlen_lld_e[++i], 3); + else if(bitlen_lld_e[i] == 18) writeBits(writer, bitlen_lld_e[++i], 7); + } + + /*write the compressed data symbols*/ + writeLZ77data(writer, &lz77_encoded, &tree_ll, &tree_d); + /*error: the length of the end code 256 must be larger than 0*/ + if(tree_ll.lengths[256] == 0) ERROR_BREAK(64); + + /*write the end code*/ + writeBitsReversed(writer, tree_ll.codes[256], tree_ll.lengths[256]); + + break; /*end of error-while*/ + } + + /*cleanup*/ + uivector_cleanup(&lz77_encoded); + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + HuffmanTree_cleanup(&tree_cl); + lodepng_free(frequencies_ll); + lodepng_free(frequencies_d); + lodepng_free(frequencies_cl); + lodepng_free(bitlen_lld); + lodepng_free(bitlen_lld_e); + + return error; +} + +static unsigned deflateFixed(LodePNGBitWriter* writer, Hash* hash, + const unsigned char* data, + size_t datapos, size_t dataend, + const LodePNGCompressSettings* settings, unsigned final) { + HuffmanTree tree_ll; /*tree for literal values and length codes*/ + HuffmanTree tree_d; /*tree for distance codes*/ + + unsigned BFINAL = final; + unsigned error = 0; + size_t i; + + HuffmanTree_init(&tree_ll); + HuffmanTree_init(&tree_d); + + error = generateFixedLitLenTree(&tree_ll); + if(!error) error = generateFixedDistanceTree(&tree_d); + + if(!error) { + writeBits(writer, BFINAL, 1); + writeBits(writer, 1, 1); /*first bit of BTYPE*/ + writeBits(writer, 0, 1); /*second bit of BTYPE*/ + + if(settings->use_lz77) /*LZ77 encoded*/ { + uivector lz77_encoded; + uivector_init(&lz77_encoded); + error = encodeLZ77(&lz77_encoded, hash, data, datapos, dataend, settings->windowsize, + settings->minmatch, settings->nicematch, settings->lazymatching); + if(!error) writeLZ77data(writer, &lz77_encoded, &tree_ll, &tree_d); + uivector_cleanup(&lz77_encoded); + } else /*no LZ77, but still will be Huffman compressed*/ { + for(i = datapos; i < dataend; ++i) { + writeBitsReversed(writer, tree_ll.codes[data[i]], tree_ll.lengths[data[i]]); + } + } + /*add END code*/ + if(!error) writeBitsReversed(writer,tree_ll.codes[256], tree_ll.lengths[256]); + } + + /*cleanup*/ + HuffmanTree_cleanup(&tree_ll); + HuffmanTree_cleanup(&tree_d); + + return error; +} + +static unsigned lodepng_deflatev(ucvector* out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) { + unsigned error = 0; + size_t i, blocksize, numdeflateblocks; + Hash hash; + LodePNGBitWriter writer; + + LodePNGBitWriter_init(&writer, out); + + if(settings->btype > 2) return 61; + else if(settings->btype == 0) return deflateNoCompression(out, in, insize); + else if(settings->btype == 1) blocksize = insize; + else /*if(settings->btype == 2)*/ { + /*on PNGs, deflate blocks of 65-262k seem to give most dense encoding*/ + blocksize = insize / 8u + 8; + if(blocksize < 65536) blocksize = 65536; + if(blocksize > 262144) blocksize = 262144; + } + + numdeflateblocks = (insize + blocksize - 1) / blocksize; + if(numdeflateblocks == 0) numdeflateblocks = 1; + + error = hash_init(&hash, settings->windowsize); + + if(!error) { + for(i = 0; i != numdeflateblocks && !error; ++i) { + unsigned final = (i == numdeflateblocks - 1); + size_t start = i * blocksize; + size_t end = start + blocksize; + if(end > insize) end = insize; + + if(settings->btype == 1) error = deflateFixed(&writer, &hash, in, start, end, settings, final); + else if(settings->btype == 2) error = deflateDynamic(&writer, &hash, in, start, end, settings, final); + } + } + + hash_cleanup(&hash); + + return error; +} + +unsigned lodepng_deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) { + ucvector v = ucvector_init(*out, *outsize); + unsigned error = lodepng_deflatev(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + return error; +} + +static unsigned deflate(unsigned char** out, size_t* outsize, + const unsigned char* in, size_t insize, + const LodePNGCompressSettings* settings) { + if(settings->custom_deflate) { + unsigned error = settings->custom_deflate(out, outsize, in, insize, settings); + /*the custom deflate is allowed to have its own error codes, however, we translate it to code 111*/ + return error ? 111 : 0; + } else { + return lodepng_deflate(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Adler32 / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +static unsigned update_adler32(unsigned adler, const unsigned char* data, unsigned len) { + unsigned s1 = adler & 0xffffu; + unsigned s2 = (adler >> 16u) & 0xffffu; + + while(len != 0u) { + unsigned i; + /*at least 5552 sums can be done before the sums overflow, saving a lot of module divisions*/ + unsigned amount = len > 5552u ? 5552u : len; + len -= amount; + for(i = 0; i != amount; ++i) { + s1 += (*data++); + s2 += s1; + } + s1 %= 65521u; + s2 %= 65521u; + } + + return (s2 << 16u) | s1; +} + +/*Return the adler32 of the bytes data[0..len-1]*/ +static unsigned adler32(const unsigned char* data, unsigned len) { + return update_adler32(1u, data, len); +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Zlib / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_DECODER + +static unsigned lodepng_zlib_decompressv(ucvector* out, + const unsigned char* in, size_t insize, + const LodePNGDecompressSettings* settings) { + unsigned error = 0; + unsigned CM, CINFO, FDICT; + + if(insize < 2) return 53; /*error, size of zlib data too small*/ + /*read information from zlib header*/ + if((in[0] * 256 + in[1]) % 31 != 0) { + /*error: 256 * in[0] + in[1] must be a multiple of 31, the FCHECK value is supposed to be made that way*/ + return 24; + } + + CM = in[0] & 15; + CINFO = (in[0] >> 4) & 15; + /*FCHECK = in[1] & 31;*/ /*FCHECK is already tested above*/ + FDICT = (in[1] >> 5) & 1; + /*FLEVEL = (in[1] >> 6) & 3;*/ /*FLEVEL is not used here*/ + + if(CM != 8 || CINFO > 7) { + /*error: only compression method 8: inflate with sliding window of 32k is supported by the PNG spec*/ + return 25; + } + if(FDICT != 0) { + /*error: the specification of PNG says about the zlib stream: + "The additional flags shall not specify a preset dictionary."*/ + return 26; + } + + error = inflatev(out, in + 2, insize - 2, settings); + if(error) return error; + + if(!settings->ignore_adler32) { + unsigned ADLER32 = lodepng_read32bitInt(&in[insize - 4]); + unsigned checksum = adler32(out->data, (unsigned)(out->size)); + if(checksum != ADLER32) return 58; /*error, adler checksum not correct, data must be corrupted*/ + } + + return 0; /*no error*/ +} + + +unsigned lodepng_zlib_decompress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGDecompressSettings* settings) { + ucvector v = ucvector_init(*out, *outsize); + unsigned error = lodepng_zlib_decompressv(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + return error; +} + +/*expected_size is expected output size, to avoid intermediate allocations. Set to 0 if not known. */ +static unsigned zlib_decompress(unsigned char** out, size_t* outsize, size_t expected_size, + const unsigned char* in, size_t insize, const LodePNGDecompressSettings* settings) { + unsigned error; + if(settings->custom_zlib) { + error = settings->custom_zlib(out, outsize, in, insize, settings); + if(error) { + /*the custom zlib is allowed to have its own error codes, however, we translate it to code 110*/ + error = 110; + /*if there's a max output size, and the custom zlib returned error, then indicate that error instead*/ + if(settings->max_output_size && *outsize > settings->max_output_size) error = 109; + } + } else { + ucvector v = ucvector_init(*out, *outsize); + if(expected_size) { + /*reserve the memory to avoid intermediate reallocations*/ + ucvector_resize(&v, *outsize + expected_size); + v.size = *outsize; + } + error = lodepng_zlib_decompressv(&v, in, insize, settings); + *out = v.data; + *outsize = v.size; + } + return error; +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#ifdef LODEPNG_COMPILE_ENCODER + +unsigned lodepng_zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) { + size_t i; + unsigned error; + unsigned char* deflatedata = 0; + size_t deflatesize = 0; + + error = deflate(&deflatedata, &deflatesize, in, insize, settings); + + *out = NULL; + *outsize = 0; + if(!error) { + *outsize = deflatesize + 6; + *out = (unsigned char*)lodepng_malloc(*outsize); + if(!*out) error = 83; /*alloc fail*/ + } + + if(!error) { + unsigned ADLER32 = adler32(in, (unsigned)insize); + /*zlib data: 1 byte CMF (CM+CINFO), 1 byte FLG, deflate data, 4 byte ADLER32 checksum of the Decompressed data*/ + unsigned CMF = 120; /*0b01111000: CM 8, CINFO 7. With CINFO 7, any window size up to 32768 can be used.*/ + unsigned FLEVEL = 0; + unsigned FDICT = 0; + unsigned CMFFLG = 256 * CMF + FDICT * 32 + FLEVEL * 64; + unsigned FCHECK = 31 - CMFFLG % 31; + CMFFLG += FCHECK; + + (*out)[0] = (unsigned char)(CMFFLG >> 8); + (*out)[1] = (unsigned char)(CMFFLG & 255); + for(i = 0; i != deflatesize; ++i) (*out)[i + 2] = deflatedata[i]; + lodepng_set32bitInt(&(*out)[*outsize - 4], ADLER32); + } + + lodepng_free(deflatedata); + return error; +} + +/* compress using the default or custom zlib function */ +static unsigned zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) { + if(settings->custom_zlib) { + unsigned error = settings->custom_zlib(out, outsize, in, insize, settings); + /*the custom zlib is allowed to have its own error codes, however, we translate it to code 111*/ + return error ? 111 : 0; + } else { + return lodepng_zlib_compress(out, outsize, in, insize, settings); + } +} + +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#else /*no LODEPNG_COMPILE_ZLIB*/ + +#ifdef LODEPNG_COMPILE_DECODER +static unsigned zlib_decompress(unsigned char** out, size_t* outsize, size_t expected_size, + const unsigned char* in, size_t insize, const LodePNGDecompressSettings* settings) { + if(!settings->custom_zlib) return 87; /*no custom zlib function provided */ + (void)expected_size; + return settings->custom_zlib(out, outsize, in, insize, settings); +} +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER +static unsigned zlib_compress(unsigned char** out, size_t* outsize, const unsigned char* in, + size_t insize, const LodePNGCompressSettings* settings) { + if(!settings->custom_zlib) return 87; /*no custom zlib function provided */ + return settings->custom_zlib(out, outsize, in, insize, settings); +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#endif /*LODEPNG_COMPILE_ZLIB*/ + +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_ENCODER + +/*this is a good tradeoff between speed and compression ratio*/ +#define DEFAULT_WINDOWSIZE 2048 + +void lodepng_compress_settings_init(LodePNGCompressSettings* settings) { + /*compress with dynamic huffman tree (not in the mathematical sense, just not the predefined one)*/ + settings->btype = 2; + settings->use_lz77 = 1; + settings->windowsize = DEFAULT_WINDOWSIZE; + settings->minmatch = 3; + settings->nicematch = 128; + settings->lazymatching = 1; + + settings->custom_zlib = 0; + settings->custom_deflate = 0; + settings->custom_context = 0; +} + +const LodePNGCompressSettings lodepng_default_compress_settings = {2, 1, DEFAULT_WINDOWSIZE, 3, 128, 1, 0, 0, 0}; + + +#endif /*LODEPNG_COMPILE_ENCODER*/ + +#ifdef LODEPNG_COMPILE_DECODER + +void lodepng_decompress_settings_init(LodePNGDecompressSettings* settings) { + settings->ignore_adler32 = 0; + settings->ignore_nlen = 0; + settings->max_output_size = 0; + + settings->custom_zlib = 0; + settings->custom_inflate = 0; + settings->custom_context = 0; +} + +const LodePNGDecompressSettings lodepng_default_decompress_settings = {0, 0, 0, 0, 0, 0}; + +#endif /*LODEPNG_COMPILE_DECODER*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // End of Zlib related code. Begin of PNG related code. // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_PNG + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / CRC32 / */ +/* ////////////////////////////////////////////////////////////////////////// */ + + +#ifdef LODEPNG_COMPILE_CRC +/* CRC polynomial: 0xedb88320 */ +static unsigned lodepng_crc32_table[256] = { + 0u, 1996959894u, 3993919788u, 2567524794u, 124634137u, 1886057615u, 3915621685u, 2657392035u, + 249268274u, 2044508324u, 3772115230u, 2547177864u, 162941995u, 2125561021u, 3887607047u, 2428444049u, + 498536548u, 1789927666u, 4089016648u, 2227061214u, 450548861u, 1843258603u, 4107580753u, 2211677639u, + 325883990u, 1684777152u, 4251122042u, 2321926636u, 335633487u, 1661365465u, 4195302755u, 2366115317u, + 997073096u, 1281953886u, 3579855332u, 2724688242u, 1006888145u, 1258607687u, 3524101629u, 2768942443u, + 901097722u, 1119000684u, 3686517206u, 2898065728u, 853044451u, 1172266101u, 3705015759u, 2882616665u, + 651767980u, 1373503546u, 3369554304u, 3218104598u, 565507253u, 1454621731u, 3485111705u, 3099436303u, + 671266974u, 1594198024u, 3322730930u, 2970347812u, 795835527u, 1483230225u, 3244367275u, 3060149565u, + 1994146192u, 31158534u, 2563907772u, 4023717930u, 1907459465u, 112637215u, 2680153253u, 3904427059u, + 2013776290u, 251722036u, 2517215374u, 3775830040u, 2137656763u, 141376813u, 2439277719u, 3865271297u, + 1802195444u, 476864866u, 2238001368u, 4066508878u, 1812370925u, 453092731u, 2181625025u, 4111451223u, + 1706088902u, 314042704u, 2344532202u, 4240017532u, 1658658271u, 366619977u, 2362670323u, 4224994405u, + 1303535960u, 984961486u, 2747007092u, 3569037538u, 1256170817u, 1037604311u, 2765210733u, 3554079995u, + 1131014506u, 879679996u, 2909243462u, 3663771856u, 1141124467u, 855842277u, 2852801631u, 3708648649u, + 1342533948u, 654459306u, 3188396048u, 3373015174u, 1466479909u, 544179635u, 3110523913u, 3462522015u, + 1591671054u, 702138776u, 2966460450u, 3352799412u, 1504918807u, 783551873u, 3082640443u, 3233442989u, + 3988292384u, 2596254646u, 62317068u, 1957810842u, 3939845945u, 2647816111u, 81470997u, 1943803523u, + 3814918930u, 2489596804u, 225274430u, 2053790376u, 3826175755u, 2466906013u, 167816743u, 2097651377u, + 4027552580u, 2265490386u, 503444072u, 1762050814u, 4150417245u, 2154129355u, 426522225u, 1852507879u, + 4275313526u, 2312317920u, 282753626u, 1742555852u, 4189708143u, 2394877945u, 397917763u, 1622183637u, + 3604390888u, 2714866558u, 953729732u, 1340076626u, 3518719985u, 2797360999u, 1068828381u, 1219638859u, + 3624741850u, 2936675148u, 906185462u, 1090812512u, 3747672003u, 2825379669u, 829329135u, 1181335161u, + 3412177804u, 3160834842u, 628085408u, 1382605366u, 3423369109u, 3138078467u, 570562233u, 1426400815u, + 3317316542u, 2998733608u, 733239954u, 1555261956u, 3268935591u, 3050360625u, 752459403u, 1541320221u, + 2607071920u, 3965973030u, 1969922972u, 40735498u, 2617837225u, 3943577151u, 1913087877u, 83908371u, + 2512341634u, 3803740692u, 2075208622u, 213261112u, 2463272603u, 3855990285u, 2094854071u, 198958881u, + 2262029012u, 4057260610u, 1759359992u, 534414190u, 2176718541u, 4139329115u, 1873836001u, 414664567u, + 2282248934u, 4279200368u, 1711684554u, 285281116u, 2405801727u, 4167216745u, 1634467795u, 376229701u, + 2685067896u, 3608007406u, 1308918612u, 956543938u, 2808555105u, 3495958263u, 1231636301u, 1047427035u, + 2932959818u, 3654703836u, 1088359270u, 936918000u, 2847714899u, 3736837829u, 1202900863u, 817233897u, + 3183342108u, 3401237130u, 1404277552u, 615818150u, 3134207493u, 3453421203u, 1423857449u, 601450431u, + 3009837614u, 3294710456u, 1567103746u, 711928724u, 3020668471u, 3272380065u, 1510334235u, 755167117u +}; + +/*Return the CRC of the bytes buf[0..len-1].*/ +unsigned lodepng_crc32(const unsigned char* data, size_t length) { + unsigned r = 0xffffffffu; + size_t i; + for(i = 0; i < length; ++i) { + r = lodepng_crc32_table[(r ^ data[i]) & 0xffu] ^ (r >> 8u); + } + return r ^ 0xffffffffu; +} +#else /* LODEPNG_COMPILE_CRC */ +/*in this case, the function is only declared here, and must be defined externally +so that it will be linked in*/ +unsigned lodepng_crc32(const unsigned char* data, size_t length); +#endif /* LODEPNG_COMPILE_CRC */ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Reading and writing PNG color channel bits / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/* The color channel bits of less-than-8-bit pixels are read with the MSB of bytes first, +so LodePNGBitWriter and LodePNGBitReader can't be used for those. */ + +static unsigned char readBitFromReversedStream(size_t* bitpointer, const unsigned char* bitstream) { + unsigned char result = (unsigned char)((bitstream[(*bitpointer) >> 3] >> (7 - ((*bitpointer) & 0x7))) & 1); + ++(*bitpointer); + return result; +} + +/* TODO: make this faster */ +static unsigned readBitsFromReversedStream(size_t* bitpointer, const unsigned char* bitstream, size_t nbits) { + unsigned result = 0; + size_t i; + for(i = 0 ; i < nbits; ++i) { + result <<= 1u; + result |= (unsigned)readBitFromReversedStream(bitpointer, bitstream); + } + return result; +} + +static void setBitOfReversedStream(size_t* bitpointer, unsigned char* bitstream, unsigned char bit) { + /*the current bit in bitstream may be 0 or 1 for this to work*/ + if(bit == 0) bitstream[(*bitpointer) >> 3u] &= (unsigned char)(~(1u << (7u - ((*bitpointer) & 7u)))); + else bitstream[(*bitpointer) >> 3u] |= (1u << (7u - ((*bitpointer) & 7u))); + ++(*bitpointer); +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG chunks / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +unsigned lodepng_chunk_length(const unsigned char* chunk) { + return lodepng_read32bitInt(chunk); +} + +void lodepng_chunk_type(char type[5], const unsigned char* chunk) { + unsigned i; + for(i = 0; i != 4; ++i) type[i] = (char)chunk[4 + i]; + type[4] = 0; /*null termination char*/ +} + +unsigned char lodepng_chunk_type_equals(const unsigned char* chunk, const char* type) { + if(lodepng_strlen(type) != 4) return 0; + return (chunk[4] == type[0] && chunk[5] == type[1] && chunk[6] == type[2] && chunk[7] == type[3]); +} + +unsigned char lodepng_chunk_ancillary(const unsigned char* chunk) { + return((chunk[4] & 32) != 0); +} + +unsigned char lodepng_chunk_private(const unsigned char* chunk) { + return((chunk[6] & 32) != 0); +} + +unsigned char lodepng_chunk_safetocopy(const unsigned char* chunk) { + return((chunk[7] & 32) != 0); +} + +unsigned char* lodepng_chunk_data(unsigned char* chunk) { + return &chunk[8]; +} + +const unsigned char* lodepng_chunk_data_const(const unsigned char* chunk) { + return &chunk[8]; +} + +unsigned lodepng_chunk_check_crc(const unsigned char* chunk) { + unsigned length = lodepng_chunk_length(chunk); + unsigned CRC = lodepng_read32bitInt(&chunk[length + 8]); + /*the CRC is taken of the data and the 4 chunk type letters, not the length*/ + unsigned checksum = lodepng_crc32(&chunk[4], length + 4); + if(CRC != checksum) return 1; + else return 0; +} + +void lodepng_chunk_generate_crc(unsigned char* chunk) { + unsigned length = lodepng_chunk_length(chunk); + unsigned CRC = lodepng_crc32(&chunk[4], length + 4); + lodepng_set32bitInt(chunk + 8 + length, CRC); +} + +unsigned char* lodepng_chunk_next(unsigned char* chunk, unsigned char* end) { + size_t available_size = (size_t)(end - chunk); + if(chunk >= end || available_size < 12) return end; /*too small to contain a chunk*/ + if(chunk[0] == 0x89 && chunk[1] == 0x50 && chunk[2] == 0x4e && chunk[3] == 0x47 + && chunk[4] == 0x0d && chunk[5] == 0x0a && chunk[6] == 0x1a && chunk[7] == 0x0a) { + /* Is PNG magic header at start of PNG file. Jump to first actual chunk. */ + return chunk + 8; + } else { + size_t total_chunk_length; + if(lodepng_addofl(lodepng_chunk_length(chunk), 12, &total_chunk_length)) return end; + if(total_chunk_length > available_size) return end; /*outside of range*/ + return chunk + total_chunk_length; + } +} + +const unsigned char* lodepng_chunk_next_const(const unsigned char* chunk, const unsigned char* end) { + size_t available_size = (size_t)(end - chunk); + if(chunk >= end || available_size < 12) return end; /*too small to contain a chunk*/ + if(chunk[0] == 0x89 && chunk[1] == 0x50 && chunk[2] == 0x4e && chunk[3] == 0x47 + && chunk[4] == 0x0d && chunk[5] == 0x0a && chunk[6] == 0x1a && chunk[7] == 0x0a) { + /* Is PNG magic header at start of PNG file. Jump to first actual chunk. */ + return chunk + 8; + } else { + size_t total_chunk_length; + if(lodepng_addofl(lodepng_chunk_length(chunk), 12, &total_chunk_length)) return end; + if(total_chunk_length > available_size) return end; /*outside of range*/ + return chunk + total_chunk_length; + } +} + +unsigned char* lodepng_chunk_find(unsigned char* chunk, unsigned char* end, const char type[5]) { + for(;;) { + if(chunk >= end || end - chunk < 12) return 0; /* past file end: chunk + 12 > end */ + if(lodepng_chunk_type_equals(chunk, type)) return chunk; + chunk = lodepng_chunk_next(chunk, end); + } +} + +const unsigned char* lodepng_chunk_find_const(const unsigned char* chunk, const unsigned char* end, const char type[5]) { + for(;;) { + if(chunk >= end || end - chunk < 12) return 0; /* past file end: chunk + 12 > end */ + if(lodepng_chunk_type_equals(chunk, type)) return chunk; + chunk = lodepng_chunk_next_const(chunk, end); + } +} + +unsigned lodepng_chunk_append(unsigned char** out, size_t* outsize, const unsigned char* chunk) { + unsigned i; + size_t total_chunk_length, new_length; + unsigned char *chunk_start, *new_buffer; + + if(lodepng_addofl(lodepng_chunk_length(chunk), 12, &total_chunk_length)) return 77; + if(lodepng_addofl(*outsize, total_chunk_length, &new_length)) return 77; + + new_buffer = (unsigned char*)lodepng_realloc(*out, new_length); + if(!new_buffer) return 83; /*alloc fail*/ + (*out) = new_buffer; + (*outsize) = new_length; + chunk_start = &(*out)[new_length - total_chunk_length]; + + for(i = 0; i != total_chunk_length; ++i) chunk_start[i] = chunk[i]; + + return 0; +} + +/*Sets length and name and allocates the space for data and crc but does not +set data or crc yet. Returns the start of the chunk in chunk. The start of +the data is at chunk + 8. To finalize chunk, add the data, then use +lodepng_chunk_generate_crc */ +static unsigned lodepng_chunk_init(unsigned char** chunk, + ucvector* out, + unsigned length, const char* type) { + size_t new_length = out->size; + if(lodepng_addofl(new_length, length, &new_length)) return 77; + if(lodepng_addofl(new_length, 12, &new_length)) return 77; + if(!ucvector_resize(out, new_length)) return 83; /*alloc fail*/ + *chunk = out->data + new_length - length - 12u; + + /*1: length*/ + lodepng_set32bitInt(*chunk, length); + + /*2: chunk name (4 letters)*/ + lodepng_memcpy(*chunk + 4, type, 4); + + return 0; +} + +/* like lodepng_chunk_create but with custom allocsize */ +static unsigned lodepng_chunk_createv(ucvector* out, + unsigned length, const char* type, const unsigned char* data) { + unsigned char* chunk; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, length, type)); + + /*3: the data*/ + lodepng_memcpy(chunk + 8, data, length); + + /*4: CRC (of the chunkname characters and the data)*/ + lodepng_chunk_generate_crc(chunk); + + return 0; +} + +unsigned lodepng_chunk_create(unsigned char** out, size_t* outsize, + unsigned length, const char* type, const unsigned char* data) { + ucvector v = ucvector_init(*out, *outsize); + unsigned error = lodepng_chunk_createv(&v, length, type, data); + *out = v.data; + *outsize = v.size; + return error; +} + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / Color types, channels, bits / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*checks if the colortype is valid and the bitdepth bd is allowed for this colortype. +Return value is a LodePNG error code.*/ +static unsigned checkColorValidity(LodePNGColorType colortype, unsigned bd) { + switch(colortype) { + case LCT_GREY: if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 || bd == 16)) return 37; break; + case LCT_RGB: if(!( bd == 8 || bd == 16)) return 37; break; + case LCT_PALETTE: if(!(bd == 1 || bd == 2 || bd == 4 || bd == 8 )) return 37; break; + case LCT_GREY_ALPHA: if(!( bd == 8 || bd == 16)) return 37; break; + case LCT_RGBA: if(!( bd == 8 || bd == 16)) return 37; break; + case LCT_MAX_OCTET_VALUE: return 31; /* invalid color type */ + default: return 31; /* invalid color type */ + } + return 0; /*allowed color type / bits combination*/ +} + +static unsigned getNumColorChannels(LodePNGColorType colortype) { + switch(colortype) { + case LCT_GREY: return 1; + case LCT_RGB: return 3; + case LCT_PALETTE: return 1; + case LCT_GREY_ALPHA: return 2; + case LCT_RGBA: return 4; + case LCT_MAX_OCTET_VALUE: return 0; /* invalid color type */ + default: return 0; /*invalid color type*/ + } +} + +static unsigned lodepng_get_bpp_lct(LodePNGColorType colortype, unsigned bitdepth) { + /*bits per pixel is amount of channels * bits per channel*/ + return getNumColorChannels(colortype) * bitdepth; +} + +/* ////////////////////////////////////////////////////////////////////////// */ + +void lodepng_color_mode_init(LodePNGColorMode* info) { + info->key_defined = 0; + info->key_r = info->key_g = info->key_b = 0; + info->colortype = LCT_RGBA; + info->bitdepth = 8; + info->palette = 0; + info->palettesize = 0; +} + +/*allocates palette memory if needed, and initializes all colors to black*/ +static void lodepng_color_mode_alloc_palette(LodePNGColorMode* info) { + size_t i; + /*if the palette is already allocated, it will have size 1024 so no reallocation needed in that case*/ + /*the palette must have room for up to 256 colors with 4 bytes each.*/ + if(!info->palette) info->palette = (unsigned char*)lodepng_malloc(1024); + if(!info->palette) return; /*alloc fail*/ + for(i = 0; i != 256; ++i) { + /*Initialize all unused colors with black, the value used for invalid palette indices. + This is an error according to the PNG spec, but common PNG decoders make it black instead. + That makes color conversion slightly faster due to no error handling needed.*/ + info->palette[i * 4 + 0] = 0; + info->palette[i * 4 + 1] = 0; + info->palette[i * 4 + 2] = 0; + info->palette[i * 4 + 3] = 255; + } +} + +void lodepng_color_mode_cleanup(LodePNGColorMode* info) { + lodepng_palette_clear(info); +} + +unsigned lodepng_color_mode_copy(LodePNGColorMode* dest, const LodePNGColorMode* source) { + lodepng_color_mode_cleanup(dest); + lodepng_memcpy(dest, source, sizeof(LodePNGColorMode)); + if(source->palette) { + dest->palette = (unsigned char*)lodepng_malloc(1024); + if(!dest->palette && source->palettesize) return 83; /*alloc fail*/ + lodepng_memcpy(dest->palette, source->palette, source->palettesize * 4); + } + return 0; +} + +LodePNGColorMode lodepng_color_mode_make(LodePNGColorType colortype, unsigned bitdepth) { + LodePNGColorMode result; + lodepng_color_mode_init(&result); + result.colortype = colortype; + result.bitdepth = bitdepth; + return result; +} + +static int lodepng_color_mode_equal(const LodePNGColorMode* a, const LodePNGColorMode* b) { + size_t i; + if(a->colortype != b->colortype) return 0; + if(a->bitdepth != b->bitdepth) return 0; + if(a->key_defined != b->key_defined) return 0; + if(a->key_defined) { + if(a->key_r != b->key_r) return 0; + if(a->key_g != b->key_g) return 0; + if(a->key_b != b->key_b) return 0; + } + if(a->palettesize != b->palettesize) return 0; + for(i = 0; i != a->palettesize * 4; ++i) { + if(a->palette[i] != b->palette[i]) return 0; + } + return 1; +} + +void lodepng_palette_clear(LodePNGColorMode* info) { + if(info->palette) lodepng_free(info->palette); + info->palette = 0; + info->palettesize = 0; +} + +unsigned lodepng_palette_add(LodePNGColorMode* info, + unsigned char r, unsigned char g, unsigned char b, unsigned char a) { + if(!info->palette) /*allocate palette if empty*/ { + lodepng_color_mode_alloc_palette(info); + if(!info->palette) return 83; /*alloc fail*/ + } + if(info->palettesize >= 256) { + return 108; /*too many palette values*/ + } + info->palette[4 * info->palettesize + 0] = r; + info->palette[4 * info->palettesize + 1] = g; + info->palette[4 * info->palettesize + 2] = b; + info->palette[4 * info->palettesize + 3] = a; + ++info->palettesize; + return 0; +} + +/*calculate bits per pixel out of colortype and bitdepth*/ +unsigned lodepng_get_bpp(const LodePNGColorMode* info) { + return lodepng_get_bpp_lct(info->colortype, info->bitdepth); +} + +unsigned lodepng_get_channels(const LodePNGColorMode* info) { + return getNumColorChannels(info->colortype); +} + +unsigned lodepng_is_greyscale_type(const LodePNGColorMode* info) { + return info->colortype == LCT_GREY || info->colortype == LCT_GREY_ALPHA; +} + +unsigned lodepng_is_alpha_type(const LodePNGColorMode* info) { + return (info->colortype & 4) != 0; /*4 or 6*/ +} + +unsigned lodepng_is_palette_type(const LodePNGColorMode* info) { + return info->colortype == LCT_PALETTE; +} + +unsigned lodepng_has_palette_alpha(const LodePNGColorMode* info) { + size_t i; + for(i = 0; i != info->palettesize; ++i) { + if(info->palette[i * 4 + 3] < 255) return 1; + } + return 0; +} + +unsigned lodepng_can_have_alpha(const LodePNGColorMode* info) { + return info->key_defined + || lodepng_is_alpha_type(info) + || lodepng_has_palette_alpha(info); +} + +static size_t lodepng_get_raw_size_lct(unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth) { + size_t bpp = lodepng_get_bpp_lct(colortype, bitdepth); + size_t n = (size_t)w * (size_t)h; + return ((n / 8u) * bpp) + ((n & 7u) * bpp + 7u) / 8u; +} + +size_t lodepng_get_raw_size(unsigned w, unsigned h, const LodePNGColorMode* color) { + return lodepng_get_raw_size_lct(w, h, color->colortype, color->bitdepth); +} + + +#ifdef LODEPNG_COMPILE_PNG + +/*in an idat chunk, each scanline is a multiple of 8 bits, unlike the lodepng output buffer, +and in addition has one extra byte per line: the filter byte. So this gives a larger +result than lodepng_get_raw_size. Set h to 1 to get the size of 1 row including filter byte. */ +static size_t lodepng_get_raw_size_idat(unsigned w, unsigned h, unsigned bpp) { + /* + 1 for the filter byte, and possibly plus padding bits per line. */ + /* Ignoring casts, the expression is equal to (w * bpp + 7) / 8 + 1, but avoids overflow of w * bpp */ + size_t line = ((size_t)(w / 8u) * bpp) + 1u + ((w & 7u) * bpp + 7u) / 8u; + return (size_t)h * line; +} + +#ifdef LODEPNG_COMPILE_DECODER +/*Safely checks whether size_t overflow can be caused due to amount of pixels. +This check is overcautious rather than precise. If this check indicates no overflow, +you can safely compute in a size_t (but not an unsigned): +-(size_t)w * (size_t)h * 8 +-amount of bytes in IDAT (including filter, padding and Adam7 bytes) +-amount of bytes in raw color model +Returns 1 if overflow possible, 0 if not. +*/ +static int lodepng_pixel_overflow(unsigned w, unsigned h, + const LodePNGColorMode* pngcolor, const LodePNGColorMode* rawcolor) { + size_t bpp = LODEPNG_MAX(lodepng_get_bpp(pngcolor), lodepng_get_bpp(rawcolor)); + size_t numpixels, total; + size_t line; /* bytes per line in worst case */ + + if(lodepng_mulofl((size_t)w, (size_t)h, &numpixels)) return 1; + if(lodepng_mulofl(numpixels, 8, &total)) return 1; /* bit pointer with 8-bit color, or 8 bytes per channel color */ + + /* Bytes per scanline with the expression "(w / 8u) * bpp) + ((w & 7u) * bpp + 7u) / 8u" */ + if(lodepng_mulofl((size_t)(w / 8u), bpp, &line)) return 1; + if(lodepng_addofl(line, ((w & 7u) * bpp + 7u) / 8u, &line)) return 1; + + if(lodepng_addofl(line, 5, &line)) return 1; /* 5 bytes overhead per line: 1 filterbyte, 4 for Adam7 worst case */ + if(lodepng_mulofl(line, h, &total)) return 1; /* Total bytes in worst case */ + + return 0; /* no overflow */ +} +#endif /*LODEPNG_COMPILE_DECODER*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + +static void LodePNGUnknownChunks_init(LodePNGInfo* info) { + unsigned i; + for(i = 0; i != 3; ++i) info->unknown_chunks_data[i] = 0; + for(i = 0; i != 3; ++i) info->unknown_chunks_size[i] = 0; +} + +static void LodePNGUnknownChunks_cleanup(LodePNGInfo* info) { + unsigned i; + for(i = 0; i != 3; ++i) lodepng_free(info->unknown_chunks_data[i]); +} + +static unsigned LodePNGUnknownChunks_copy(LodePNGInfo* dest, const LodePNGInfo* src) { + unsigned i; + + LodePNGUnknownChunks_cleanup(dest); + + for(i = 0; i != 3; ++i) { + size_t j; + dest->unknown_chunks_size[i] = src->unknown_chunks_size[i]; + dest->unknown_chunks_data[i] = (unsigned char*)lodepng_malloc(src->unknown_chunks_size[i]); + if(!dest->unknown_chunks_data[i] && dest->unknown_chunks_size[i]) return 83; /*alloc fail*/ + for(j = 0; j < src->unknown_chunks_size[i]; ++j) { + dest->unknown_chunks_data[i][j] = src->unknown_chunks_data[i][j]; + } + } + + return 0; +} + +/******************************************************************************/ + +static void LodePNGText_init(LodePNGInfo* info) { + info->text_num = 0; + info->text_keys = NULL; + info->text_strings = NULL; +} + +static void LodePNGText_cleanup(LodePNGInfo* info) { + size_t i; + for(i = 0; i != info->text_num; ++i) { + string_cleanup(&info->text_keys[i]); + string_cleanup(&info->text_strings[i]); + } + lodepng_free(info->text_keys); + lodepng_free(info->text_strings); +} + +static unsigned LodePNGText_copy(LodePNGInfo* dest, const LodePNGInfo* source) { + size_t i = 0; + dest->text_keys = NULL; + dest->text_strings = NULL; + dest->text_num = 0; + for(i = 0; i != source->text_num; ++i) { + CERROR_TRY_RETURN(lodepng_add_text(dest, source->text_keys[i], source->text_strings[i])); + } + return 0; +} + +static unsigned lodepng_add_text_sized(LodePNGInfo* info, const char* key, const char* str, size_t size) { + char** new_keys = (char**)(lodepng_realloc(info->text_keys, sizeof(char*) * (info->text_num + 1))); + char** new_strings = (char**)(lodepng_realloc(info->text_strings, sizeof(char*) * (info->text_num + 1))); + + if(new_keys) info->text_keys = new_keys; + if(new_strings) info->text_strings = new_strings; + + if(!new_keys || !new_strings) return 83; /*alloc fail*/ + + ++info->text_num; + info->text_keys[info->text_num - 1] = alloc_string(key); + info->text_strings[info->text_num - 1] = alloc_string_sized(str, size); + if(!info->text_keys[info->text_num - 1] || !info->text_strings[info->text_num - 1]) return 83; /*alloc fail*/ + + return 0; +} + +unsigned lodepng_add_text(LodePNGInfo* info, const char* key, const char* str) { + return lodepng_add_text_sized(info, key, str, lodepng_strlen(str)); +} + +void lodepng_clear_text(LodePNGInfo* info) { + LodePNGText_cleanup(info); +} + +/******************************************************************************/ + +static void LodePNGIText_init(LodePNGInfo* info) { + info->itext_num = 0; + info->itext_keys = NULL; + info->itext_langtags = NULL; + info->itext_transkeys = NULL; + info->itext_strings = NULL; +} + +static void LodePNGIText_cleanup(LodePNGInfo* info) { + size_t i; + for(i = 0; i != info->itext_num; ++i) { + string_cleanup(&info->itext_keys[i]); + string_cleanup(&info->itext_langtags[i]); + string_cleanup(&info->itext_transkeys[i]); + string_cleanup(&info->itext_strings[i]); + } + lodepng_free(info->itext_keys); + lodepng_free(info->itext_langtags); + lodepng_free(info->itext_transkeys); + lodepng_free(info->itext_strings); +} + +static unsigned LodePNGIText_copy(LodePNGInfo* dest, const LodePNGInfo* source) { + size_t i = 0; + dest->itext_keys = NULL; + dest->itext_langtags = NULL; + dest->itext_transkeys = NULL; + dest->itext_strings = NULL; + dest->itext_num = 0; + for(i = 0; i != source->itext_num; ++i) { + CERROR_TRY_RETURN(lodepng_add_itext(dest, source->itext_keys[i], source->itext_langtags[i], + source->itext_transkeys[i], source->itext_strings[i])); + } + return 0; +} + +void lodepng_clear_itext(LodePNGInfo* info) { + LodePNGIText_cleanup(info); +} + +static unsigned lodepng_add_itext_sized(LodePNGInfo* info, const char* key, const char* langtag, + const char* transkey, const char* str, size_t size) { + char** new_keys = (char**)(lodepng_realloc(info->itext_keys, sizeof(char*) * (info->itext_num + 1))); + char** new_langtags = (char**)(lodepng_realloc(info->itext_langtags, sizeof(char*) * (info->itext_num + 1))); + char** new_transkeys = (char**)(lodepng_realloc(info->itext_transkeys, sizeof(char*) * (info->itext_num + 1))); + char** new_strings = (char**)(lodepng_realloc(info->itext_strings, sizeof(char*) * (info->itext_num + 1))); + + if(new_keys) info->itext_keys = new_keys; + if(new_langtags) info->itext_langtags = new_langtags; + if(new_transkeys) info->itext_transkeys = new_transkeys; + if(new_strings) info->itext_strings = new_strings; + + if(!new_keys || !new_langtags || !new_transkeys || !new_strings) return 83; /*alloc fail*/ + + ++info->itext_num; + + info->itext_keys[info->itext_num - 1] = alloc_string(key); + info->itext_langtags[info->itext_num - 1] = alloc_string(langtag); + info->itext_transkeys[info->itext_num - 1] = alloc_string(transkey); + info->itext_strings[info->itext_num - 1] = alloc_string_sized(str, size); + + return 0; +} + +unsigned lodepng_add_itext(LodePNGInfo* info, const char* key, const char* langtag, + const char* transkey, const char* str) { + return lodepng_add_itext_sized(info, key, langtag, transkey, str, lodepng_strlen(str)); +} + +/* same as set but does not delete */ +static unsigned lodepng_assign_icc(LodePNGInfo* info, const char* name, const unsigned char* profile, unsigned profile_size) { + if(profile_size == 0) return 100; /*invalid ICC profile size*/ + + info->iccp_name = alloc_string(name); + info->iccp_profile = (unsigned char*)lodepng_malloc(profile_size); + + if(!info->iccp_name || !info->iccp_profile) return 83; /*alloc fail*/ + + lodepng_memcpy(info->iccp_profile, profile, profile_size); + info->iccp_profile_size = profile_size; + + return 0; /*ok*/ +} + +unsigned lodepng_set_icc(LodePNGInfo* info, const char* name, const unsigned char* profile, unsigned profile_size) { + if(info->iccp_name) lodepng_clear_icc(info); + info->iccp_defined = 1; + + return lodepng_assign_icc(info, name, profile, profile_size); +} + +void lodepng_clear_icc(LodePNGInfo* info) { + string_cleanup(&info->iccp_name); + lodepng_free(info->iccp_profile); + info->iccp_profile = NULL; + info->iccp_profile_size = 0; + info->iccp_defined = 0; +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +void lodepng_info_init(LodePNGInfo* info) { + lodepng_color_mode_init(&info->color); + info->interlace_method = 0; + info->compression_method = 0; + info->filter_method = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + info->background_defined = 0; + info->background_r = info->background_g = info->background_b = 0; + + LodePNGText_init(info); + LodePNGIText_init(info); + + info->time_defined = 0; + info->phys_defined = 0; + + info->gama_defined = 0; + info->chrm_defined = 0; + info->srgb_defined = 0; + info->iccp_defined = 0; + info->iccp_name = NULL; + info->iccp_profile = NULL; + + info->sbit_defined = 0; + info->sbit_r = info->sbit_g = info->sbit_b = info->sbit_a = 0; + + LodePNGUnknownChunks_init(info); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +void lodepng_info_cleanup(LodePNGInfo* info) { + lodepng_color_mode_cleanup(&info->color); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + LodePNGText_cleanup(info); + LodePNGIText_cleanup(info); + + lodepng_clear_icc(info); + + LodePNGUnknownChunks_cleanup(info); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +unsigned lodepng_info_copy(LodePNGInfo* dest, const LodePNGInfo* source) { + lodepng_info_cleanup(dest); + lodepng_memcpy(dest, source, sizeof(LodePNGInfo)); + lodepng_color_mode_init(&dest->color); + CERROR_TRY_RETURN(lodepng_color_mode_copy(&dest->color, &source->color)); + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + CERROR_TRY_RETURN(LodePNGText_copy(dest, source)); + CERROR_TRY_RETURN(LodePNGIText_copy(dest, source)); + if(source->iccp_defined) { + CERROR_TRY_RETURN(lodepng_assign_icc(dest, source->iccp_name, source->iccp_profile, source->iccp_profile_size)); + } + + LodePNGUnknownChunks_init(dest); + CERROR_TRY_RETURN(LodePNGUnknownChunks_copy(dest, source)); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + return 0; +} + +/* ////////////////////////////////////////////////////////////////////////// */ + +/*index: bitgroup index, bits: bitgroup size(1, 2 or 4), in: bitgroup value, out: octet array to add bits to*/ +static void addColorBits(unsigned char* out, size_t index, unsigned bits, unsigned in) { + unsigned m = bits == 1 ? 7 : bits == 2 ? 3 : 1; /*8 / bits - 1*/ + /*p = the partial index in the byte, e.g. with 4 palettebits it is 0 for first half or 1 for second half*/ + unsigned p = index & m; + in &= (1u << bits) - 1u; /*filter out any other bits of the input value*/ + in = in << (bits * (m - p)); + if(p == 0) out[index * bits / 8u] = in; + else out[index * bits / 8u] |= in; +} + +typedef struct ColorTree ColorTree; + +/* +One node of a color tree +This is the data structure used to count the number of unique colors and to get a palette +index for a color. It's like an octree, but because the alpha channel is used too, each +node has 16 instead of 8 children. +*/ +struct ColorTree { + ColorTree* children[16]; /*up to 16 pointers to ColorTree of next level*/ + int index; /*the payload. Only has a meaningful value if this is in the last level*/ +}; + +static void color_tree_init(ColorTree* tree) { + lodepng_memset(tree->children, 0, 16 * sizeof(*tree->children)); + tree->index = -1; +} + +static void color_tree_cleanup(ColorTree* tree) { + int i; + for(i = 0; i != 16; ++i) { + if(tree->children[i]) { + color_tree_cleanup(tree->children[i]); + lodepng_free(tree->children[i]); + } + } +} + +/*returns -1 if color not present, its index otherwise*/ +static int color_tree_get(ColorTree* tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a) { + int bit = 0; + for(bit = 0; bit < 8; ++bit) { + int i = 8 * ((r >> bit) & 1) + 4 * ((g >> bit) & 1) + 2 * ((b >> bit) & 1) + 1 * ((a >> bit) & 1); + if(!tree->children[i]) return -1; + else tree = tree->children[i]; + } + return tree ? tree->index : -1; +} + +#ifdef LODEPNG_COMPILE_ENCODER +static int color_tree_has(ColorTree* tree, unsigned char r, unsigned char g, unsigned char b, unsigned char a) { + return color_tree_get(tree, r, g, b, a) >= 0; +} +#endif /*LODEPNG_COMPILE_ENCODER*/ + +/*color is not allowed to already exist. +Index should be >= 0 (it's signed to be compatible with using -1 for "doesn't exist") +Returns error code, or 0 if ok*/ +static unsigned color_tree_add(ColorTree* tree, + unsigned char r, unsigned char g, unsigned char b, unsigned char a, unsigned index) { + int bit; + for(bit = 0; bit < 8; ++bit) { + int i = 8 * ((r >> bit) & 1) + 4 * ((g >> bit) & 1) + 2 * ((b >> bit) & 1) + 1 * ((a >> bit) & 1); + if(!tree->children[i]) { + tree->children[i] = (ColorTree*)lodepng_malloc(sizeof(ColorTree)); + if(!tree->children[i]) return 83; /*alloc fail*/ + color_tree_init(tree->children[i]); + } + tree = tree->children[i]; + } + tree->index = (int)index; + return 0; +} + +/*put a pixel, given its RGBA color, into image of any color type*/ +static unsigned rgba8ToPixel(unsigned char* out, size_t i, + const LodePNGColorMode* mode, ColorTree* tree /*for palette*/, + unsigned char r, unsigned char g, unsigned char b, unsigned char a) { + if(mode->colortype == LCT_GREY) { + unsigned char gray = r; /*((unsigned short)r + g + b) / 3u;*/ + if(mode->bitdepth == 8) out[i] = gray; + else if(mode->bitdepth == 16) out[i * 2 + 0] = out[i * 2 + 1] = gray; + else { + /*take the most significant bits of gray*/ + gray = ((unsigned)gray >> (8u - mode->bitdepth)) & ((1u << mode->bitdepth) - 1u); + addColorBits(out, i, mode->bitdepth, gray); + } + } else if(mode->colortype == LCT_RGB) { + if(mode->bitdepth == 8) { + out[i * 3 + 0] = r; + out[i * 3 + 1] = g; + out[i * 3 + 2] = b; + } else { + out[i * 6 + 0] = out[i * 6 + 1] = r; + out[i * 6 + 2] = out[i * 6 + 3] = g; + out[i * 6 + 4] = out[i * 6 + 5] = b; + } + } else if(mode->colortype == LCT_PALETTE) { + int index = color_tree_get(tree, r, g, b, a); + if(index < 0) return 82; /*color not in palette*/ + if(mode->bitdepth == 8) out[i] = index; + else addColorBits(out, i, mode->bitdepth, (unsigned)index); + } else if(mode->colortype == LCT_GREY_ALPHA) { + unsigned char gray = r; /*((unsigned short)r + g + b) / 3u;*/ + if(mode->bitdepth == 8) { + out[i * 2 + 0] = gray; + out[i * 2 + 1] = a; + } else if(mode->bitdepth == 16) { + out[i * 4 + 0] = out[i * 4 + 1] = gray; + out[i * 4 + 2] = out[i * 4 + 3] = a; + } + } else if(mode->colortype == LCT_RGBA) { + if(mode->bitdepth == 8) { + out[i * 4 + 0] = r; + out[i * 4 + 1] = g; + out[i * 4 + 2] = b; + out[i * 4 + 3] = a; + } else { + out[i * 8 + 0] = out[i * 8 + 1] = r; + out[i * 8 + 2] = out[i * 8 + 3] = g; + out[i * 8 + 4] = out[i * 8 + 5] = b; + out[i * 8 + 6] = out[i * 8 + 7] = a; + } + } + + return 0; /*no error*/ +} + +/*put a pixel, given its RGBA16 color, into image of any color 16-bitdepth type*/ +static void rgba16ToPixel(unsigned char* out, size_t i, + const LodePNGColorMode* mode, + unsigned short r, unsigned short g, unsigned short b, unsigned short a) { + if(mode->colortype == LCT_GREY) { + unsigned short gray = r; /*((unsigned)r + g + b) / 3u;*/ + out[i * 2 + 0] = (gray >> 8) & 255; + out[i * 2 + 1] = gray & 255; + } else if(mode->colortype == LCT_RGB) { + out[i * 6 + 0] = (r >> 8) & 255; + out[i * 6 + 1] = r & 255; + out[i * 6 + 2] = (g >> 8) & 255; + out[i * 6 + 3] = g & 255; + out[i * 6 + 4] = (b >> 8) & 255; + out[i * 6 + 5] = b & 255; + } else if(mode->colortype == LCT_GREY_ALPHA) { + unsigned short gray = r; /*((unsigned)r + g + b) / 3u;*/ + out[i * 4 + 0] = (gray >> 8) & 255; + out[i * 4 + 1] = gray & 255; + out[i * 4 + 2] = (a >> 8) & 255; + out[i * 4 + 3] = a & 255; + } else if(mode->colortype == LCT_RGBA) { + out[i * 8 + 0] = (r >> 8) & 255; + out[i * 8 + 1] = r & 255; + out[i * 8 + 2] = (g >> 8) & 255; + out[i * 8 + 3] = g & 255; + out[i * 8 + 4] = (b >> 8) & 255; + out[i * 8 + 5] = b & 255; + out[i * 8 + 6] = (a >> 8) & 255; + out[i * 8 + 7] = a & 255; + } +} + +/*Get RGBA8 color of pixel with index i (y * width + x) from the raw image with given color type.*/ +static void getPixelColorRGBA8(unsigned char* r, unsigned char* g, + unsigned char* b, unsigned char* a, + const unsigned char* in, size_t i, + const LodePNGColorMode* mode) { + if(mode->colortype == LCT_GREY) { + if(mode->bitdepth == 8) { + *r = *g = *b = in[i]; + if(mode->key_defined && *r == mode->key_r) *a = 0; + else *a = 255; + } else if(mode->bitdepth == 16) { + *r = *g = *b = in[i * 2 + 0]; + if(mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r) *a = 0; + else *a = 255; + } else { + unsigned highest = ((1U << mode->bitdepth) - 1U); /*highest possible value for this bit depth*/ + size_t j = i * mode->bitdepth; + unsigned value = readBitsFromReversedStream(&j, in, mode->bitdepth); + *r = *g = *b = (value * 255) / highest; + if(mode->key_defined && value == mode->key_r) *a = 0; + else *a = 255; + } + } else if(mode->colortype == LCT_RGB) { + if(mode->bitdepth == 8) { + *r = in[i * 3 + 0]; *g = in[i * 3 + 1]; *b = in[i * 3 + 2]; + if(mode->key_defined && *r == mode->key_r && *g == mode->key_g && *b == mode->key_b) *a = 0; + else *a = 255; + } else { + *r = in[i * 6 + 0]; + *g = in[i * 6 + 2]; + *b = in[i * 6 + 4]; + if(mode->key_defined && 256U * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256U * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256U * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b) *a = 0; + else *a = 255; + } + } else if(mode->colortype == LCT_PALETTE) { + unsigned index; + if(mode->bitdepth == 8) index = in[i]; + else { + size_t j = i * mode->bitdepth; + index = readBitsFromReversedStream(&j, in, mode->bitdepth); + } + /*out of bounds of palette not checked: see lodepng_color_mode_alloc_palette.*/ + *r = mode->palette[index * 4 + 0]; + *g = mode->palette[index * 4 + 1]; + *b = mode->palette[index * 4 + 2]; + *a = mode->palette[index * 4 + 3]; + } else if(mode->colortype == LCT_GREY_ALPHA) { + if(mode->bitdepth == 8) { + *r = *g = *b = in[i * 2 + 0]; + *a = in[i * 2 + 1]; + } else { + *r = *g = *b = in[i * 4 + 0]; + *a = in[i * 4 + 2]; + } + } else if(mode->colortype == LCT_RGBA) { + if(mode->bitdepth == 8) { + *r = in[i * 4 + 0]; + *g = in[i * 4 + 1]; + *b = in[i * 4 + 2]; + *a = in[i * 4 + 3]; + } else { + *r = in[i * 8 + 0]; + *g = in[i * 8 + 2]; + *b = in[i * 8 + 4]; + *a = in[i * 8 + 6]; + } + } +} + +/*Similar to getPixelColorRGBA8, but with all the for loops inside of the color +mode test cases, optimized to convert the colors much faster, when converting +to the common case of RGBA with 8 bit per channel. buffer must be RGBA with +enough memory.*/ +static void getPixelColorsRGBA8(unsigned char* LODEPNG_RESTRICT buffer, size_t numpixels, + const unsigned char* LODEPNG_RESTRICT in, + const LodePNGColorMode* mode) { + unsigned num_channels = 4; + size_t i; + if(mode->colortype == LCT_GREY) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i]; + buffer[3] = 255; + } + if(mode->key_defined) { + buffer -= numpixels * num_channels; + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + if(buffer[0] == mode->key_r) buffer[3] = 0; + } + } + } else if(mode->bitdepth == 16) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i * 2]; + buffer[3] = mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r ? 0 : 255; + } + } else { + unsigned highest = ((1U << mode->bitdepth) - 1U); /*highest possible value for this bit depth*/ + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + unsigned value = readBitsFromReversedStream(&j, in, mode->bitdepth); + buffer[0] = buffer[1] = buffer[2] = (value * 255) / highest; + buffer[3] = mode->key_defined && value == mode->key_r ? 0 : 255; + } + } + } else if(mode->colortype == LCT_RGB) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + lodepng_memcpy(buffer, &in[i * 3], 3); + buffer[3] = 255; + } + if(mode->key_defined) { + buffer -= numpixels * num_channels; + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + if(buffer[0] == mode->key_r && buffer[1]== mode->key_g && buffer[2] == mode->key_b) buffer[3] = 0; + } + } + } else { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = in[i * 6 + 0]; + buffer[1] = in[i * 6 + 2]; + buffer[2] = in[i * 6 + 4]; + buffer[3] = mode->key_defined + && 256U * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256U * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256U * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b ? 0 : 255; + } + } + } else if(mode->colortype == LCT_PALETTE) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + unsigned index = in[i]; + /*out of bounds of palette not checked: see lodepng_color_mode_alloc_palette.*/ + lodepng_memcpy(buffer, &mode->palette[index * 4], 4); + } + } else { + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + unsigned index = readBitsFromReversedStream(&j, in, mode->bitdepth); + /*out of bounds of palette not checked: see lodepng_color_mode_alloc_palette.*/ + lodepng_memcpy(buffer, &mode->palette[index * 4], 4); + } + } + } else if(mode->colortype == LCT_GREY_ALPHA) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i * 2 + 0]; + buffer[3] = in[i * 2 + 1]; + } + } else { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i * 4 + 0]; + buffer[3] = in[i * 4 + 2]; + } + } + } else if(mode->colortype == LCT_RGBA) { + if(mode->bitdepth == 8) { + lodepng_memcpy(buffer, in, numpixels * 4); + } else { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = in[i * 8 + 0]; + buffer[1] = in[i * 8 + 2]; + buffer[2] = in[i * 8 + 4]; + buffer[3] = in[i * 8 + 6]; + } + } + } +} + +/*Similar to getPixelColorsRGBA8, but with 3-channel RGB output.*/ +static void getPixelColorsRGB8(unsigned char* LODEPNG_RESTRICT buffer, size_t numpixels, + const unsigned char* LODEPNG_RESTRICT in, + const LodePNGColorMode* mode) { + const unsigned num_channels = 3; + size_t i; + if(mode->colortype == LCT_GREY) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i]; + } + } else if(mode->bitdepth == 16) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i * 2]; + } + } else { + unsigned highest = ((1U << mode->bitdepth) - 1U); /*highest possible value for this bit depth*/ + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + unsigned value = readBitsFromReversedStream(&j, in, mode->bitdepth); + buffer[0] = buffer[1] = buffer[2] = (value * 255) / highest; + } + } + } else if(mode->colortype == LCT_RGB) { + if(mode->bitdepth == 8) { + lodepng_memcpy(buffer, in, numpixels * 3); + } else { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = in[i * 6 + 0]; + buffer[1] = in[i * 6 + 2]; + buffer[2] = in[i * 6 + 4]; + } + } + } else if(mode->colortype == LCT_PALETTE) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + unsigned index = in[i]; + /*out of bounds of palette not checked: see lodepng_color_mode_alloc_palette.*/ + lodepng_memcpy(buffer, &mode->palette[index * 4], 3); + } + } else { + size_t j = 0; + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + unsigned index = readBitsFromReversedStream(&j, in, mode->bitdepth); + /*out of bounds of palette not checked: see lodepng_color_mode_alloc_palette.*/ + lodepng_memcpy(buffer, &mode->palette[index * 4], 3); + } + } + } else if(mode->colortype == LCT_GREY_ALPHA) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i * 2 + 0]; + } + } else { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = buffer[1] = buffer[2] = in[i * 4 + 0]; + } + } + } else if(mode->colortype == LCT_RGBA) { + if(mode->bitdepth == 8) { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + lodepng_memcpy(buffer, &in[i * 4], 3); + } + } else { + for(i = 0; i != numpixels; ++i, buffer += num_channels) { + buffer[0] = in[i * 8 + 0]; + buffer[1] = in[i * 8 + 2]; + buffer[2] = in[i * 8 + 4]; + } + } + } +} + +/*Get RGBA16 color of pixel with index i (y * width + x) from the raw image with +given color type, but the given color type must be 16-bit itself.*/ +static void getPixelColorRGBA16(unsigned short* r, unsigned short* g, unsigned short* b, unsigned short* a, + const unsigned char* in, size_t i, const LodePNGColorMode* mode) { + if(mode->colortype == LCT_GREY) { + *r = *g = *b = 256 * in[i * 2 + 0] + in[i * 2 + 1]; + if(mode->key_defined && 256U * in[i * 2 + 0] + in[i * 2 + 1] == mode->key_r) *a = 0; + else *a = 65535; + } else if(mode->colortype == LCT_RGB) { + *r = 256u * in[i * 6 + 0] + in[i * 6 + 1]; + *g = 256u * in[i * 6 + 2] + in[i * 6 + 3]; + *b = 256u * in[i * 6 + 4] + in[i * 6 + 5]; + if(mode->key_defined + && 256u * in[i * 6 + 0] + in[i * 6 + 1] == mode->key_r + && 256u * in[i * 6 + 2] + in[i * 6 + 3] == mode->key_g + && 256u * in[i * 6 + 4] + in[i * 6 + 5] == mode->key_b) *a = 0; + else *a = 65535; + } else if(mode->colortype == LCT_GREY_ALPHA) { + *r = *g = *b = 256u * in[i * 4 + 0] + in[i * 4 + 1]; + *a = 256u * in[i * 4 + 2] + in[i * 4 + 3]; + } else if(mode->colortype == LCT_RGBA) { + *r = 256u * in[i * 8 + 0] + in[i * 8 + 1]; + *g = 256u * in[i * 8 + 2] + in[i * 8 + 3]; + *b = 256u * in[i * 8 + 4] + in[i * 8 + 5]; + *a = 256u * in[i * 8 + 6] + in[i * 8 + 7]; + } +} + +unsigned lodepng_convert(unsigned char* out, const unsigned char* in, + const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in, + unsigned w, unsigned h) { + size_t i; + ColorTree tree; + size_t numpixels = (size_t)w * (size_t)h; + unsigned error = 0; + + if(mode_in->colortype == LCT_PALETTE && !mode_in->palette) { + return 107; /* error: must provide palette if input mode is palette */ + } + + if(lodepng_color_mode_equal(mode_out, mode_in)) { + size_t numbytes = lodepng_get_raw_size(w, h, mode_in); + lodepng_memcpy(out, in, numbytes); + return 0; + } + + if(mode_out->colortype == LCT_PALETTE) { + size_t palettesize = mode_out->palettesize; + const unsigned char* palette = mode_out->palette; + size_t palsize = (size_t)1u << mode_out->bitdepth; + /*if the user specified output palette but did not give the values, assume + they want the values of the input color type (assuming that one is palette). + Note that we never create a new palette ourselves.*/ + if(palettesize == 0) { + palettesize = mode_in->palettesize; + palette = mode_in->palette; + /*if the input was also palette with same bitdepth, then the color types are also + equal, so copy literally. This to preserve the exact indices that were in the PNG + even in case there are duplicate colors in the palette.*/ + if(mode_in->colortype == LCT_PALETTE && mode_in->bitdepth == mode_out->bitdepth) { + size_t numbytes = lodepng_get_raw_size(w, h, mode_in); + lodepng_memcpy(out, in, numbytes); + return 0; + } + } + if(palettesize < palsize) palsize = palettesize; + color_tree_init(&tree); + for(i = 0; i != palsize; ++i) { + const unsigned char* p = &palette[i * 4]; + error = color_tree_add(&tree, p[0], p[1], p[2], p[3], (unsigned)i); + if(error) break; + } + } + + if(!error) { + if(mode_in->bitdepth == 16 && mode_out->bitdepth == 16) { + for(i = 0; i != numpixels; ++i) { + unsigned short r = 0, g = 0, b = 0, a = 0; + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode_in); + rgba16ToPixel(out, i, mode_out, r, g, b, a); + } + } else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGBA) { + getPixelColorsRGBA8(out, numpixels, in, mode_in); + } else if(mode_out->bitdepth == 8 && mode_out->colortype == LCT_RGB) { + getPixelColorsRGB8(out, numpixels, in, mode_in); + } else { + unsigned char r = 0, g = 0, b = 0, a = 0; + for(i = 0; i != numpixels; ++i) { + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode_in); + error = rgba8ToPixel(out, i, mode_out, &tree, r, g, b, a); + if(error) break; + } + } + } + + if(mode_out->colortype == LCT_PALETTE) { + color_tree_cleanup(&tree); + } + + return error; +} + + +/* Converts a single rgb color without alpha from one type to another, color bits truncated to +their bitdepth. In case of single channel (gray or palette), only the r channel is used. Slow +function, do not use to process all pixels of an image. Alpha channel not supported on purpose: +this is for bKGD, supporting alpha may prevent it from finding a color in the palette, from the +specification it looks like bKGD should ignore the alpha values of the palette since it can use +any palette index but doesn't have an alpha channel. Idem with ignoring color key. */ +unsigned lodepng_convert_rgb( + unsigned* r_out, unsigned* g_out, unsigned* b_out, + unsigned r_in, unsigned g_in, unsigned b_in, + const LodePNGColorMode* mode_out, const LodePNGColorMode* mode_in) { + unsigned r = 0, g = 0, b = 0; + unsigned mul = 65535 / ((1u << mode_in->bitdepth) - 1u); /*65535, 21845, 4369, 257, 1*/ + unsigned shift = 16 - mode_out->bitdepth; + + if(mode_in->colortype == LCT_GREY || mode_in->colortype == LCT_GREY_ALPHA) { + r = g = b = r_in * mul; + } else if(mode_in->colortype == LCT_RGB || mode_in->colortype == LCT_RGBA) { + r = r_in * mul; + g = g_in * mul; + b = b_in * mul; + } else if(mode_in->colortype == LCT_PALETTE) { + if(r_in >= mode_in->palettesize) return 82; + r = mode_in->palette[r_in * 4 + 0] * 257u; + g = mode_in->palette[r_in * 4 + 1] * 257u; + b = mode_in->palette[r_in * 4 + 2] * 257u; + } else { + return 31; + } + + /* now convert to output format */ + if(mode_out->colortype == LCT_GREY || mode_out->colortype == LCT_GREY_ALPHA) { + *r_out = r >> shift ; + } else if(mode_out->colortype == LCT_RGB || mode_out->colortype == LCT_RGBA) { + *r_out = r >> shift ; + *g_out = g >> shift ; + *b_out = b >> shift ; + } else if(mode_out->colortype == LCT_PALETTE) { + unsigned i; + /* a 16-bit color cannot be in the palette */ + if((r >> 8) != (r & 255) || (g >> 8) != (g & 255) || (b >> 8) != (b & 255)) return 82; + for(i = 0; i < mode_out->palettesize; i++) { + unsigned j = i * 4; + if((r >> 8) == mode_out->palette[j + 0] && (g >> 8) == mode_out->palette[j + 1] && + (b >> 8) == mode_out->palette[j + 2]) { + *r_out = i; + return 0; + } + } + return 82; + } else { + return 31; + } + + return 0; +} + +#ifdef LODEPNG_COMPILE_ENCODER + +void lodepng_color_stats_init(LodePNGColorStats* stats) { + /*stats*/ + stats->colored = 0; + stats->key = 0; + stats->key_r = stats->key_g = stats->key_b = 0; + stats->alpha = 0; + stats->numcolors = 0; + stats->bits = 1; + stats->numpixels = 0; + /*settings*/ + stats->allow_palette = 1; + stats->allow_greyscale = 1; +} + +/*function used for debug purposes with C++*/ +/*void printColorStats(LodePNGColorStats* p) { + std::cout << "colored: " << (int)p->colored << ", "; + std::cout << "key: " << (int)p->key << ", "; + std::cout << "key_r: " << (int)p->key_r << ", "; + std::cout << "key_g: " << (int)p->key_g << ", "; + std::cout << "key_b: " << (int)p->key_b << ", "; + std::cout << "alpha: " << (int)p->alpha << ", "; + std::cout << "numcolors: " << (int)p->numcolors << ", "; + std::cout << "bits: " << (int)p->bits << std::endl; +}*/ + +/*Returns how many bits needed to represent given value (max 8 bit)*/ +static unsigned getValueRequiredBits(unsigned char value) { + if(value == 0 || value == 255) return 1; + /*The scaling of 2-bit and 4-bit values uses multiples of 85 and 17*/ + if(value % 17 == 0) return value % 85 == 0 ? 2 : 4; + return 8; +} + +/*stats must already have been inited. */ +unsigned lodepng_compute_color_stats(LodePNGColorStats* stats, + const unsigned char* in, unsigned w, unsigned h, + const LodePNGColorMode* mode_in) { + size_t i; + ColorTree tree; + size_t numpixels = (size_t)w * (size_t)h; + unsigned error = 0; + + /* mark things as done already if it would be impossible to have a more expensive case */ + unsigned colored_done = lodepng_is_greyscale_type(mode_in) ? 1 : 0; + unsigned alpha_done = lodepng_can_have_alpha(mode_in) ? 0 : 1; + unsigned numcolors_done = 0; + unsigned bpp = lodepng_get_bpp(mode_in); + unsigned bits_done = (stats->bits == 1 && bpp == 1) ? 1 : 0; + unsigned sixteen = 0; /* whether the input image is 16 bit */ + unsigned maxnumcolors = 257; + if(bpp <= 8) maxnumcolors = LODEPNG_MIN(257, stats->numcolors + (1u << bpp)); + + stats->numpixels += numpixels; + + /*if palette not allowed, no need to compute numcolors*/ + if(!stats->allow_palette) numcolors_done = 1; + + color_tree_init(&tree); + + /*If the stats was already filled in from previous data, fill its palette in tree + and mark things as done already if we know they are the most expensive case already*/ + if(stats->alpha) alpha_done = 1; + if(stats->colored) colored_done = 1; + if(stats->bits == 16) numcolors_done = 1; + if(stats->bits >= bpp) bits_done = 1; + if(stats->numcolors >= maxnumcolors) numcolors_done = 1; + + if(!numcolors_done) { + for(i = 0; i < stats->numcolors; i++) { + const unsigned char* color = &stats->palette[i * 4]; + error = color_tree_add(&tree, color[0], color[1], color[2], color[3], i); + if(error) goto cleanup; + } + } + + /*Check if the 16-bit input is truly 16-bit*/ + if(mode_in->bitdepth == 16 && !sixteen) { + unsigned short r = 0, g = 0, b = 0, a = 0; + for(i = 0; i != numpixels; ++i) { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode_in); + if((r & 255) != ((r >> 8) & 255) || (g & 255) != ((g >> 8) & 255) || + (b & 255) != ((b >> 8) & 255) || (a & 255) != ((a >> 8) & 255)) /*first and second byte differ*/ { + stats->bits = 16; + sixteen = 1; + bits_done = 1; + numcolors_done = 1; /*counting colors no longer useful, palette doesn't support 16-bit*/ + break; + } + } + } + + if(sixteen) { + unsigned short r = 0, g = 0, b = 0, a = 0; + + for(i = 0; i != numpixels; ++i) { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode_in); + + if(!colored_done && (r != g || r != b)) { + stats->colored = 1; + colored_done = 1; + } + + if(!alpha_done) { + unsigned matchkey = (r == stats->key_r && g == stats->key_g && b == stats->key_b); + if(a != 65535 && (a != 0 || (stats->key && !matchkey))) { + stats->alpha = 1; + stats->key = 0; + alpha_done = 1; + } else if(a == 0 && !stats->alpha && !stats->key) { + stats->key = 1; + stats->key_r = r; + stats->key_g = g; + stats->key_b = b; + } else if(a == 65535 && stats->key && matchkey) { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + stats->alpha = 1; + stats->key = 0; + alpha_done = 1; + } + } + if(alpha_done && numcolors_done && colored_done && bits_done) break; + } + + if(stats->key && !stats->alpha) { + for(i = 0; i != numpixels; ++i) { + getPixelColorRGBA16(&r, &g, &b, &a, in, i, mode_in); + if(a != 0 && r == stats->key_r && g == stats->key_g && b == stats->key_b) { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + stats->alpha = 1; + stats->key = 0; + alpha_done = 1; + } + } + } + } else /* < 16-bit */ { + unsigned char r = 0, g = 0, b = 0, a = 0; + for(i = 0; i != numpixels; ++i) { + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode_in); + + if(!bits_done && stats->bits < 8) { + /*only r is checked, < 8 bits is only relevant for grayscale*/ + unsigned bits = getValueRequiredBits(r); + if(bits > stats->bits) stats->bits = bits; + } + bits_done = (stats->bits >= bpp); + + if(!colored_done && (r != g || r != b)) { + stats->colored = 1; + colored_done = 1; + if(stats->bits < 8) stats->bits = 8; /*PNG has no colored modes with less than 8-bit per channel*/ + } + + if(!alpha_done) { + unsigned matchkey = (r == stats->key_r && g == stats->key_g && b == stats->key_b); + if(a != 255 && (a != 0 || (stats->key && !matchkey))) { + stats->alpha = 1; + stats->key = 0; + alpha_done = 1; + if(stats->bits < 8) stats->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } else if(a == 0 && !stats->alpha && !stats->key) { + stats->key = 1; + stats->key_r = r; + stats->key_g = g; + stats->key_b = b; + } else if(a == 255 && stats->key && matchkey) { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + stats->alpha = 1; + stats->key = 0; + alpha_done = 1; + if(stats->bits < 8) stats->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + } + + if(!numcolors_done) { + if(!color_tree_has(&tree, r, g, b, a)) { + error = color_tree_add(&tree, r, g, b, a, stats->numcolors); + if(error) goto cleanup; + if(stats->numcolors < 256) { + unsigned char* p = stats->palette; + unsigned n = stats->numcolors; + p[n * 4 + 0] = r; + p[n * 4 + 1] = g; + p[n * 4 + 2] = b; + p[n * 4 + 3] = a; + } + ++stats->numcolors; + numcolors_done = stats->numcolors >= maxnumcolors; + } + } + + if(alpha_done && numcolors_done && colored_done && bits_done) break; + } + + if(stats->key && !stats->alpha) { + for(i = 0; i != numpixels; ++i) { + getPixelColorRGBA8(&r, &g, &b, &a, in, i, mode_in); + if(a != 0 && r == stats->key_r && g == stats->key_g && b == stats->key_b) { + /* Color key cannot be used if an opaque pixel also has that RGB color. */ + stats->alpha = 1; + stats->key = 0; + alpha_done = 1; + if(stats->bits < 8) stats->bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + } + } + + /*make the stats's key always 16-bit for consistency - repeat each byte twice*/ + stats->key_r += (stats->key_r << 8); + stats->key_g += (stats->key_g << 8); + stats->key_b += (stats->key_b << 8); + } + +cleanup: + color_tree_cleanup(&tree); + return error; +} + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*Adds a single color to the color stats. The stats must already have been inited. The color must be given as 16-bit +(with 2 bytes repeating for 8-bit and 65535 for opaque alpha channel). This function is expensive, do not call it for +all pixels of an image but only for a few additional values. */ +static unsigned lodepng_color_stats_add(LodePNGColorStats* stats, + unsigned r, unsigned g, unsigned b, unsigned a) { + unsigned error = 0; + unsigned char image[8]; + LodePNGColorMode mode; + lodepng_color_mode_init(&mode); + image[0] = r >> 8; image[1] = r; image[2] = g >> 8; image[3] = g; + image[4] = b >> 8; image[5] = b; image[6] = a >> 8; image[7] = a; + mode.bitdepth = 16; + mode.colortype = LCT_RGBA; + error = lodepng_compute_color_stats(stats, image, 1, 1, &mode); + lodepng_color_mode_cleanup(&mode); + return error; +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +/*Computes a minimal PNG color model that can contain all colors as indicated by the stats. +The stats should be computed with lodepng_compute_color_stats. +mode_in is raw color profile of the image the stats were computed on, to copy palette order from when relevant. +Minimal PNG color model means the color type and bit depth that gives smallest amount of bits in the output image, +e.g. gray if only grayscale pixels, palette if less than 256 colors, color key if only single transparent color, ... +This is used if auto_convert is enabled (it is by default). +*/ +static unsigned auto_choose_color(LodePNGColorMode* mode_out, + const LodePNGColorMode* mode_in, + const LodePNGColorStats* stats) { + unsigned error = 0; + unsigned palettebits; + size_t i, n; + size_t numpixels = stats->numpixels; + unsigned palette_ok, gray_ok; + + unsigned alpha = stats->alpha; + unsigned key = stats->key; + unsigned bits = stats->bits; + + mode_out->key_defined = 0; + + if(key && numpixels <= 16) { + alpha = 1; /*too few pixels to justify tRNS chunk overhead*/ + key = 0; + if(bits < 8) bits = 8; /*PNG has no alphachannel modes with less than 8-bit per channel*/ + } + + gray_ok = !stats->colored; + if(!stats->allow_greyscale) gray_ok = 0; + if(!gray_ok && bits < 8) bits = 8; + + n = stats->numcolors; + palettebits = n <= 2 ? 1 : (n <= 4 ? 2 : (n <= 16 ? 4 : 8)); + palette_ok = n <= 256 && bits <= 8 && n != 0; /*n==0 means likely numcolors wasn't computed*/ + if(numpixels < n * 2) palette_ok = 0; /*don't add palette overhead if image has only a few pixels*/ + if(gray_ok && !alpha && bits <= palettebits) palette_ok = 0; /*gray is less overhead*/ + if(!stats->allow_palette) palette_ok = 0; + + if(palette_ok) { + const unsigned char* p = stats->palette; + lodepng_palette_clear(mode_out); /*remove potential earlier palette*/ + for(i = 0; i != stats->numcolors; ++i) { + error = lodepng_palette_add(mode_out, p[i * 4 + 0], p[i * 4 + 1], p[i * 4 + 2], p[i * 4 + 3]); + if(error) break; + } + + mode_out->colortype = LCT_PALETTE; + mode_out->bitdepth = palettebits; + + if(mode_in->colortype == LCT_PALETTE && mode_in->palettesize >= mode_out->palettesize + && mode_in->bitdepth == mode_out->bitdepth) { + /*If input should have same palette colors, keep original to preserve its order and prevent conversion*/ + lodepng_color_mode_cleanup(mode_out); /*clears palette, keeps the above set colortype and bitdepth fields as-is*/ + lodepng_color_mode_copy(mode_out, mode_in); + } + } else /*8-bit or 16-bit per channel*/ { + mode_out->bitdepth = bits; + mode_out->colortype = alpha ? (gray_ok ? LCT_GREY_ALPHA : LCT_RGBA) + : (gray_ok ? LCT_GREY : LCT_RGB); + if(key) { + unsigned mask = (1u << mode_out->bitdepth) - 1u; /*stats always uses 16-bit, mask converts it*/ + mode_out->key_r = stats->key_r & mask; + mode_out->key_g = stats->key_g & mask; + mode_out->key_b = stats->key_b & mask; + mode_out->key_defined = 1; + } + } + + return error; +} + +#endif /* #ifdef LODEPNG_COMPILE_ENCODER */ + +/* +Paeth predictor, used by PNG filter type 4 +The parameters are of type short, but should come from unsigned chars, the shorts +are only needed to make the paeth calculation correct. +*/ +static unsigned char paethPredictor(short a, short b, short c) { + short pa = LODEPNG_ABS(b - c); + short pb = LODEPNG_ABS(a - c); + short pc = LODEPNG_ABS(a + b - c - c); + /* return input value associated with smallest of pa, pb, pc (with certain priority if equal) */ + if(pb < pa) { a = b; pa = pb; } + return (pc < pa) ? c : a; +} + +/*shared values used by multiple Adam7 related functions*/ + +static const unsigned ADAM7_IX[7] = { 0, 4, 0, 2, 0, 1, 0 }; /*x start values*/ +static const unsigned ADAM7_IY[7] = { 0, 0, 4, 0, 2, 0, 1 }; /*y start values*/ +static const unsigned ADAM7_DX[7] = { 8, 8, 4, 4, 2, 2, 1 }; /*x delta values*/ +static const unsigned ADAM7_DY[7] = { 8, 8, 8, 4, 4, 2, 2 }; /*y delta values*/ + +/* +Outputs various dimensions and positions in the image related to the Adam7 reduced images. +passw: output containing the width of the 7 passes +passh: output containing the height of the 7 passes +filter_passstart: output containing the index of the start and end of each + reduced image with filter bytes +padded_passstart output containing the index of the start and end of each + reduced image when without filter bytes but with padded scanlines +passstart: output containing the index of the start and end of each reduced + image without padding between scanlines, but still padding between the images +w, h: width and height of non-interlaced image +bpp: bits per pixel +"padded" is only relevant if bpp is less than 8 and a scanline or image does not + end at a full byte +*/ +static void Adam7_getpassvalues(unsigned passw[7], unsigned passh[7], size_t filter_passstart[8], + size_t padded_passstart[8], size_t passstart[8], unsigned w, unsigned h, unsigned bpp) { + /*the passstart values have 8 values: the 8th one indicates the byte after the end of the 7th (= last) pass*/ + unsigned i; + + /*calculate width and height in pixels of each pass*/ + for(i = 0; i != 7; ++i) { + passw[i] = (w + ADAM7_DX[i] - ADAM7_IX[i] - 1) / ADAM7_DX[i]; + passh[i] = (h + ADAM7_DY[i] - ADAM7_IY[i] - 1) / ADAM7_DY[i]; + if(passw[i] == 0) passh[i] = 0; + if(passh[i] == 0) passw[i] = 0; + } + + filter_passstart[0] = padded_passstart[0] = passstart[0] = 0; + for(i = 0; i != 7; ++i) { + /*if passw[i] is 0, it's 0 bytes, not 1 (no filtertype-byte)*/ + filter_passstart[i + 1] = filter_passstart[i] + + ((passw[i] && passh[i]) ? passh[i] * (1u + (passw[i] * bpp + 7u) / 8u) : 0); + /*bits padded if needed to fill full byte at end of each scanline*/ + padded_passstart[i + 1] = padded_passstart[i] + passh[i] * ((passw[i] * bpp + 7u) / 8u); + /*only padded at end of reduced image*/ + passstart[i + 1] = passstart[i] + (passh[i] * passw[i] * bpp + 7u) / 8u; + } +} + +#ifdef LODEPNG_COMPILE_DECODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG Decoder / */ +/* ////////////////////////////////////////////////////////////////////////// */ + +/*read the information from the header and store it in the LodePNGInfo. return value is error*/ +unsigned lodepng_inspect(unsigned* w, unsigned* h, LodePNGState* state, + const unsigned char* in, size_t insize) { + unsigned width, height; + LodePNGInfo* info = &state->info_png; + if(insize == 0 || in == 0) { + CERROR_RETURN_ERROR(state->error, 48); /*error: the given data is empty*/ + } + if(insize < 33) { + CERROR_RETURN_ERROR(state->error, 27); /*error: the data length is smaller than the length of a PNG header*/ + } + + /*when decoding a new PNG image, make sure all parameters created after previous decoding are reset*/ + /* TODO: remove this. One should use a new LodePNGState for new sessions */ + lodepng_info_cleanup(info); + lodepng_info_init(info); + + if(in[0] != 137 || in[1] != 80 || in[2] != 78 || in[3] != 71 + || in[4] != 13 || in[5] != 10 || in[6] != 26 || in[7] != 10) { + CERROR_RETURN_ERROR(state->error, 28); /*error: the first 8 bytes are not the correct PNG signature*/ + } + if(lodepng_chunk_length(in + 8) != 13) { + CERROR_RETURN_ERROR(state->error, 94); /*error: header size must be 13 bytes*/ + } + if(!lodepng_chunk_type_equals(in + 8, "IHDR")) { + CERROR_RETURN_ERROR(state->error, 29); /*error: it doesn't start with a IHDR chunk!*/ + } + + /*read the values given in the header*/ + width = lodepng_read32bitInt(&in[16]); + height = lodepng_read32bitInt(&in[20]); + /*TODO: remove the undocumented feature that allows to give null pointers to width or height*/ + if(w) *w = width; + if(h) *h = height; + info->color.bitdepth = in[24]; + info->color.colortype = (LodePNGColorType)in[25]; + info->compression_method = in[26]; + info->filter_method = in[27]; + info->interlace_method = in[28]; + + /*errors returned only after the parsing so other values are still output*/ + + /*error: invalid image size*/ + if(width == 0 || height == 0) CERROR_RETURN_ERROR(state->error, 93); + /*error: invalid colortype or bitdepth combination*/ + state->error = checkColorValidity(info->color.colortype, info->color.bitdepth); + if(state->error) return state->error; + /*error: only compression method 0 is allowed in the specification*/ + if(info->compression_method != 0) CERROR_RETURN_ERROR(state->error, 32); + /*error: only filter method 0 is allowed in the specification*/ + if(info->filter_method != 0) CERROR_RETURN_ERROR(state->error, 33); + /*error: only interlace methods 0 and 1 exist in the specification*/ + if(info->interlace_method > 1) CERROR_RETURN_ERROR(state->error, 34); + + if(!state->decoder.ignore_crc) { + unsigned CRC = lodepng_read32bitInt(&in[29]); + unsigned checksum = lodepng_crc32(&in[12], 17); + if(CRC != checksum) { + CERROR_RETURN_ERROR(state->error, 57); /*invalid CRC*/ + } + } + + return state->error; +} + +static unsigned unfilterScanline(unsigned char* recon, const unsigned char* scanline, const unsigned char* precon, + size_t bytewidth, unsigned char filterType, size_t length) { + /* + For PNG filter method 0 + unfilter a PNG image scanline by scanline. when the pixels are smaller than 1 byte, + the filter works byte per byte (bytewidth = 1) + precon is the previous unfiltered scanline, recon the result, scanline the current one + the incoming scanlines do NOT include the filtertype byte, that one is given in the parameter filterType instead + recon and scanline MAY be the same memory address! precon must be disjoint. + */ + + size_t i; + switch(filterType) { + case 0: + for(i = 0; i != length; ++i) recon[i] = scanline[i]; + break; + case 1: { + size_t j = 0; + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i]; + for(i = bytewidth; i != length; ++i, ++j) recon[i] = scanline[i] + recon[j]; + break; + } + case 2: + if(precon) { + for(i = 0; i != length; ++i) recon[i] = scanline[i] + precon[i]; + } else { + for(i = 0; i != length; ++i) recon[i] = scanline[i]; + } + break; + case 3: + if(precon) { + size_t j = 0; + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i] + (precon[i] >> 1u); + /* Unroll independent paths of this predictor. A 6x and 8x version is also possible but that adds + too much code. Whether this speeds up anything depends on compiler and settings. */ + if(bytewidth >= 4) { + for(; i + 3 < length; i += 4, j += 4) { + unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1], s2 = scanline[i + 2], s3 = scanline[i + 3]; + unsigned char r0 = recon[j + 0], r1 = recon[j + 1], r2 = recon[j + 2], r3 = recon[j + 3]; + unsigned char p0 = precon[i + 0], p1 = precon[i + 1], p2 = precon[i + 2], p3 = precon[i + 3]; + recon[i + 0] = s0 + ((r0 + p0) >> 1u); + recon[i + 1] = s1 + ((r1 + p1) >> 1u); + recon[i + 2] = s2 + ((r2 + p2) >> 1u); + recon[i + 3] = s3 + ((r3 + p3) >> 1u); + } + } else if(bytewidth >= 3) { + for(; i + 2 < length; i += 3, j += 3) { + unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1], s2 = scanline[i + 2]; + unsigned char r0 = recon[j + 0], r1 = recon[j + 1], r2 = recon[j + 2]; + unsigned char p0 = precon[i + 0], p1 = precon[i + 1], p2 = precon[i + 2]; + recon[i + 0] = s0 + ((r0 + p0) >> 1u); + recon[i + 1] = s1 + ((r1 + p1) >> 1u); + recon[i + 2] = s2 + ((r2 + p2) >> 1u); + } + } else if(bytewidth >= 2) { + for(; i + 1 < length; i += 2, j += 2) { + unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1]; + unsigned char r0 = recon[j + 0], r1 = recon[j + 1]; + unsigned char p0 = precon[i + 0], p1 = precon[i + 1]; + recon[i + 0] = s0 + ((r0 + p0) >> 1u); + recon[i + 1] = s1 + ((r1 + p1) >> 1u); + } + } + for(; i != length; ++i, ++j) recon[i] = scanline[i] + ((recon[j] + precon[i]) >> 1u); + } else { + size_t j = 0; + for(i = 0; i != bytewidth; ++i) recon[i] = scanline[i]; + for(i = bytewidth; i != length; ++i, ++j) recon[i] = scanline[i] + (recon[j] >> 1u); + } + break; + case 4: + if(precon) { + size_t j = 0; + for(i = 0; i != bytewidth; ++i) { + recon[i] = (scanline[i] + precon[i]); /*paethPredictor(0, precon[i], 0) is always precon[i]*/ + } + + /* Unroll independent paths of the paeth predictor. A 6x and 8x version is also possible but that + adds too much code. Whether this speeds up anything depends on compiler and settings. */ + if(bytewidth >= 4) { + for(; i + 3 < length; i += 4, j += 4) { + unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1], s2 = scanline[i + 2], s3 = scanline[i + 3]; + unsigned char r0 = recon[j + 0], r1 = recon[j + 1], r2 = recon[j + 2], r3 = recon[j + 3]; + unsigned char p0 = precon[i + 0], p1 = precon[i + 1], p2 = precon[i + 2], p3 = precon[i + 3]; + unsigned char q0 = precon[j + 0], q1 = precon[j + 1], q2 = precon[j + 2], q3 = precon[j + 3]; + recon[i + 0] = s0 + paethPredictor(r0, p0, q0); + recon[i + 1] = s1 + paethPredictor(r1, p1, q1); + recon[i + 2] = s2 + paethPredictor(r2, p2, q2); + recon[i + 3] = s3 + paethPredictor(r3, p3, q3); + } + } else if(bytewidth >= 3) { + for(; i + 2 < length; i += 3, j += 3) { + unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1], s2 = scanline[i + 2]; + unsigned char r0 = recon[j + 0], r1 = recon[j + 1], r2 = recon[j + 2]; + unsigned char p0 = precon[i + 0], p1 = precon[i + 1], p2 = precon[i + 2]; + unsigned char q0 = precon[j + 0], q1 = precon[j + 1], q2 = precon[j + 2]; + recon[i + 0] = s0 + paethPredictor(r0, p0, q0); + recon[i + 1] = s1 + paethPredictor(r1, p1, q1); + recon[i + 2] = s2 + paethPredictor(r2, p2, q2); + } + } else if(bytewidth >= 2) { + for(; i + 1 < length; i += 2, j += 2) { + unsigned char s0 = scanline[i + 0], s1 = scanline[i + 1]; + unsigned char r0 = recon[j + 0], r1 = recon[j + 1]; + unsigned char p0 = precon[i + 0], p1 = precon[i + 1]; + unsigned char q0 = precon[j + 0], q1 = precon[j + 1]; + recon[i + 0] = s0 + paethPredictor(r0, p0, q0); + recon[i + 1] = s1 + paethPredictor(r1, p1, q1); + } + } + + for(; i != length; ++i, ++j) { + recon[i] = (scanline[i] + paethPredictor(recon[i - bytewidth], precon[i], precon[j])); + } + } else { + size_t j = 0; + for(i = 0; i != bytewidth; ++i) { + recon[i] = scanline[i]; + } + for(i = bytewidth; i != length; ++i, ++j) { + /*paethPredictor(recon[i - bytewidth], 0, 0) is always recon[i - bytewidth]*/ + recon[i] = (scanline[i] + recon[j]); + } + } + break; + default: return 36; /*error: invalid filter type given*/ + } + return 0; +} + +static unsigned unfilter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) { + /* + For PNG filter method 0 + this function unfilters a single image (e.g. without interlacing this is called once, with Adam7 seven times) + out must have enough bytes allocated already, in must have the scanlines + 1 filtertype byte per scanline + w and h are image dimensions or dimensions of reduced image, bpp is bits per pixel + in and out are allowed to be the same memory address (but aren't the same size since in has the extra filter bytes) + */ + + unsigned y; + unsigned char* prevline = 0; + + /*bytewidth is used for filtering, is 1 when bpp < 8, number of bytes per pixel otherwise*/ + size_t bytewidth = (bpp + 7u) / 8u; + /*the width of a scanline in bytes, not including the filter type*/ + size_t linebytes = lodepng_get_raw_size_idat(w, 1, bpp) - 1u; + + for(y = 0; y < h; ++y) { + size_t outindex = linebytes * y; + size_t inindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + unsigned char filterType = in[inindex]; + + CERROR_TRY_RETURN(unfilterScanline(&out[outindex], &in[inindex + 1], prevline, bytewidth, filterType, linebytes)); + + prevline = &out[outindex]; + } + + return 0; +} + +/* +in: Adam7 interlaced image, with no padding bits between scanlines, but between + reduced images so that each reduced image starts at a byte. +out: the same pixels, but re-ordered so that they're now a non-interlaced image with size w*h +bpp: bits per pixel +out has the following size in bits: w * h * bpp. +in is possibly bigger due to padding bits between reduced images. +out must be big enough AND must be 0 everywhere if bpp < 8 in the current implementation +(because that's likely a little bit faster) +NOTE: comments about padding bits are only relevant if bpp < 8 +*/ +static void Adam7_deinterlace(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) { + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + if(bpp >= 8) { + for(i = 0; i != 7; ++i) { + unsigned x, y, b; + size_t bytewidth = bpp / 8u; + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) { + size_t pixelinstart = passstart[i] + (y * passw[i] + x) * bytewidth; + size_t pixeloutstart = ((ADAM7_IY[i] + (size_t)y * ADAM7_DY[i]) * (size_t)w + + ADAM7_IX[i] + (size_t)x * ADAM7_DX[i]) * bytewidth; + for(b = 0; b < bytewidth; ++b) { + out[pixeloutstart + b] = in[pixelinstart + b]; + } + } + } + } else /*bpp < 8: Adam7 with pixels < 8 bit is a bit trickier: with bit pointers*/ { + for(i = 0; i != 7; ++i) { + unsigned x, y, b; + unsigned ilinebits = bpp * passw[i]; + unsigned olinebits = bpp * w; + size_t obp, ibp; /*bit pointers (for out and in buffer)*/ + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) { + ibp = (8 * passstart[i]) + (y * ilinebits + x * bpp); + obp = (ADAM7_IY[i] + (size_t)y * ADAM7_DY[i]) * olinebits + (ADAM7_IX[i] + (size_t)x * ADAM7_DX[i]) * bpp; + for(b = 0; b < bpp; ++b) { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + } + } + } +} + +static void removePaddingBits(unsigned char* out, const unsigned char* in, + size_t olinebits, size_t ilinebits, unsigned h) { + /* + After filtering there are still padding bits if scanlines have non multiple of 8 bit amounts. They need + to be removed (except at last scanline of (Adam7-reduced) image) before working with pure image buffers + for the Adam7 code, the color convert code and the output to the user. + in and out are allowed to be the same buffer, in may also be higher but still overlapping; in must + have >= ilinebits*h bits, out must have >= olinebits*h bits, olinebits must be <= ilinebits + also used to move bits after earlier such operations happened, e.g. in a sequence of reduced images from Adam7 + only useful if (ilinebits - olinebits) is a value in the range 1..7 + */ + unsigned y; + size_t diff = ilinebits - olinebits; + size_t ibp = 0, obp = 0; /*input and output bit pointers*/ + for(y = 0; y < h; ++y) { + size_t x; + for(x = 0; x < olinebits; ++x) { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + ibp += diff; + } +} + +/*out must be buffer big enough to contain full image, and in must contain the full decompressed data from +the IDAT chunks (with filter index bytes and possible padding bits) +return value is error*/ +static unsigned postProcessScanlines(unsigned char* out, unsigned char* in, + unsigned w, unsigned h, const LodePNGInfo* info_png) { + /* + This function converts the filtered-padded-interlaced data into pure 2D image buffer with the PNG's colortype. + Steps: + *) if no Adam7: 1) unfilter 2) remove padding bits (= possible extra bits per scanline if bpp < 8) + *) if adam7: 1) 7x unfilter 2) 7x remove padding bits 3) Adam7_deinterlace + NOTE: the in buffer will be overwritten with intermediate data! + */ + unsigned bpp = lodepng_get_bpp(&info_png->color); + if(bpp == 0) return 31; /*error: invalid colortype*/ + + if(info_png->interlace_method == 0) { + if(bpp < 8 && w * bpp != ((w * bpp + 7u) / 8u) * 8u) { + CERROR_TRY_RETURN(unfilter(in, in, w, h, bpp)); + removePaddingBits(out, in, w * bpp, ((w * bpp + 7u) / 8u) * 8u, h); + } + /*we can immediately filter into the out buffer, no other steps needed*/ + else CERROR_TRY_RETURN(unfilter(out, in, w, h, bpp)); + } else /*interlace_method is 1 (Adam7)*/ { + unsigned passw[7], passh[7]; size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + for(i = 0; i != 7; ++i) { + CERROR_TRY_RETURN(unfilter(&in[padded_passstart[i]], &in[filter_passstart[i]], passw[i], passh[i], bpp)); + /*TODO: possible efficiency improvement: if in this reduced image the bits fit nicely in 1 scanline, + move bytes instead of bits or move not at all*/ + if(bpp < 8) { + /*remove padding bits in scanlines; after this there still may be padding + bits between the different reduced images: each reduced image still starts nicely at a byte*/ + removePaddingBits(&in[passstart[i]], &in[padded_passstart[i]], passw[i] * bpp, + ((passw[i] * bpp + 7u) / 8u) * 8u, passh[i]); + } + } + + Adam7_deinterlace(out, in, w, h, bpp); + } + + return 0; +} + +static unsigned readChunk_PLTE(LodePNGColorMode* color, const unsigned char* data, size_t chunkLength) { + unsigned pos = 0, i; + color->palettesize = chunkLength / 3u; + if(color->palettesize == 0 || color->palettesize > 256) return 38; /*error: palette too small or big*/ + lodepng_color_mode_alloc_palette(color); + if(!color->palette && color->palettesize) { + color->palettesize = 0; + return 83; /*alloc fail*/ + } + + for(i = 0; i != color->palettesize; ++i) { + color->palette[4 * i + 0] = data[pos++]; /*R*/ + color->palette[4 * i + 1] = data[pos++]; /*G*/ + color->palette[4 * i + 2] = data[pos++]; /*B*/ + color->palette[4 * i + 3] = 255; /*alpha*/ + } + + return 0; /* OK */ +} + +static unsigned readChunk_tRNS(LodePNGColorMode* color, const unsigned char* data, size_t chunkLength) { + unsigned i; + if(color->colortype == LCT_PALETTE) { + /*error: more alpha values given than there are palette entries*/ + if(chunkLength > color->palettesize) return 39; + + for(i = 0; i != chunkLength; ++i) color->palette[4 * i + 3] = data[i]; + } else if(color->colortype == LCT_GREY) { + /*error: this chunk must be 2 bytes for grayscale image*/ + if(chunkLength != 2) return 30; + + color->key_defined = 1; + color->key_r = color->key_g = color->key_b = 256u * data[0] + data[1]; + } else if(color->colortype == LCT_RGB) { + /*error: this chunk must be 6 bytes for RGB image*/ + if(chunkLength != 6) return 41; + + color->key_defined = 1; + color->key_r = 256u * data[0] + data[1]; + color->key_g = 256u * data[2] + data[3]; + color->key_b = 256u * data[4] + data[5]; + } + else return 42; /*error: tRNS chunk not allowed for other color models*/ + + return 0; /* OK */ +} + + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +/*background color chunk (bKGD)*/ +static unsigned readChunk_bKGD(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + if(info->color.colortype == LCT_PALETTE) { + /*error: this chunk must be 1 byte for indexed color image*/ + if(chunkLength != 1) return 43; + + /*error: invalid palette index, or maybe this chunk appeared before PLTE*/ + if(data[0] >= info->color.palettesize) return 103; + + info->background_defined = 1; + info->background_r = info->background_g = info->background_b = data[0]; + } else if(info->color.colortype == LCT_GREY || info->color.colortype == LCT_GREY_ALPHA) { + /*error: this chunk must be 2 bytes for grayscale image*/ + if(chunkLength != 2) return 44; + + /*the values are truncated to bitdepth in the PNG file*/ + info->background_defined = 1; + info->background_r = info->background_g = info->background_b = 256u * data[0] + data[1]; + } else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_RGBA) { + /*error: this chunk must be 6 bytes for grayscale image*/ + if(chunkLength != 6) return 45; + + /*the values are truncated to bitdepth in the PNG file*/ + info->background_defined = 1; + info->background_r = 256u * data[0] + data[1]; + info->background_g = 256u * data[2] + data[3]; + info->background_b = 256u * data[4] + data[5]; + } + + return 0; /* OK */ +} + +/*text chunk (tEXt)*/ +static unsigned readChunk_tEXt(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + unsigned error = 0; + char *key = 0, *str = 0; + + while(!error) /*not really a while loop, only used to break on error*/ { + unsigned length, string2_begin; + + length = 0; + while(length < chunkLength && data[length] != 0) ++length; + /*even though it's not allowed by the standard, no error is thrown if + there's no null termination char, if the text is empty*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + lodepng_memcpy(key, data, length); + key[length] = 0; + + string2_begin = length + 1; /*skip keyword null terminator*/ + + length = (unsigned)(chunkLength < string2_begin ? 0 : chunkLength - string2_begin); + str = (char*)lodepng_malloc(length + 1); + if(!str) CERROR_BREAK(error, 83); /*alloc fail*/ + + lodepng_memcpy(str, data + string2_begin, length); + str[length] = 0; + + error = lodepng_add_text(info, key, str); + + break; + } + + lodepng_free(key); + lodepng_free(str); + + return error; +} + +/*compressed text chunk (zTXt)*/ +static unsigned readChunk_zTXt(LodePNGInfo* info, const LodePNGDecoderSettings* decoder, + const unsigned char* data, size_t chunkLength) { + unsigned error = 0; + + /*copy the object to change parameters in it*/ + LodePNGDecompressSettings zlibsettings = decoder->zlibsettings; + + unsigned length, string2_begin; + char *key = 0; + unsigned char* str = 0; + size_t size = 0; + + while(!error) /*not really a while loop, only used to break on error*/ { + for(length = 0; length < chunkLength && data[length] != 0; ++length) ; + if(length + 2 >= chunkLength) CERROR_BREAK(error, 75); /*no null termination, corrupt?*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + lodepng_memcpy(key, data, length); + key[length] = 0; + + if(data[length + 1] != 0) CERROR_BREAK(error, 72); /*the 0 byte indicating compression must be 0*/ + + string2_begin = length + 2; + if(string2_begin > chunkLength) CERROR_BREAK(error, 75); /*no null termination, corrupt?*/ + + length = (unsigned)chunkLength - string2_begin; + zlibsettings.max_output_size = decoder->max_text_size; + /*will fail if zlib error, e.g. if length is too small*/ + error = zlib_decompress(&str, &size, 0, &data[string2_begin], + length, &zlibsettings); + /*error: compressed text larger than decoder->max_text_size*/ + if(error && size > zlibsettings.max_output_size) error = 112; + if(error) break; + error = lodepng_add_text_sized(info, key, (char*)str, size); + break; + } + + lodepng_free(key); + lodepng_free(str); + + return error; +} + +/*international text chunk (iTXt)*/ +static unsigned readChunk_iTXt(LodePNGInfo* info, const LodePNGDecoderSettings* decoder, + const unsigned char* data, size_t chunkLength) { + unsigned error = 0; + unsigned i; + + /*copy the object to change parameters in it*/ + LodePNGDecompressSettings zlibsettings = decoder->zlibsettings; + + unsigned length, begin, compressed; + char *key = 0, *langtag = 0, *transkey = 0; + + while(!error) /*not really a while loop, only used to break on error*/ { + /*Quick check if the chunk length isn't too small. Even without check + it'd still fail with other error checks below if it's too short. This just gives a different error code.*/ + if(chunkLength < 5) CERROR_BREAK(error, 30); /*iTXt chunk too short*/ + + /*read the key*/ + for(length = 0; length < chunkLength && data[length] != 0; ++length) ; + if(length + 3 >= chunkLength) CERROR_BREAK(error, 75); /*no null termination char, corrupt?*/ + if(length < 1 || length > 79) CERROR_BREAK(error, 89); /*keyword too short or long*/ + + key = (char*)lodepng_malloc(length + 1); + if(!key) CERROR_BREAK(error, 83); /*alloc fail*/ + + lodepng_memcpy(key, data, length); + key[length] = 0; + + /*read the compression method*/ + compressed = data[length + 1]; + if(data[length + 2] != 0) CERROR_BREAK(error, 72); /*the 0 byte indicating compression must be 0*/ + + /*even though it's not allowed by the standard, no error is thrown if + there's no null termination char, if the text is empty for the next 3 texts*/ + + /*read the langtag*/ + begin = length + 3; + length = 0; + for(i = begin; i < chunkLength && data[i] != 0; ++i) ++length; + + langtag = (char*)lodepng_malloc(length + 1); + if(!langtag) CERROR_BREAK(error, 83); /*alloc fail*/ + + lodepng_memcpy(langtag, data + begin, length); + langtag[length] = 0; + + /*read the transkey*/ + begin += length + 1; + length = 0; + for(i = begin; i < chunkLength && data[i] != 0; ++i) ++length; + + transkey = (char*)lodepng_malloc(length + 1); + if(!transkey) CERROR_BREAK(error, 83); /*alloc fail*/ + + lodepng_memcpy(transkey, data + begin, length); + transkey[length] = 0; + + /*read the actual text*/ + begin += length + 1; + + length = (unsigned)chunkLength < begin ? 0 : (unsigned)chunkLength - begin; + + if(compressed) { + unsigned char* str = 0; + size_t size = 0; + zlibsettings.max_output_size = decoder->max_text_size; + /*will fail if zlib error, e.g. if length is too small*/ + error = zlib_decompress(&str, &size, 0, &data[begin], + length, &zlibsettings); + /*error: compressed text larger than decoder->max_text_size*/ + if(error && size > zlibsettings.max_output_size) error = 112; + if(!error) error = lodepng_add_itext_sized(info, key, langtag, transkey, (char*)str, size); + lodepng_free(str); + } else { + error = lodepng_add_itext_sized(info, key, langtag, transkey, (char*)(data + begin), length); + } + + break; + } + + lodepng_free(key); + lodepng_free(langtag); + lodepng_free(transkey); + + return error; +} + +static unsigned readChunk_tIME(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + if(chunkLength != 7) return 73; /*invalid tIME chunk size*/ + + info->time_defined = 1; + info->time.year = 256u * data[0] + data[1]; + info->time.month = data[2]; + info->time.day = data[3]; + info->time.hour = data[4]; + info->time.minute = data[5]; + info->time.second = data[6]; + + return 0; /* OK */ +} + +static unsigned readChunk_pHYs(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + if(chunkLength != 9) return 74; /*invalid pHYs chunk size*/ + + info->phys_defined = 1; + info->phys_x = 16777216u * data[0] + 65536u * data[1] + 256u * data[2] + data[3]; + info->phys_y = 16777216u * data[4] + 65536u * data[5] + 256u * data[6] + data[7]; + info->phys_unit = data[8]; + + return 0; /* OK */ +} + +static unsigned readChunk_gAMA(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + if(chunkLength != 4) return 96; /*invalid gAMA chunk size*/ + + info->gama_defined = 1; + info->gama_gamma = 16777216u * data[0] + 65536u * data[1] + 256u * data[2] + data[3]; + + return 0; /* OK */ +} + +static unsigned readChunk_cHRM(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + if(chunkLength != 32) return 97; /*invalid cHRM chunk size*/ + + info->chrm_defined = 1; + info->chrm_white_x = 16777216u * data[ 0] + 65536u * data[ 1] + 256u * data[ 2] + data[ 3]; + info->chrm_white_y = 16777216u * data[ 4] + 65536u * data[ 5] + 256u * data[ 6] + data[ 7]; + info->chrm_red_x = 16777216u * data[ 8] + 65536u * data[ 9] + 256u * data[10] + data[11]; + info->chrm_red_y = 16777216u * data[12] + 65536u * data[13] + 256u * data[14] + data[15]; + info->chrm_green_x = 16777216u * data[16] + 65536u * data[17] + 256u * data[18] + data[19]; + info->chrm_green_y = 16777216u * data[20] + 65536u * data[21] + 256u * data[22] + data[23]; + info->chrm_blue_x = 16777216u * data[24] + 65536u * data[25] + 256u * data[26] + data[27]; + info->chrm_blue_y = 16777216u * data[28] + 65536u * data[29] + 256u * data[30] + data[31]; + + return 0; /* OK */ +} + +static unsigned readChunk_sRGB(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + if(chunkLength != 1) return 98; /*invalid sRGB chunk size (this one is never ignored)*/ + + info->srgb_defined = 1; + info->srgb_intent = data[0]; + + return 0; /* OK */ +} + +static unsigned readChunk_iCCP(LodePNGInfo* info, const LodePNGDecoderSettings* decoder, + const unsigned char* data, size_t chunkLength) { + unsigned error = 0; + unsigned i; + size_t size = 0; + /*copy the object to change parameters in it*/ + LodePNGDecompressSettings zlibsettings = decoder->zlibsettings; + + unsigned length, string2_begin; + + info->iccp_defined = 1; + if(info->iccp_name) lodepng_clear_icc(info); + + for(length = 0; length < chunkLength && data[length] != 0; ++length) ; + if(length + 2 >= chunkLength) return 75; /*no null termination, corrupt?*/ + if(length < 1 || length > 79) return 89; /*keyword too short or long*/ + + info->iccp_name = (char*)lodepng_malloc(length + 1); + if(!info->iccp_name) return 83; /*alloc fail*/ + + info->iccp_name[length] = 0; + for(i = 0; i != length; ++i) info->iccp_name[i] = (char)data[i]; + + if(data[length + 1] != 0) return 72; /*the 0 byte indicating compression must be 0*/ + + string2_begin = length + 2; + if(string2_begin > chunkLength) return 75; /*no null termination, corrupt?*/ + + length = (unsigned)chunkLength - string2_begin; + zlibsettings.max_output_size = decoder->max_icc_size; + error = zlib_decompress(&info->iccp_profile, &size, 0, + &data[string2_begin], + length, &zlibsettings); + /*error: ICC profile larger than decoder->max_icc_size*/ + if(error && size > zlibsettings.max_output_size) error = 113; + info->iccp_profile_size = size; + if(!error && !info->iccp_profile_size) error = 100; /*invalid ICC profile size*/ + return error; +} + +/*significant bits chunk (sBIT)*/ +static unsigned readChunk_sBIT(LodePNGInfo* info, const unsigned char* data, size_t chunkLength) { + unsigned bitdepth = (info->color.colortype == LCT_PALETTE) ? 8 : info->color.bitdepth; + if(info->color.colortype == LCT_GREY) { + /*error: this chunk must be 1 bytes for grayscale image*/ + if(chunkLength != 1) return 114; + if(data[0] == 0 || data[0] > bitdepth) return 115; + info->sbit_defined = 1; + info->sbit_r = info->sbit_g = info->sbit_b = data[0]; /*setting g and b is not required, but sensible*/ + } else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_PALETTE) { + /*error: this chunk must be 3 bytes for RGB and palette image*/ + if(chunkLength != 3) return 114; + if(data[0] == 0 || data[1] == 0 || data[2] == 0) return 115; + if(data[0] > bitdepth || data[1] > bitdepth || data[2] > bitdepth) return 115; + info->sbit_defined = 1; + info->sbit_r = data[0]; + info->sbit_g = data[1]; + info->sbit_b = data[2]; + } else if(info->color.colortype == LCT_GREY_ALPHA) { + /*error: this chunk must be 2 byte for grayscale with alpha image*/ + if(chunkLength != 2) return 114; + if(data[0] == 0 || data[1] == 0) return 115; + if(data[0] > bitdepth || data[1] > bitdepth) return 115; + info->sbit_defined = 1; + info->sbit_r = info->sbit_g = info->sbit_b = data[0]; /*setting g and b is not required, but sensible*/ + info->sbit_a = data[1]; + } else if(info->color.colortype == LCT_RGBA) { + /*error: this chunk must be 4 bytes for grayscale image*/ + if(chunkLength != 4) return 114; + if(data[0] == 0 || data[1] == 0 || data[2] == 0 || data[3] == 0) return 115; + if(data[0] > bitdepth || data[1] > bitdepth || data[2] > bitdepth || data[3] > bitdepth) return 115; + info->sbit_defined = 1; + info->sbit_r = data[0]; + info->sbit_g = data[1]; + info->sbit_b = data[2]; + info->sbit_a = data[3]; + } + + return 0; /* OK */ +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +unsigned lodepng_inspect_chunk(LodePNGState* state, size_t pos, + const unsigned char* in, size_t insize) { + const unsigned char* chunk = in + pos; + unsigned chunkLength; + const unsigned char* data; + unsigned unhandled = 0; + unsigned error = 0; + + if(pos + 4 > insize) return 30; + chunkLength = lodepng_chunk_length(chunk); + if(chunkLength > 2147483647) return 63; + data = lodepng_chunk_data_const(chunk); + if(chunkLength + 12 > insize - pos) return 30; + + if(lodepng_chunk_type_equals(chunk, "PLTE")) { + error = readChunk_PLTE(&state->info_png.color, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "tRNS")) { + error = readChunk_tRNS(&state->info_png.color, data, chunkLength); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + } else if(lodepng_chunk_type_equals(chunk, "bKGD")) { + error = readChunk_bKGD(&state->info_png, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "tEXt")) { + error = readChunk_tEXt(&state->info_png, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "zTXt")) { + error = readChunk_zTXt(&state->info_png, &state->decoder, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "iTXt")) { + error = readChunk_iTXt(&state->info_png, &state->decoder, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "tIME")) { + error = readChunk_tIME(&state->info_png, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "pHYs")) { + error = readChunk_pHYs(&state->info_png, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "gAMA")) { + error = readChunk_gAMA(&state->info_png, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "cHRM")) { + error = readChunk_cHRM(&state->info_png, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "sRGB")) { + error = readChunk_sRGB(&state->info_png, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "iCCP")) { + error = readChunk_iCCP(&state->info_png, &state->decoder, data, chunkLength); + } else if(lodepng_chunk_type_equals(chunk, "sBIT")) { + error = readChunk_sBIT(&state->info_png, data, chunkLength); +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } else { + /* unhandled chunk is ok (is not an error) */ + unhandled = 1; + } + + if(!error && !unhandled && !state->decoder.ignore_crc) { + if(lodepng_chunk_check_crc(chunk)) return 57; /*invalid CRC*/ + } + + return error; +} + +/*read a PNG, the result will be in the same color type as the PNG (hence "generic")*/ +static void decodeGeneric(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize) { + unsigned char IEND = 0; + const unsigned char* chunk; /*points to beginning of next chunk*/ + unsigned char* idat; /*the data from idat chunks, zlib compressed*/ + size_t idatsize = 0; + unsigned char* scanlines = 0; + size_t scanlines_size = 0, expected_size = 0; + size_t outsize = 0; + + /*for unknown chunk order*/ + unsigned unknown = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + unsigned critical_pos = 1; /*1 = after IHDR, 2 = after PLTE, 3 = after IDAT*/ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + + + /* safe output values in case error happens */ + *out = 0; + *w = *h = 0; + + state->error = lodepng_inspect(w, h, state, in, insize); /*reads header and resets other parameters in state->info_png*/ + if(state->error) return; + + if(lodepng_pixel_overflow(*w, *h, &state->info_png.color, &state->info_raw)) { + CERROR_RETURN(state->error, 92); /*overflow possible due to amount of pixels*/ + } + + /*the input filesize is a safe upper bound for the sum of idat chunks size*/ + idat = (unsigned char*)lodepng_malloc(insize); + if(!idat) CERROR_RETURN(state->error, 83); /*alloc fail*/ + + chunk = &in[33]; /*first byte of the first chunk after the header*/ + + /*loop through the chunks, ignoring unknown chunks and stopping at IEND chunk. + IDAT data is put at the start of the in buffer*/ + while(!IEND && !state->error) { + unsigned chunkLength; + const unsigned char* data; /*the data in the chunk*/ + size_t pos = (size_t)(chunk - in); + + /*error: next chunk out of bounds of the in buffer*/ + if(chunk < in || pos + 12 > insize) { + if(state->decoder.ignore_end) break; /*other errors may still happen though*/ + CERROR_BREAK(state->error, 30); + } + + /*length of the data of the chunk, excluding the 12 bytes for length, chunk type and CRC*/ + chunkLength = lodepng_chunk_length(chunk); + /*error: chunk length larger than the max PNG chunk size*/ + if(chunkLength > 2147483647) { + if(state->decoder.ignore_end) break; /*other errors may still happen though*/ + CERROR_BREAK(state->error, 63); + } + + if(pos + (size_t)chunkLength + 12 > insize || pos + (size_t)chunkLength + 12 < pos) { + CERROR_BREAK(state->error, 64); /*error: size of the in buffer too small to contain next chunk (or int overflow)*/ + } + + data = lodepng_chunk_data_const(chunk); + + unknown = 0; + + /*IDAT chunk, containing compressed image data*/ + if(lodepng_chunk_type_equals(chunk, "IDAT")) { + size_t newsize; + if(lodepng_addofl(idatsize, chunkLength, &newsize)) CERROR_BREAK(state->error, 95); + if(newsize > insize) CERROR_BREAK(state->error, 95); + lodepng_memcpy(idat + idatsize, data, chunkLength); + idatsize += chunkLength; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + critical_pos = 3; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } else if(lodepng_chunk_type_equals(chunk, "IEND")) { + /*IEND chunk*/ + IEND = 1; + } else if(lodepng_chunk_type_equals(chunk, "PLTE")) { + /*palette chunk (PLTE)*/ + state->error = readChunk_PLTE(&state->info_png.color, data, chunkLength); + if(state->error) break; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + critical_pos = 2; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } else if(lodepng_chunk_type_equals(chunk, "tRNS")) { + /*palette transparency chunk (tRNS). Even though this one is an ancillary chunk , it is still compiled + in without 'LODEPNG_COMPILE_ANCILLARY_CHUNKS' because it contains essential color information that + affects the alpha channel of pixels. */ + state->error = readChunk_tRNS(&state->info_png.color, data, chunkLength); + if(state->error) break; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*background color chunk (bKGD)*/ + } else if(lodepng_chunk_type_equals(chunk, "bKGD")) { + state->error = readChunk_bKGD(&state->info_png, data, chunkLength); + if(state->error) break; + } else if(lodepng_chunk_type_equals(chunk, "tEXt")) { + /*text chunk (tEXt)*/ + if(state->decoder.read_text_chunks) { + state->error = readChunk_tEXt(&state->info_png, data, chunkLength); + if(state->error) break; + } + } else if(lodepng_chunk_type_equals(chunk, "zTXt")) { + /*compressed text chunk (zTXt)*/ + if(state->decoder.read_text_chunks) { + state->error = readChunk_zTXt(&state->info_png, &state->decoder, data, chunkLength); + if(state->error) break; + } + } else if(lodepng_chunk_type_equals(chunk, "iTXt")) { + /*international text chunk (iTXt)*/ + if(state->decoder.read_text_chunks) { + state->error = readChunk_iTXt(&state->info_png, &state->decoder, data, chunkLength); + if(state->error) break; + } + } else if(lodepng_chunk_type_equals(chunk, "tIME")) { + state->error = readChunk_tIME(&state->info_png, data, chunkLength); + if(state->error) break; + } else if(lodepng_chunk_type_equals(chunk, "pHYs")) { + state->error = readChunk_pHYs(&state->info_png, data, chunkLength); + if(state->error) break; + } else if(lodepng_chunk_type_equals(chunk, "gAMA")) { + state->error = readChunk_gAMA(&state->info_png, data, chunkLength); + if(state->error) break; + } else if(lodepng_chunk_type_equals(chunk, "cHRM")) { + state->error = readChunk_cHRM(&state->info_png, data, chunkLength); + if(state->error) break; + } else if(lodepng_chunk_type_equals(chunk, "sRGB")) { + state->error = readChunk_sRGB(&state->info_png, data, chunkLength); + if(state->error) break; + } else if(lodepng_chunk_type_equals(chunk, "iCCP")) { + state->error = readChunk_iCCP(&state->info_png, &state->decoder, data, chunkLength); + if(state->error) break; + } else if(lodepng_chunk_type_equals(chunk, "sBIT")) { + state->error = readChunk_sBIT(&state->info_png, data, chunkLength); + if(state->error) break; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } else /*it's not an implemented chunk type, so ignore it: skip over the data*/ { + /*error: unknown critical chunk (5th bit of first byte of chunk type is 0)*/ + if(!state->decoder.ignore_critical && !lodepng_chunk_ancillary(chunk)) { + CERROR_BREAK(state->error, 69); + } + + unknown = 1; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + if(state->decoder.remember_unknown_chunks) { + state->error = lodepng_chunk_append(&state->info_png.unknown_chunks_data[critical_pos - 1], + &state->info_png.unknown_chunks_size[critical_pos - 1], chunk); + if(state->error) break; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + } + + if(!state->decoder.ignore_crc && !unknown) /*check CRC if wanted, only on known chunk types*/ { + if(lodepng_chunk_check_crc(chunk)) CERROR_BREAK(state->error, 57); /*invalid CRC*/ + } + + if(!IEND) chunk = lodepng_chunk_next_const(chunk, in + insize); + } + + if(!state->error && state->info_png.color.colortype == LCT_PALETTE && !state->info_png.color.palette) { + state->error = 106; /* error: PNG file must have PLTE chunk if color type is palette */ + } + + if(!state->error) { + /*predict output size, to allocate exact size for output buffer to avoid more dynamic allocation. + If the decompressed size does not match the prediction, the image must be corrupt.*/ + if(state->info_png.interlace_method == 0) { + size_t bpp = lodepng_get_bpp(&state->info_png.color); + expected_size = lodepng_get_raw_size_idat(*w, *h, bpp); + } else { + size_t bpp = lodepng_get_bpp(&state->info_png.color); + /*Adam-7 interlaced: expected size is the sum of the 7 sub-images sizes*/ + expected_size = 0; + expected_size += lodepng_get_raw_size_idat((*w + 7) >> 3, (*h + 7) >> 3, bpp); + if(*w > 4) expected_size += lodepng_get_raw_size_idat((*w + 3) >> 3, (*h + 7) >> 3, bpp); + expected_size += lodepng_get_raw_size_idat((*w + 3) >> 2, (*h + 3) >> 3, bpp); + if(*w > 2) expected_size += lodepng_get_raw_size_idat((*w + 1) >> 2, (*h + 3) >> 2, bpp); + expected_size += lodepng_get_raw_size_idat((*w + 1) >> 1, (*h + 1) >> 2, bpp); + if(*w > 1) expected_size += lodepng_get_raw_size_idat((*w + 0) >> 1, (*h + 1) >> 1, bpp); + expected_size += lodepng_get_raw_size_idat((*w + 0), (*h + 0) >> 1, bpp); + } + + state->error = zlib_decompress(&scanlines, &scanlines_size, expected_size, idat, idatsize, &state->decoder.zlibsettings); + } + if(!state->error && scanlines_size != expected_size) state->error = 91; /*decompressed size doesn't match prediction*/ + lodepng_free(idat); + + if(!state->error) { + outsize = lodepng_get_raw_size(*w, *h, &state->info_png.color); + *out = (unsigned char*)lodepng_malloc(outsize); + if(!*out) state->error = 83; /*alloc fail*/ + } + if(!state->error) { + lodepng_memset(*out, 0, outsize); + state->error = postProcessScanlines(*out, scanlines, *w, *h, &state->info_png); + } + lodepng_free(scanlines); +} + +unsigned lodepng_decode(unsigned char** out, unsigned* w, unsigned* h, + LodePNGState* state, + const unsigned char* in, size_t insize) { + *out = 0; + decodeGeneric(out, w, h, state, in, insize); + if(state->error) return state->error; + if(!state->decoder.color_convert || lodepng_color_mode_equal(&state->info_raw, &state->info_png.color)) { + /*same color type, no copying or converting of data needed*/ + /*store the info_png color settings on the info_raw so that the info_raw still reflects what colortype + the raw image has to the end user*/ + if(!state->decoder.color_convert) { + state->error = lodepng_color_mode_copy(&state->info_raw, &state->info_png.color); + if(state->error) return state->error; + } + } else { /*color conversion needed*/ + unsigned char* data = *out; + size_t outsize; + + /*TODO: check if this works according to the statement in the documentation: "The converter can convert + from grayscale input color type, to 8-bit grayscale or grayscale with alpha"*/ + if(!(state->info_raw.colortype == LCT_RGB || state->info_raw.colortype == LCT_RGBA) + && !(state->info_raw.bitdepth == 8)) { + return 56; /*unsupported color mode conversion*/ + } + + outsize = lodepng_get_raw_size(*w, *h, &state->info_raw); + *out = (unsigned char*)lodepng_malloc(outsize); + if(!(*out)) { + state->error = 83; /*alloc fail*/ + } + else state->error = lodepng_convert(*out, data, &state->info_raw, + &state->info_png.color, *w, *h); + lodepng_free(data); + } + return state->error; +} + +unsigned lodepng_decode_memory(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, + size_t insize, LodePNGColorType colortype, unsigned bitdepth) { + unsigned error; + LodePNGState state; + lodepng_state_init(&state); + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*disable reading things that this function doesn't output*/ + state.decoder.read_text_chunks = 0; + state.decoder.remember_unknown_chunks = 0; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + error = lodepng_decode(out, w, h, &state, in, insize); + lodepng_state_cleanup(&state); + return error; +} + +unsigned lodepng_decode32(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, size_t insize) { + return lodepng_decode_memory(out, w, h, in, insize, LCT_RGBA, 8); +} + +unsigned lodepng_decode24(unsigned char** out, unsigned* w, unsigned* h, const unsigned char* in, size_t insize) { + return lodepng_decode_memory(out, w, h, in, insize, LCT_RGB, 8); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned lodepng_decode_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename, + LodePNGColorType colortype, unsigned bitdepth) { + unsigned char* buffer = 0; + size_t buffersize; + unsigned error; + /* safe output values in case error happens */ + *out = 0; + *w = *h = 0; + error = lodepng_load_file(&buffer, &buffersize, filename); + if(!error) error = lodepng_decode_memory(out, w, h, buffer, buffersize, colortype, bitdepth); + lodepng_free(buffer); + return error; +} + +unsigned lodepng_decode32_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename) { + return lodepng_decode_file(out, w, h, filename, LCT_RGBA, 8); +} + +unsigned lodepng_decode24_file(unsigned char** out, unsigned* w, unsigned* h, const char* filename) { + return lodepng_decode_file(out, w, h, filename, LCT_RGB, 8); +} +#endif /*LODEPNG_COMPILE_DISK*/ + +void lodepng_decoder_settings_init(LodePNGDecoderSettings* settings) { + settings->color_convert = 1; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + settings->read_text_chunks = 1; + settings->remember_unknown_chunks = 0; + settings->max_text_size = 16777216; + settings->max_icc_size = 16777216; /* 16MB is much more than enough for any reasonable ICC profile */ +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + settings->ignore_crc = 0; + settings->ignore_critical = 0; + settings->ignore_end = 0; + lodepng_decompress_settings_init(&settings->zlibsettings); +} + +#endif /*LODEPNG_COMPILE_DECODER*/ + +#if defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) + +void lodepng_state_init(LodePNGState* state) { +#ifdef LODEPNG_COMPILE_DECODER + lodepng_decoder_settings_init(&state->decoder); +#endif /*LODEPNG_COMPILE_DECODER*/ +#ifdef LODEPNG_COMPILE_ENCODER + lodepng_encoder_settings_init(&state->encoder); +#endif /*LODEPNG_COMPILE_ENCODER*/ + lodepng_color_mode_init(&state->info_raw); + lodepng_info_init(&state->info_png); + state->error = 1; +} + +void lodepng_state_cleanup(LodePNGState* state) { + lodepng_color_mode_cleanup(&state->info_raw); + lodepng_info_cleanup(&state->info_png); +} + +void lodepng_state_copy(LodePNGState* dest, const LodePNGState* source) { + lodepng_state_cleanup(dest); + *dest = *source; + lodepng_color_mode_init(&dest->info_raw); + lodepng_info_init(&dest->info_png); + dest->error = lodepng_color_mode_copy(&dest->info_raw, &source->info_raw); if(dest->error) return; + dest->error = lodepng_info_copy(&dest->info_png, &source->info_png); if(dest->error) return; +} + +#endif /* defined(LODEPNG_COMPILE_DECODER) || defined(LODEPNG_COMPILE_ENCODER) */ + +#ifdef LODEPNG_COMPILE_ENCODER + +/* ////////////////////////////////////////////////////////////////////////// */ +/* / PNG Encoder / */ +/* ////////////////////////////////////////////////////////////////////////// */ + + +static unsigned writeSignature(ucvector* out) { + size_t pos = out->size; + const unsigned char signature[] = {137, 80, 78, 71, 13, 10, 26, 10}; + /*8 bytes PNG signature, aka the magic bytes*/ + if(!ucvector_resize(out, out->size + 8)) return 83; /*alloc fail*/ + lodepng_memcpy(out->data + pos, signature, 8); + return 0; +} + +static unsigned addChunk_IHDR(ucvector* out, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth, unsigned interlace_method) { + unsigned char *chunk, *data; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 13, "IHDR")); + data = chunk + 8; + + lodepng_set32bitInt(data + 0, w); /*width*/ + lodepng_set32bitInt(data + 4, h); /*height*/ + data[8] = (unsigned char)bitdepth; /*bit depth*/ + data[9] = (unsigned char)colortype; /*color type*/ + data[10] = 0; /*compression method*/ + data[11] = 0; /*filter method*/ + data[12] = interlace_method; /*interlace method*/ + + lodepng_chunk_generate_crc(chunk); + return 0; +} + +/* only adds the chunk if needed (there is a key or palette with alpha) */ +static unsigned addChunk_PLTE(ucvector* out, const LodePNGColorMode* info) { + unsigned char* chunk; + size_t i, j = 8; + + if(info->palettesize == 0 || info->palettesize > 256) { + return 68; /*invalid palette size, it is only allowed to be 1-256*/ + } + + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, info->palettesize * 3, "PLTE")); + + for(i = 0; i != info->palettesize; ++i) { + /*add all channels except alpha channel*/ + chunk[j++] = info->palette[i * 4 + 0]; + chunk[j++] = info->palette[i * 4 + 1]; + chunk[j++] = info->palette[i * 4 + 2]; + } + + lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_tRNS(ucvector* out, const LodePNGColorMode* info) { + unsigned char* chunk = 0; + + if(info->colortype == LCT_PALETTE) { + size_t i, amount = info->palettesize; + /*the tail of palette values that all have 255 as alpha, does not have to be encoded*/ + for(i = info->palettesize; i != 0; --i) { + if(info->palette[4 * (i - 1) + 3] != 255) break; + --amount; + } + if(amount) { + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, amount, "tRNS")); + /*add the alpha channel values from the palette*/ + for(i = 0; i != amount; ++i) chunk[8 + i] = info->palette[4 * i + 3]; + } + } else if(info->colortype == LCT_GREY) { + if(info->key_defined) { + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 2, "tRNS")); + chunk[8] = (unsigned char)(info->key_r >> 8); + chunk[9] = (unsigned char)(info->key_r & 255); + } + } else if(info->colortype == LCT_RGB) { + if(info->key_defined) { + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 6, "tRNS")); + chunk[8] = (unsigned char)(info->key_r >> 8); + chunk[9] = (unsigned char)(info->key_r & 255); + chunk[10] = (unsigned char)(info->key_g >> 8); + chunk[11] = (unsigned char)(info->key_g & 255); + chunk[12] = (unsigned char)(info->key_b >> 8); + chunk[13] = (unsigned char)(info->key_b & 255); + } + } + + if(chunk) lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_IDAT(ucvector* out, const unsigned char* data, size_t datasize, + LodePNGCompressSettings* zlibsettings) { + unsigned error = 0; + unsigned char* zlib = 0; + size_t zlibsize = 0; + + error = zlib_compress(&zlib, &zlibsize, data, datasize, zlibsettings); + if(!error) { + error = lodepng_chunk_createv(out, zlibsize, "IDAT", zlib); + } + lodepng_free(zlib); + return error; +} + +static unsigned addChunk_IEND(ucvector* out) { + return lodepng_chunk_createv(out, 0, "IEND", 0); +} + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + +static unsigned addChunk_tEXt(ucvector* out, const char* keyword, const char* textstring) { + unsigned char* chunk = 0; + size_t keysize = lodepng_strlen(keyword), textsize = lodepng_strlen(textstring); + size_t size = keysize + 1 + textsize; + if(keysize < 1 || keysize > 79) return 89; /*error: invalid keyword size*/ + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, size, "tEXt")); + lodepng_memcpy(chunk + 8, keyword, keysize); + chunk[8 + keysize] = 0; /*null termination char*/ + lodepng_memcpy(chunk + 9 + keysize, textstring, textsize); + lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_zTXt(ucvector* out, const char* keyword, const char* textstring, + LodePNGCompressSettings* zlibsettings) { + unsigned error = 0; + unsigned char* chunk = 0; + unsigned char* compressed = 0; + size_t compressedsize = 0; + size_t textsize = lodepng_strlen(textstring); + size_t keysize = lodepng_strlen(keyword); + if(keysize < 1 || keysize > 79) return 89; /*error: invalid keyword size*/ + + error = zlib_compress(&compressed, &compressedsize, + (const unsigned char*)textstring, textsize, zlibsettings); + if(!error) { + size_t size = keysize + 2 + compressedsize; + error = lodepng_chunk_init(&chunk, out, size, "zTXt"); + } + if(!error) { + lodepng_memcpy(chunk + 8, keyword, keysize); + chunk[8 + keysize] = 0; /*null termination char*/ + chunk[9 + keysize] = 0; /*compression method: 0*/ + lodepng_memcpy(chunk + 10 + keysize, compressed, compressedsize); + lodepng_chunk_generate_crc(chunk); + } + + lodepng_free(compressed); + return error; +} + +static unsigned addChunk_iTXt(ucvector* out, unsigned compress, const char* keyword, const char* langtag, + const char* transkey, const char* textstring, LodePNGCompressSettings* zlibsettings) { + unsigned error = 0; + unsigned char* chunk = 0; + unsigned char* compressed = 0; + size_t compressedsize = 0; + size_t textsize = lodepng_strlen(textstring); + size_t keysize = lodepng_strlen(keyword), langsize = lodepng_strlen(langtag), transsize = lodepng_strlen(transkey); + + if(keysize < 1 || keysize > 79) return 89; /*error: invalid keyword size*/ + + if(compress) { + error = zlib_compress(&compressed, &compressedsize, + (const unsigned char*)textstring, textsize, zlibsettings); + } + if(!error) { + size_t size = keysize + 3 + langsize + 1 + transsize + 1 + (compress ? compressedsize : textsize); + error = lodepng_chunk_init(&chunk, out, size, "iTXt"); + } + if(!error) { + size_t pos = 8; + lodepng_memcpy(chunk + pos, keyword, keysize); + pos += keysize; + chunk[pos++] = 0; /*null termination char*/ + chunk[pos++] = (compress ? 1 : 0); /*compression flag*/ + chunk[pos++] = 0; /*compression method: 0*/ + lodepng_memcpy(chunk + pos, langtag, langsize); + pos += langsize; + chunk[pos++] = 0; /*null termination char*/ + lodepng_memcpy(chunk + pos, transkey, transsize); + pos += transsize; + chunk[pos++] = 0; /*null termination char*/ + if(compress) { + lodepng_memcpy(chunk + pos, compressed, compressedsize); + } else { + lodepng_memcpy(chunk + pos, textstring, textsize); + } + lodepng_chunk_generate_crc(chunk); + } + + lodepng_free(compressed); + return error; +} + +static unsigned addChunk_bKGD(ucvector* out, const LodePNGInfo* info) { + unsigned char* chunk = 0; + if(info->color.colortype == LCT_GREY || info->color.colortype == LCT_GREY_ALPHA) { + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 2, "bKGD")); + chunk[8] = (unsigned char)(info->background_r >> 8); + chunk[9] = (unsigned char)(info->background_r & 255); + } else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_RGBA) { + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 6, "bKGD")); + chunk[8] = (unsigned char)(info->background_r >> 8); + chunk[9] = (unsigned char)(info->background_r & 255); + chunk[10] = (unsigned char)(info->background_g >> 8); + chunk[11] = (unsigned char)(info->background_g & 255); + chunk[12] = (unsigned char)(info->background_b >> 8); + chunk[13] = (unsigned char)(info->background_b & 255); + } else if(info->color.colortype == LCT_PALETTE) { + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 1, "bKGD")); + chunk[8] = (unsigned char)(info->background_r & 255); /*palette index*/ + } + if(chunk) lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_tIME(ucvector* out, const LodePNGTime* time) { + unsigned char* chunk; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 7, "tIME")); + chunk[8] = (unsigned char)(time->year >> 8); + chunk[9] = (unsigned char)(time->year & 255); + chunk[10] = (unsigned char)time->month; + chunk[11] = (unsigned char)time->day; + chunk[12] = (unsigned char)time->hour; + chunk[13] = (unsigned char)time->minute; + chunk[14] = (unsigned char)time->second; + lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_pHYs(ucvector* out, const LodePNGInfo* info) { + unsigned char* chunk; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 9, "pHYs")); + lodepng_set32bitInt(chunk + 8, info->phys_x); + lodepng_set32bitInt(chunk + 12, info->phys_y); + chunk[16] = info->phys_unit; + lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_gAMA(ucvector* out, const LodePNGInfo* info) { + unsigned char* chunk; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 4, "gAMA")); + lodepng_set32bitInt(chunk + 8, info->gama_gamma); + lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_cHRM(ucvector* out, const LodePNGInfo* info) { + unsigned char* chunk; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 32, "cHRM")); + lodepng_set32bitInt(chunk + 8, info->chrm_white_x); + lodepng_set32bitInt(chunk + 12, info->chrm_white_y); + lodepng_set32bitInt(chunk + 16, info->chrm_red_x); + lodepng_set32bitInt(chunk + 20, info->chrm_red_y); + lodepng_set32bitInt(chunk + 24, info->chrm_green_x); + lodepng_set32bitInt(chunk + 28, info->chrm_green_y); + lodepng_set32bitInt(chunk + 32, info->chrm_blue_x); + lodepng_set32bitInt(chunk + 36, info->chrm_blue_y); + lodepng_chunk_generate_crc(chunk); + return 0; +} + +static unsigned addChunk_sRGB(ucvector* out, const LodePNGInfo* info) { + unsigned char data = info->srgb_intent; + return lodepng_chunk_createv(out, 1, "sRGB", &data); +} + +static unsigned addChunk_iCCP(ucvector* out, const LodePNGInfo* info, LodePNGCompressSettings* zlibsettings) { + unsigned error = 0; + unsigned char* chunk = 0; + unsigned char* compressed = 0; + size_t compressedsize = 0; + size_t keysize = lodepng_strlen(info->iccp_name); + + if(keysize < 1 || keysize > 79) return 89; /*error: invalid keyword size*/ + error = zlib_compress(&compressed, &compressedsize, + info->iccp_profile, info->iccp_profile_size, zlibsettings); + if(!error) { + size_t size = keysize + 2 + compressedsize; + error = lodepng_chunk_init(&chunk, out, size, "iCCP"); + } + if(!error) { + lodepng_memcpy(chunk + 8, info->iccp_name, keysize); + chunk[8 + keysize] = 0; /*null termination char*/ + chunk[9 + keysize] = 0; /*compression method: 0*/ + lodepng_memcpy(chunk + 10 + keysize, compressed, compressedsize); + lodepng_chunk_generate_crc(chunk); + } + + lodepng_free(compressed); + return error; +} + +static unsigned addChunk_sBIT(ucvector* out, const LodePNGInfo* info) { + unsigned bitdepth = (info->color.colortype == LCT_PALETTE) ? 8 : info->color.bitdepth; + unsigned char* chunk = 0; + if(info->color.colortype == LCT_GREY) { + if(info->sbit_r == 0 || info->sbit_r > bitdepth) return 115; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 1, "sBIT")); + chunk[8] = info->sbit_r; + } else if(info->color.colortype == LCT_RGB || info->color.colortype == LCT_PALETTE) { + if(info->sbit_r == 0 || info->sbit_g == 0 || info->sbit_b == 0) return 115; + if(info->sbit_r > bitdepth || info->sbit_g > bitdepth || info->sbit_b > bitdepth) return 115; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 3, "sBIT")); + chunk[8] = info->sbit_r; + chunk[9] = info->sbit_g; + chunk[10] = info->sbit_b; + } else if(info->color.colortype == LCT_GREY_ALPHA) { + if(info->sbit_r == 0 || info->sbit_a == 0) return 115; + if(info->sbit_r > bitdepth || info->sbit_a > bitdepth) return 115; + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 2, "sBIT")); + chunk[8] = info->sbit_r; + chunk[9] = info->sbit_a; + } else if(info->color.colortype == LCT_RGBA) { + if(info->sbit_r == 0 || info->sbit_g == 0 || info->sbit_b == 0 || info->sbit_a == 0 || + info->sbit_r > bitdepth || info->sbit_g > bitdepth || + info->sbit_b > bitdepth || info->sbit_a > bitdepth) { + return 115; + } + CERROR_TRY_RETURN(lodepng_chunk_init(&chunk, out, 4, "sBIT")); + chunk[8] = info->sbit_r; + chunk[9] = info->sbit_g; + chunk[10] = info->sbit_b; + chunk[11] = info->sbit_a; + } + if(chunk) lodepng_chunk_generate_crc(chunk); + return 0; +} + +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +static void filterScanline(unsigned char* out, const unsigned char* scanline, const unsigned char* prevline, + size_t length, size_t bytewidth, unsigned char filterType) { + size_t i; + switch(filterType) { + case 0: /*None*/ + for(i = 0; i != length; ++i) out[i] = scanline[i]; + break; + case 1: /*Sub*/ + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - scanline[i - bytewidth]; + break; + case 2: /*Up*/ + if(prevline) { + for(i = 0; i != length; ++i) out[i] = scanline[i] - prevline[i]; + } else { + for(i = 0; i != length; ++i) out[i] = scanline[i]; + } + break; + case 3: /*Average*/ + if(prevline) { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i] - (prevline[i] >> 1); + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - ((scanline[i - bytewidth] + prevline[i]) >> 1); + } else { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + for(i = bytewidth; i < length; ++i) out[i] = scanline[i] - (scanline[i - bytewidth] >> 1); + } + break; + case 4: /*Paeth*/ + if(prevline) { + /*paethPredictor(0, prevline[i], 0) is always prevline[i]*/ + for(i = 0; i != bytewidth; ++i) out[i] = (scanline[i] - prevline[i]); + for(i = bytewidth; i < length; ++i) { + out[i] = (scanline[i] - paethPredictor(scanline[i - bytewidth], prevline[i], prevline[i - bytewidth])); + } + } else { + for(i = 0; i != bytewidth; ++i) out[i] = scanline[i]; + /*paethPredictor(scanline[i - bytewidth], 0, 0) is always scanline[i - bytewidth]*/ + for(i = bytewidth; i < length; ++i) out[i] = (scanline[i] - scanline[i - bytewidth]); + } + break; + default: return; /*invalid filter type given*/ + } +} + +/* integer binary logarithm, max return value is 31 */ +static size_t ilog2(size_t i) { + size_t result = 0; + if(i >= 65536) { result += 16; i >>= 16; } + if(i >= 256) { result += 8; i >>= 8; } + if(i >= 16) { result += 4; i >>= 4; } + if(i >= 4) { result += 2; i >>= 2; } + if(i >= 2) { result += 1; /*i >>= 1;*/ } + return result; +} + +/* integer approximation for i * log2(i), helper function for LFS_ENTROPY */ +static size_t ilog2i(size_t i) { + size_t l; + if(i == 0) return 0; + l = ilog2(i); + /* approximate i*log2(i): l is integer logarithm, ((i - (1u << l)) << 1u) + linearly approximates the missing fractional part multiplied by i */ + return i * l + ((i - (1u << l)) << 1u); +} + +static unsigned filter(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, + const LodePNGColorMode* color, const LodePNGEncoderSettings* settings) { + /* + For PNG filter method 0 + out must be a buffer with as size: h + (w * h * bpp + 7u) / 8u, because there are + the scanlines with 1 extra byte per scanline + */ + + unsigned bpp = lodepng_get_bpp(color); + /*the width of a scanline in bytes, not including the filter type*/ + size_t linebytes = lodepng_get_raw_size_idat(w, 1, bpp) - 1u; + + /*bytewidth is used for filtering, is 1 when bpp < 8, number of bytes per pixel otherwise*/ + size_t bytewidth = (bpp + 7u) / 8u; + const unsigned char* prevline = 0; + unsigned x, y; + unsigned error = 0; + LodePNGFilterStrategy strategy = settings->filter_strategy; + + /* + There is a heuristic called the minimum sum of absolute differences heuristic, suggested by the PNG standard: + * If the image type is Palette, or the bit depth is smaller than 8, then do not filter the image (i.e. + use fixed filtering, with the filter None). + * (The other case) If the image type is Grayscale or RGB (with or without Alpha), and the bit depth is + not smaller than 8, then use adaptive filtering heuristic as follows: independently for each row, apply + all five filters and select the filter that produces the smallest sum of absolute values per row. + This heuristic is used if filter strategy is LFS_MINSUM and filter_palette_zero is true. + + If filter_palette_zero is true and filter_strategy is not LFS_MINSUM, the above heuristic is followed, + but for "the other case", whatever strategy filter_strategy is set to instead of the minimum sum + heuristic is used. + */ + if(settings->filter_palette_zero && + (color->colortype == LCT_PALETTE || color->bitdepth < 8)) strategy = LFS_ZERO; + + if(bpp == 0) return 31; /*error: invalid color type*/ + + if(strategy >= LFS_ZERO && strategy <= LFS_FOUR) { + unsigned char type = (unsigned char)strategy; + for(y = 0; y != h; ++y) { + size_t outindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + size_t inindex = linebytes * y; + out[outindex] = type; /*filter type byte*/ + filterScanline(&out[outindex + 1], &in[inindex], prevline, linebytes, bytewidth, type); + prevline = &in[inindex]; + } + } else if(strategy == LFS_MINSUM) { + /*adaptive filtering*/ + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + size_t smallest = 0; + unsigned char type, bestType = 0; + + for(type = 0; type != 5; ++type) { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) error = 83; /*alloc fail*/ + } + + if(!error) { + for(y = 0; y != h; ++y) { + /*try the 5 filter types*/ + for(type = 0; type != 5; ++type) { + size_t sum = 0; + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + + /*calculate the sum of the result*/ + if(type == 0) { + for(x = 0; x != linebytes; ++x) sum += (unsigned char)(attempt[type][x]); + } else { + for(x = 0; x != linebytes; ++x) { + /*For differences, each byte should be treated as signed, values above 127 are negative + (converted to signed char). Filtertype 0 isn't a difference though, so use unsigned there. + This means filtertype 0 is almost never chosen, but that is justified.*/ + unsigned char s = attempt[type][x]; + sum += s < 128 ? s : (255U - s); + } + } + + /*check if this is smallest sum (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || sum < smallest) { + bestType = type; + smallest = sum; + } + } + + prevline = &in[y * linebytes]; + + /*now fill the out values*/ + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + } + + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } else if(strategy == LFS_ENTROPY) { + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + size_t bestSum = 0; + unsigned type, bestType = 0; + unsigned count[256]; + + for(type = 0; type != 5; ++type) { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) error = 83; /*alloc fail*/ + } + + if(!error) { + for(y = 0; y != h; ++y) { + /*try the 5 filter types*/ + for(type = 0; type != 5; ++type) { + size_t sum = 0; + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + lodepng_memset(count, 0, 256 * sizeof(*count)); + for(x = 0; x != linebytes; ++x) ++count[attempt[type][x]]; + ++count[type]; /*the filter type itself is part of the scanline*/ + for(x = 0; x != 256; ++x) { + sum += ilog2i(count[x]); + } + /*check if this is smallest sum (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || sum > bestSum) { + bestType = type; + bestSum = sum; + } + } + + prevline = &in[y * linebytes]; + + /*now fill the out values*/ + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + } + + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } else if(strategy == LFS_PREDEFINED) { + for(y = 0; y != h; ++y) { + size_t outindex = (1 + linebytes) * y; /*the extra filterbyte added to each row*/ + size_t inindex = linebytes * y; + unsigned char type = settings->predefined_filters[y]; + out[outindex] = type; /*filter type byte*/ + filterScanline(&out[outindex + 1], &in[inindex], prevline, linebytes, bytewidth, type); + prevline = &in[inindex]; + } + } else if(strategy == LFS_BRUTE_FORCE) { + /*brute force filter chooser. + deflate the scanline after every filter attempt to see which one deflates best. + This is very slow and gives only slightly smaller, sometimes even larger, result*/ + size_t size[5]; + unsigned char* attempt[5]; /*five filtering attempts, one for each filter type*/ + size_t smallest = 0; + unsigned type = 0, bestType = 0; + unsigned char* dummy; + LodePNGCompressSettings zlibsettings; + lodepng_memcpy(&zlibsettings, &settings->zlibsettings, sizeof(LodePNGCompressSettings)); + /*use fixed tree on the attempts so that the tree is not adapted to the filtertype on purpose, + to simulate the true case where the tree is the same for the whole image. Sometimes it gives + better result with dynamic tree anyway. Using the fixed tree sometimes gives worse, but in rare + cases better compression. It does make this a bit less slow, so it's worth doing this.*/ + zlibsettings.btype = 1; + /*a custom encoder likely doesn't read the btype setting and is optimized for complete PNG + images only, so disable it*/ + zlibsettings.custom_zlib = 0; + zlibsettings.custom_deflate = 0; + for(type = 0; type != 5; ++type) { + attempt[type] = (unsigned char*)lodepng_malloc(linebytes); + if(!attempt[type]) error = 83; /*alloc fail*/ + } + if(!error) { + for(y = 0; y != h; ++y) /*try the 5 filter types*/ { + for(type = 0; type != 5; ++type) { + unsigned testsize = (unsigned)linebytes; + /*if(testsize > 8) testsize /= 8;*/ /*it already works good enough by testing a part of the row*/ + + filterScanline(attempt[type], &in[y * linebytes], prevline, linebytes, bytewidth, type); + size[type] = 0; + dummy = 0; + zlib_compress(&dummy, &size[type], attempt[type], testsize, &zlibsettings); + lodepng_free(dummy); + /*check if this is smallest size (or if type == 0 it's the first case so always store the values)*/ + if(type == 0 || size[type] < smallest) { + bestType = type; + smallest = size[type]; + } + } + prevline = &in[y * linebytes]; + out[y * (linebytes + 1)] = bestType; /*the first byte of a scanline will be the filter type*/ + for(x = 0; x != linebytes; ++x) out[y * (linebytes + 1) + 1 + x] = attempt[bestType][x]; + } + } + for(type = 0; type != 5; ++type) lodepng_free(attempt[type]); + } + else return 88; /* unknown filter strategy */ + + return error; +} + +static void addPaddingBits(unsigned char* out, const unsigned char* in, + size_t olinebits, size_t ilinebits, unsigned h) { + /*The opposite of the removePaddingBits function + olinebits must be >= ilinebits*/ + unsigned y; + size_t diff = olinebits - ilinebits; + size_t obp = 0, ibp = 0; /*bit pointers*/ + for(y = 0; y != h; ++y) { + size_t x; + for(x = 0; x < ilinebits; ++x) { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + /*obp += diff; --> no, fill in some value in the padding bits too, to avoid + "Use of uninitialised value of size ###" warning from valgrind*/ + for(x = 0; x != diff; ++x) setBitOfReversedStream(&obp, out, 0); + } +} + +/* +in: non-interlaced image with size w*h +out: the same pixels, but re-ordered according to PNG's Adam7 interlacing, with + no padding bits between scanlines, but between reduced images so that each + reduced image starts at a byte. +bpp: bits per pixel +there are no padding bits, not between scanlines, not between reduced images +in has the following size in bits: w * h * bpp. +out is possibly bigger due to padding bits between reduced images +NOTE: comments about padding bits are only relevant if bpp < 8 +*/ +static void Adam7_interlace(unsigned char* out, const unsigned char* in, unsigned w, unsigned h, unsigned bpp) { + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned i; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + if(bpp >= 8) { + for(i = 0; i != 7; ++i) { + unsigned x, y, b; + size_t bytewidth = bpp / 8u; + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) { + size_t pixelinstart = ((ADAM7_IY[i] + y * ADAM7_DY[i]) * w + ADAM7_IX[i] + x * ADAM7_DX[i]) * bytewidth; + size_t pixeloutstart = passstart[i] + (y * passw[i] + x) * bytewidth; + for(b = 0; b < bytewidth; ++b) { + out[pixeloutstart + b] = in[pixelinstart + b]; + } + } + } + } else /*bpp < 8: Adam7 with pixels < 8 bit is a bit trickier: with bit pointers*/ { + for(i = 0; i != 7; ++i) { + unsigned x, y, b; + unsigned ilinebits = bpp * passw[i]; + unsigned olinebits = bpp * w; + size_t obp, ibp; /*bit pointers (for out and in buffer)*/ + for(y = 0; y < passh[i]; ++y) + for(x = 0; x < passw[i]; ++x) { + ibp = (ADAM7_IY[i] + y * ADAM7_DY[i]) * olinebits + (ADAM7_IX[i] + x * ADAM7_DX[i]) * bpp; + obp = (8 * passstart[i]) + (y * ilinebits + x * bpp); + for(b = 0; b < bpp; ++b) { + unsigned char bit = readBitFromReversedStream(&ibp, in); + setBitOfReversedStream(&obp, out, bit); + } + } + } + } +} + +/*out must be buffer big enough to contain uncompressed IDAT chunk data, and in must contain the full image. +return value is error**/ +static unsigned preProcessScanlines(unsigned char** out, size_t* outsize, const unsigned char* in, + unsigned w, unsigned h, + const LodePNGInfo* info_png, const LodePNGEncoderSettings* settings) { + /* + This function converts the pure 2D image with the PNG's colortype, into filtered-padded-interlaced data. Steps: + *) if no Adam7: 1) add padding bits (= possible extra bits per scanline if bpp < 8) 2) filter + *) if adam7: 1) Adam7_interlace 2) 7x add padding bits 3) 7x filter + */ + unsigned bpp = lodepng_get_bpp(&info_png->color); + unsigned error = 0; + + if(info_png->interlace_method == 0) { + *outsize = h + (h * ((w * bpp + 7u) / 8u)); /*image size plus an extra byte per scanline + possible padding bits*/ + *out = (unsigned char*)lodepng_malloc(*outsize); + if(!(*out) && (*outsize)) error = 83; /*alloc fail*/ + + if(!error) { + /*non multiple of 8 bits per scanline, padding bits needed per scanline*/ + if(bpp < 8 && w * bpp != ((w * bpp + 7u) / 8u) * 8u) { + unsigned char* padded = (unsigned char*)lodepng_malloc(h * ((w * bpp + 7u) / 8u)); + if(!padded) error = 83; /*alloc fail*/ + if(!error) { + addPaddingBits(padded, in, ((w * bpp + 7u) / 8u) * 8u, w * bpp, h); + error = filter(*out, padded, w, h, &info_png->color, settings); + } + lodepng_free(padded); + } else { + /*we can immediately filter into the out buffer, no other steps needed*/ + error = filter(*out, in, w, h, &info_png->color, settings); + } + } + } else /*interlace_method is 1 (Adam7)*/ { + unsigned passw[7], passh[7]; + size_t filter_passstart[8], padded_passstart[8], passstart[8]; + unsigned char* adam7; + + Adam7_getpassvalues(passw, passh, filter_passstart, padded_passstart, passstart, w, h, bpp); + + *outsize = filter_passstart[7]; /*image size plus an extra byte per scanline + possible padding bits*/ + *out = (unsigned char*)lodepng_malloc(*outsize); + if(!(*out)) error = 83; /*alloc fail*/ + + adam7 = (unsigned char*)lodepng_malloc(passstart[7]); + if(!adam7 && passstart[7]) error = 83; /*alloc fail*/ + + if(!error) { + unsigned i; + + Adam7_interlace(adam7, in, w, h, bpp); + for(i = 0; i != 7; ++i) { + if(bpp < 8) { + unsigned char* padded = (unsigned char*)lodepng_malloc(padded_passstart[i + 1] - padded_passstart[i]); + if(!padded) ERROR_BREAK(83); /*alloc fail*/ + addPaddingBits(padded, &adam7[passstart[i]], + ((passw[i] * bpp + 7u) / 8u) * 8u, passw[i] * bpp, passh[i]); + error = filter(&(*out)[filter_passstart[i]], padded, + passw[i], passh[i], &info_png->color, settings); + lodepng_free(padded); + } else { + error = filter(&(*out)[filter_passstart[i]], &adam7[padded_passstart[i]], + passw[i], passh[i], &info_png->color, settings); + } + + if(error) break; + } + } + + lodepng_free(adam7); + } + + return error; +} + +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS +static unsigned addUnknownChunks(ucvector* out, unsigned char* data, size_t datasize) { + unsigned char* inchunk = data; + while((size_t)(inchunk - data) < datasize) { + CERROR_TRY_RETURN(lodepng_chunk_append(&out->data, &out->size, inchunk)); + out->allocsize = out->size; /*fix the allocsize again*/ + inchunk = lodepng_chunk_next(inchunk, data + datasize); + } + return 0; +} + +static unsigned isGrayICCProfile(const unsigned char* profile, unsigned size) { + /* + It is a gray profile if bytes 16-19 are "GRAY", rgb profile if bytes 16-19 + are "RGB ". We do not perform any full parsing of the ICC profile here, other + than check those 4 bytes to grayscale profile. Other than that, validity of + the profile is not checked. This is needed only because the PNG specification + requires using a non-gray color model if there is an ICC profile with "RGB " + (sadly limiting compression opportunities if the input data is grayscale RGB + data), and requires using a gray color model if it is "GRAY". + */ + if(size < 20) return 0; + return profile[16] == 'G' && profile[17] == 'R' && profile[18] == 'A' && profile[19] == 'Y'; +} + +static unsigned isRGBICCProfile(const unsigned char* profile, unsigned size) { + /* See comment in isGrayICCProfile*/ + if(size < 20) return 0; + return profile[16] == 'R' && profile[17] == 'G' && profile[18] == 'B' && profile[19] == ' '; +} +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + +unsigned lodepng_encode(unsigned char** out, size_t* outsize, + const unsigned char* image, unsigned w, unsigned h, + LodePNGState* state) { + unsigned char* data = 0; /*uncompressed version of the IDAT chunk data*/ + size_t datasize = 0; + ucvector outv = ucvector_init(NULL, 0); + LodePNGInfo info; + const LodePNGInfo* info_png = &state->info_png; + LodePNGColorMode auto_color; + + lodepng_info_init(&info); + lodepng_color_mode_init(&auto_color); + + /*provide some proper output values if error will happen*/ + *out = 0; + *outsize = 0; + state->error = 0; + + /*check input values validity*/ + if((info_png->color.colortype == LCT_PALETTE || state->encoder.force_palette) + && (info_png->color.palettesize == 0 || info_png->color.palettesize > 256)) { + /*this error is returned even if auto_convert is enabled and thus encoder could + generate the palette by itself: while allowing this could be possible in theory, + it may complicate the code or edge cases, and always requiring to give a palette + when setting this color type is a simpler contract*/ + state->error = 68; /*invalid palette size, it is only allowed to be 1-256*/ + goto cleanup; + } + if(state->encoder.zlibsettings.btype > 2) { + state->error = 61; /*error: invalid btype*/ + goto cleanup; + } + if(info_png->interlace_method > 1) { + state->error = 71; /*error: invalid interlace mode*/ + goto cleanup; + } + state->error = checkColorValidity(info_png->color.colortype, info_png->color.bitdepth); + if(state->error) goto cleanup; /*error: invalid color type given*/ + state->error = checkColorValidity(state->info_raw.colortype, state->info_raw.bitdepth); + if(state->error) goto cleanup; /*error: invalid color type given*/ + + /* color convert and compute scanline filter types */ + lodepng_info_copy(&info, &state->info_png); + if(state->encoder.auto_convert) { + LodePNGColorStats stats; + unsigned allow_convert = 1; + lodepng_color_stats_init(&stats); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + if(info_png->iccp_defined && + isGrayICCProfile(info_png->iccp_profile, info_png->iccp_profile_size)) { + /*the PNG specification does not allow to use palette with a GRAY ICC profile, even + if the palette has only gray colors, so disallow it.*/ + stats.allow_palette = 0; + } + if(info_png->iccp_defined && + isRGBICCProfile(info_png->iccp_profile, info_png->iccp_profile_size)) { + /*the PNG specification does not allow to use grayscale color with RGB ICC profile, so disallow gray.*/ + stats.allow_greyscale = 0; + } +#endif /* LODEPNG_COMPILE_ANCILLARY_CHUNKS */ + state->error = lodepng_compute_color_stats(&stats, image, w, h, &state->info_raw); + if(state->error) goto cleanup; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + if(info_png->background_defined) { + /*the background chunk's color must be taken into account as well*/ + unsigned r = 0, g = 0, b = 0; + LodePNGColorMode mode16 = lodepng_color_mode_make(LCT_RGB, 16); + lodepng_convert_rgb(&r, &g, &b, + info_png->background_r, info_png->background_g, info_png->background_b, &mode16, &info_png->color); + state->error = lodepng_color_stats_add(&stats, r, g, b, 65535); + if(state->error) goto cleanup; + } +#endif /* LODEPNG_COMPILE_ANCILLARY_CHUNKS */ + state->error = auto_choose_color(&auto_color, &state->info_raw, &stats); + if(state->error) goto cleanup; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + if(info_png->sbit_defined) { + /*if sbit is defined, due to strict requirements of which sbit values can be present for which color modes, + auto_convert can't be done in many cases. However, do support a few cases here. + TODO: more conversions may be possible, and it may also be possible to get a more appropriate color type out of + auto_choose_color if knowledge about sbit is used beforehand + */ + unsigned sbit_max = LODEPNG_MAX(LODEPNG_MAX(LODEPNG_MAX(info_png->sbit_r, info_png->sbit_g), + info_png->sbit_b), info_png->sbit_a); + unsigned equal = (!info_png->sbit_g || info_png->sbit_g == info_png->sbit_r) + && (!info_png->sbit_b || info_png->sbit_b == info_png->sbit_r) + && (!info_png->sbit_a || info_png->sbit_a == info_png->sbit_r); + allow_convert = 0; + if(info.color.colortype == LCT_PALETTE && + auto_color.colortype == LCT_PALETTE) { + /* input and output are palette, and in this case it may happen that palette data is + expected to be copied from info_raw into the info_png */ + allow_convert = 1; + } + /*going from 8-bit RGB to palette (or 16-bit as long as sbit_max <= 8) is possible + since both are 8-bit RGB for sBIT's purposes*/ + if(info.color.colortype == LCT_RGB && + auto_color.colortype == LCT_PALETTE && sbit_max <= 8) { + allow_convert = 1; + } + /*going from 8-bit RGBA to palette is also ok but only if sbit_a is exactly 8*/ + if(info.color.colortype == LCT_RGBA && auto_color.colortype == LCT_PALETTE && + info_png->sbit_a == 8 && sbit_max <= 8) { + allow_convert = 1; + } + /*going from 16-bit RGB(A) to 8-bit RGB(A) is ok if all sbit values are <= 8*/ + if((info.color.colortype == LCT_RGB || info.color.colortype == LCT_RGBA) && info.color.bitdepth == 16 && + auto_color.colortype == info.color.colortype && auto_color.bitdepth == 8 && + sbit_max <= 8) { + allow_convert = 1; + } + /*going to less channels is ok if all bit values are equal (all possible values in sbit, + as well as the chosen bitdepth of the result). Due to how auto_convert works, + we already know that auto_color.colortype has less than or equal amount of channels than + info.colortype. Palette is not used here. This conversion is not allowed if + info_png->sbit_r < auto_color.bitdepth, because specifically for alpha, non-presence of + an sbit value heavily implies that alpha's bit depth is equal to the PNG bit depth (rather + than the bit depths set in the r, g and b sbit values, by how the PNG specification describes + handling tRNS chunk case with sBIT), so be conservative here about ignoring user input.*/ + if(info.color.colortype != LCT_PALETTE && auto_color.colortype != LCT_PALETTE && + equal && info_png->sbit_r == auto_color.bitdepth) { + allow_convert = 1; + } + } +#endif + if(state->encoder.force_palette) { + if(info.color.colortype != LCT_GREY && info.color.colortype != LCT_GREY_ALPHA && + (auto_color.colortype == LCT_GREY || auto_color.colortype == LCT_GREY_ALPHA)) { + /*user speficially forced a PLTE palette, so cannot convert to grayscale types because + the PNG specification only allows writing a suggested palette in PLTE for truecolor types*/ + allow_convert = 0; + } + } + if(allow_convert) { + lodepng_color_mode_copy(&info.color, &auto_color); +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*also convert the background chunk*/ + if(info_png->background_defined) { + if(lodepng_convert_rgb(&info.background_r, &info.background_g, &info.background_b, + info_png->background_r, info_png->background_g, info_png->background_b, &info.color, &info_png->color)) { + state->error = 104; + goto cleanup; + } + } +#endif /* LODEPNG_COMPILE_ANCILLARY_CHUNKS */ + } + } +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + if(info_png->iccp_defined) { + unsigned gray_icc = isGrayICCProfile(info_png->iccp_profile, info_png->iccp_profile_size); + unsigned rgb_icc = isRGBICCProfile(info_png->iccp_profile, info_png->iccp_profile_size); + unsigned gray_png = info.color.colortype == LCT_GREY || info.color.colortype == LCT_GREY_ALPHA; + if(!gray_icc && !rgb_icc) { + state->error = 100; /* Disallowed profile color type for PNG */ + goto cleanup; + } + if(gray_icc != gray_png) { + /*Not allowed to use RGB/RGBA/palette with GRAY ICC profile or vice versa, + or in case of auto_convert, it wasn't possible to find appropriate model*/ + state->error = state->encoder.auto_convert ? 102 : 101; + goto cleanup; + } + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + if(!lodepng_color_mode_equal(&state->info_raw, &info.color)) { + unsigned char* converted; + size_t size = ((size_t)w * (size_t)h * (size_t)lodepng_get_bpp(&info.color) + 7u) / 8u; + + converted = (unsigned char*)lodepng_malloc(size); + if(!converted && size) state->error = 83; /*alloc fail*/ + if(!state->error) { + state->error = lodepng_convert(converted, image, &info.color, &state->info_raw, w, h); + } + if(!state->error) { + state->error = preProcessScanlines(&data, &datasize, converted, w, h, &info, &state->encoder); + } + lodepng_free(converted); + if(state->error) goto cleanup; + } else { + state->error = preProcessScanlines(&data, &datasize, image, w, h, &info, &state->encoder); + if(state->error) goto cleanup; + } + + /* output all PNG chunks */ { +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + size_t i; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*write signature and chunks*/ + state->error = writeSignature(&outv); + if(state->error) goto cleanup; + /*IHDR*/ + state->error = addChunk_IHDR(&outv, w, h, info.color.colortype, info.color.bitdepth, info.interlace_method); + if(state->error) goto cleanup; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*unknown chunks between IHDR and PLTE*/ + if(info.unknown_chunks_data[0]) { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[0], info.unknown_chunks_size[0]); + if(state->error) goto cleanup; + } + /*color profile chunks must come before PLTE */ + if(info.iccp_defined) { + state->error = addChunk_iCCP(&outv, &info, &state->encoder.zlibsettings); + if(state->error) goto cleanup; + } + if(info.srgb_defined) { + state->error = addChunk_sRGB(&outv, &info); + if(state->error) goto cleanup; + } + if(info.gama_defined) { + state->error = addChunk_gAMA(&outv, &info); + if(state->error) goto cleanup; + } + if(info.chrm_defined) { + state->error = addChunk_cHRM(&outv, &info); + if(state->error) goto cleanup; + } + if(info_png->sbit_defined) { + state->error = addChunk_sBIT(&outv, &info); + if(state->error) goto cleanup; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*PLTE*/ + if(info.color.colortype == LCT_PALETTE) { + state->error = addChunk_PLTE(&outv, &info.color); + if(state->error) goto cleanup; + } + if(state->encoder.force_palette && (info.color.colortype == LCT_RGB || info.color.colortype == LCT_RGBA)) { + /*force_palette means: write suggested palette for truecolor in PLTE chunk*/ + state->error = addChunk_PLTE(&outv, &info.color); + if(state->error) goto cleanup; + } + /*tRNS (this will only add if when necessary) */ + state->error = addChunk_tRNS(&outv, &info.color); + if(state->error) goto cleanup; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*bKGD (must come between PLTE and the IDAt chunks*/ + if(info.background_defined) { + state->error = addChunk_bKGD(&outv, &info); + if(state->error) goto cleanup; + } + /*pHYs (must come before the IDAT chunks)*/ + if(info.phys_defined) { + state->error = addChunk_pHYs(&outv, &info); + if(state->error) goto cleanup; + } + + /*unknown chunks between PLTE and IDAT*/ + if(info.unknown_chunks_data[1]) { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[1], info.unknown_chunks_size[1]); + if(state->error) goto cleanup; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + /*IDAT (multiple IDAT chunks must be consecutive)*/ + state->error = addChunk_IDAT(&outv, data, datasize, &state->encoder.zlibsettings); + if(state->error) goto cleanup; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + /*tIME*/ + if(info.time_defined) { + state->error = addChunk_tIME(&outv, &info.time); + if(state->error) goto cleanup; + } + /*tEXt and/or zTXt*/ + for(i = 0; i != info.text_num; ++i) { + if(lodepng_strlen(info.text_keys[i]) > 79) { + state->error = 66; /*text chunk too large*/ + goto cleanup; + } + if(lodepng_strlen(info.text_keys[i]) < 1) { + state->error = 67; /*text chunk too small*/ + goto cleanup; + } + if(state->encoder.text_compression) { + state->error = addChunk_zTXt(&outv, info.text_keys[i], info.text_strings[i], &state->encoder.zlibsettings); + if(state->error) goto cleanup; + } else { + state->error = addChunk_tEXt(&outv, info.text_keys[i], info.text_strings[i]); + if(state->error) goto cleanup; + } + } + /*LodePNG version id in text chunk*/ + if(state->encoder.add_id) { + unsigned already_added_id_text = 0; + for(i = 0; i != info.text_num; ++i) { + const char* k = info.text_keys[i]; + /* Could use strcmp, but we're not calling or reimplementing this C library function for this use only */ + if(k[0] == 'L' && k[1] == 'o' && k[2] == 'd' && k[3] == 'e' && + k[4] == 'P' && k[5] == 'N' && k[6] == 'G' && k[7] == '\0') { + already_added_id_text = 1; + break; + } + } + if(already_added_id_text == 0) { + state->error = addChunk_tEXt(&outv, "LodePNG", LODEPNG_VERSION_STRING); /*it's shorter as tEXt than as zTXt chunk*/ + if(state->error) goto cleanup; + } + } + /*iTXt*/ + for(i = 0; i != info.itext_num; ++i) { + if(lodepng_strlen(info.itext_keys[i]) > 79) { + state->error = 66; /*text chunk too large*/ + goto cleanup; + } + if(lodepng_strlen(info.itext_keys[i]) < 1) { + state->error = 67; /*text chunk too small*/ + goto cleanup; + } + state->error = addChunk_iTXt( + &outv, state->encoder.text_compression, + info.itext_keys[i], info.itext_langtags[i], info.itext_transkeys[i], info.itext_strings[i], + &state->encoder.zlibsettings); + if(state->error) goto cleanup; + } + + /*unknown chunks between IDAT and IEND*/ + if(info.unknown_chunks_data[2]) { + state->error = addUnknownChunks(&outv, info.unknown_chunks_data[2], info.unknown_chunks_size[2]); + if(state->error) goto cleanup; + } +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ + state->error = addChunk_IEND(&outv); + if(state->error) goto cleanup; + } + +cleanup: + lodepng_info_cleanup(&info); + lodepng_free(data); + lodepng_color_mode_cleanup(&auto_color); + + /*instead of cleaning the vector up, give it to the output*/ + *out = outv.data; + *outsize = outv.size; + + return state->error; +} + +unsigned lodepng_encode_memory(unsigned char** out, size_t* outsize, const unsigned char* image, + unsigned w, unsigned h, LodePNGColorType colortype, unsigned bitdepth) { + unsigned error; + LodePNGState state; + lodepng_state_init(&state); + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + state.info_png.color.colortype = colortype; + state.info_png.color.bitdepth = bitdepth; + lodepng_encode(out, outsize, image, w, h, &state); + error = state.error; + lodepng_state_cleanup(&state); + return error; +} + +unsigned lodepng_encode32(unsigned char** out, size_t* outsize, const unsigned char* image, unsigned w, unsigned h) { + return lodepng_encode_memory(out, outsize, image, w, h, LCT_RGBA, 8); +} + +unsigned lodepng_encode24(unsigned char** out, size_t* outsize, const unsigned char* image, unsigned w, unsigned h) { + return lodepng_encode_memory(out, outsize, image, w, h, LCT_RGB, 8); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned lodepng_encode_file(const char* filename, const unsigned char* image, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) { + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode_memory(&buffer, &buffersize, image, w, h, colortype, bitdepth); + if(!error) error = lodepng_save_file(buffer, buffersize, filename); + lodepng_free(buffer); + return error; +} + +unsigned lodepng_encode32_file(const char* filename, const unsigned char* image, unsigned w, unsigned h) { + return lodepng_encode_file(filename, image, w, h, LCT_RGBA, 8); +} + +unsigned lodepng_encode24_file(const char* filename, const unsigned char* image, unsigned w, unsigned h) { + return lodepng_encode_file(filename, image, w, h, LCT_RGB, 8); +} +#endif /*LODEPNG_COMPILE_DISK*/ + +void lodepng_encoder_settings_init(LodePNGEncoderSettings* settings) { + lodepng_compress_settings_init(&settings->zlibsettings); + settings->filter_palette_zero = 1; + settings->filter_strategy = LFS_MINSUM; + settings->auto_convert = 1; + settings->force_palette = 0; + settings->predefined_filters = 0; +#ifdef LODEPNG_COMPILE_ANCILLARY_CHUNKS + settings->add_id = 0; + settings->text_compression = 1; +#endif /*LODEPNG_COMPILE_ANCILLARY_CHUNKS*/ +} + +#endif /*LODEPNG_COMPILE_ENCODER*/ +#endif /*LODEPNG_COMPILE_PNG*/ + +#ifdef LODEPNG_COMPILE_ERROR_TEXT +/* +This returns the description of a numerical error code in English. This is also +the documentation of all the error codes. +*/ +const char* lodepng_error_text(unsigned code) { + switch(code) { + case 0: return "no error, everything went ok"; + case 1: return "nothing done yet"; /*the Encoder/Decoder has done nothing yet, error checking makes no sense yet*/ + case 10: return "end of input memory reached without huffman end code"; /*while huffman decoding*/ + case 11: return "error in code tree made it jump outside of huffman tree"; /*while huffman decoding*/ + case 13: return "problem while processing dynamic deflate block"; + case 14: return "problem while processing dynamic deflate block"; + case 15: return "problem while processing dynamic deflate block"; + /*this error could happen if there are only 0 or 1 symbols present in the huffman code:*/ + case 16: return "invalid code while processing dynamic deflate block"; + case 17: return "end of out buffer memory reached while inflating"; + case 18: return "invalid distance code while inflating"; + case 19: return "end of out buffer memory reached while inflating"; + case 20: return "invalid deflate block BTYPE encountered while decoding"; + case 21: return "NLEN is not ones complement of LEN in a deflate block"; + + /*end of out buffer memory reached while inflating: + This can happen if the inflated deflate data is longer than the amount of bytes required to fill up + all the pixels of the image, given the color depth and image dimensions. Something that doesn't + happen in a normal, well encoded, PNG image.*/ + case 22: return "end of out buffer memory reached while inflating"; + case 23: return "end of in buffer memory reached while inflating"; + case 24: return "invalid FCHECK in zlib header"; + case 25: return "invalid compression method in zlib header"; + case 26: return "FDICT encountered in zlib header while it's not used for PNG"; + case 27: return "PNG file is smaller than a PNG header"; + /*Checks the magic file header, the first 8 bytes of the PNG file*/ + case 28: return "incorrect PNG signature, it's no PNG or corrupted"; + case 29: return "first chunk is not the header chunk"; + case 30: return "chunk length too large, chunk broken off at end of file"; + case 31: return "illegal PNG color type or bpp"; + case 32: return "illegal PNG compression method"; + case 33: return "illegal PNG filter method"; + case 34: return "illegal PNG interlace method"; + case 35: return "chunk length of a chunk is too large or the chunk too small"; + case 36: return "illegal PNG filter type encountered"; + case 37: return "illegal bit depth for this color type given"; + case 38: return "the palette is too small or too big"; /*0, or more than 256 colors*/ + case 39: return "tRNS chunk before PLTE or has more entries than palette size"; + case 40: return "tRNS chunk has wrong size for grayscale image"; + case 41: return "tRNS chunk has wrong size for RGB image"; + case 42: return "tRNS chunk appeared while it was not allowed for this color type"; + case 43: return "bKGD chunk has wrong size for palette image"; + case 44: return "bKGD chunk has wrong size for grayscale image"; + case 45: return "bKGD chunk has wrong size for RGB image"; + case 48: return "empty input buffer given to decoder. Maybe caused by non-existing file?"; + case 49: return "jumped past memory while generating dynamic huffman tree"; + case 50: return "jumped past memory while generating dynamic huffman tree"; + case 51: return "jumped past memory while inflating huffman block"; + case 52: return "jumped past memory while inflating"; + case 53: return "size of zlib data too small"; + case 54: return "repeat symbol in tree while there was no value symbol yet"; + /*jumped past tree while generating huffman tree, this could be when the + tree will have more leaves than symbols after generating it out of the + given lengths. They call this an oversubscribed dynamic bit lengths tree in zlib.*/ + case 55: return "jumped past tree while generating huffman tree"; + case 56: return "given output image colortype or bitdepth not supported for color conversion"; + case 57: return "invalid CRC encountered (checking CRC can be disabled)"; + case 58: return "invalid ADLER32 encountered (checking ADLER32 can be disabled)"; + case 59: return "requested color conversion not supported"; + case 60: return "invalid window size given in the settings of the encoder (must be 0-32768)"; + case 61: return "invalid BTYPE given in the settings of the encoder (only 0, 1 and 2 are allowed)"; + /*LodePNG leaves the choice of RGB to grayscale conversion formula to the user.*/ + case 62: return "conversion from color to grayscale not supported"; + /*(2^31-1)*/ + case 63: return "length of a chunk too long, max allowed for PNG is 2147483647 bytes per chunk"; + /*this would result in the inability of a deflated block to ever contain an end code. It must be at least 1.*/ + case 64: return "the length of the END symbol 256 in the Huffman tree is 0"; + case 66: return "the length of a text chunk keyword given to the encoder is longer than the maximum of 79 bytes"; + case 67: return "the length of a text chunk keyword given to the encoder is smaller than the minimum of 1 byte"; + case 68: return "tried to encode a PLTE chunk with a palette that has less than 1 or more than 256 colors"; + case 69: return "unknown chunk type with 'critical' flag encountered by the decoder"; + case 71: return "invalid interlace mode given to encoder (must be 0 or 1)"; + case 72: return "while decoding, invalid compression method encountering in zTXt or iTXt chunk (it must be 0)"; + case 73: return "invalid tIME chunk size"; + case 74: return "invalid pHYs chunk size"; + /*length could be wrong, or data chopped off*/ + case 75: return "no null termination char found while decoding text chunk"; + case 76: return "iTXt chunk too short to contain required bytes"; + case 77: return "integer overflow in buffer size"; + case 78: return "failed to open file for reading"; /*file doesn't exist or couldn't be opened for reading*/ + case 79: return "failed to open file for writing"; + case 80: return "tried creating a tree of 0 symbols"; + case 81: return "lazy matching at pos 0 is impossible"; + case 82: return "color conversion to palette requested while a color isn't in palette, or index out of bounds"; + case 83: return "memory allocation failed"; + case 84: return "given image too small to contain all pixels to be encoded"; + case 86: return "impossible offset in lz77 encoding (internal bug)"; + case 87: return "must provide custom zlib function pointer if LODEPNG_COMPILE_ZLIB is not defined"; + case 88: return "invalid filter strategy given for LodePNGEncoderSettings.filter_strategy"; + case 89: return "text chunk keyword too short or long: must have size 1-79"; + /*the windowsize in the LodePNGCompressSettings. Requiring POT(==> & instead of %) makes encoding 12% faster.*/ + case 90: return "windowsize must be a power of two"; + case 91: return "invalid decompressed idat size"; + case 92: return "integer overflow due to too many pixels"; + case 93: return "zero width or height is invalid"; + case 94: return "header chunk must have a size of 13 bytes"; + case 95: return "integer overflow with combined idat chunk size"; + case 96: return "invalid gAMA chunk size"; + case 97: return "invalid cHRM chunk size"; + case 98: return "invalid sRGB chunk size"; + case 99: return "invalid sRGB rendering intent"; + case 100: return "invalid ICC profile color type, the PNG specification only allows RGB or GRAY"; + case 101: return "PNG specification does not allow RGB ICC profile on gray color types and vice versa"; + case 102: return "not allowed to set grayscale ICC profile with colored pixels by PNG specification"; + case 103: return "invalid palette index in bKGD chunk. Maybe it came before PLTE chunk?"; + case 104: return "invalid bKGD color while encoding (e.g. palette index out of range)"; + case 105: return "integer overflow of bitsize"; + case 106: return "PNG file must have PLTE chunk if color type is palette"; + case 107: return "color convert from palette mode requested without setting the palette data in it"; + case 108: return "tried to add more than 256 values to a palette"; + /*this limit can be configured in LodePNGDecompressSettings*/ + case 109: return "tried to decompress zlib or deflate data larger than desired max_output_size"; + case 110: return "custom zlib or inflate decompression failed"; + case 111: return "custom zlib or deflate compression failed"; + /*max text size limit can be configured in LodePNGDecoderSettings. This error prevents + unreasonable memory consumption when decoding due to impossibly large text sizes.*/ + case 112: return "compressed text unreasonably large"; + /*max ICC size limit can be configured in LodePNGDecoderSettings. This error prevents + unreasonable memory consumption when decoding due to impossibly large ICC profile*/ + case 113: return "ICC profile unreasonably large"; + case 114: return "sBIT chunk has wrong size for the color type of the image"; + case 115: return "sBIT value out of range"; + } + return "unknown error code"; +} +#endif /*LODEPNG_COMPILE_ERROR_TEXT*/ + +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* // C++ Wrapper // */ +/* ////////////////////////////////////////////////////////////////////////// */ +/* ////////////////////////////////////////////////////////////////////////// */ + +#ifdef LODEPNG_COMPILE_CPP +namespace lodepng { + +#ifdef LODEPNG_COMPILE_DISK +unsigned load_file(std::vector& buffer, const std::string& filename) { + long size = lodepng_filesize(filename.c_str()); + if(size < 0) return 78; + buffer.resize((size_t)size); + return size == 0 ? 0 : lodepng_buffer_file(&buffer[0], (size_t)size, filename.c_str()); +} + +/*write given buffer to the file, overwriting the file, it doesn't append to it.*/ +unsigned save_file(const std::vector& buffer, const std::string& filename) { + return lodepng_save_file(buffer.empty() ? 0 : &buffer[0], buffer.size(), filename.c_str()); +} +#endif /* LODEPNG_COMPILE_DISK */ + +#ifdef LODEPNG_COMPILE_ZLIB +#ifdef LODEPNG_COMPILE_DECODER +unsigned decompress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGDecompressSettings& settings) { + unsigned char* buffer = 0; + size_t buffersize = 0; + unsigned error = zlib_decompress(&buffer, &buffersize, 0, in, insize, &settings); + if(buffer) { + out.insert(out.end(), buffer, &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned decompress(std::vector& out, const std::vector& in, + const LodePNGDecompressSettings& settings) { + return decompress(out, in.empty() ? 0 : &in[0], in.size(), settings); +} +#endif /* LODEPNG_COMPILE_DECODER */ + +#ifdef LODEPNG_COMPILE_ENCODER +unsigned compress(std::vector& out, const unsigned char* in, size_t insize, + const LodePNGCompressSettings& settings) { + unsigned char* buffer = 0; + size_t buffersize = 0; + unsigned error = zlib_compress(&buffer, &buffersize, in, insize, &settings); + if(buffer) { + out.insert(out.end(), buffer, &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned compress(std::vector& out, const std::vector& in, + const LodePNGCompressSettings& settings) { + return compress(out, in.empty() ? 0 : &in[0], in.size(), settings); +} +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_ZLIB */ + + +#ifdef LODEPNG_COMPILE_PNG + +State::State() { + lodepng_state_init(this); +} + +State::State(const State& other) { + lodepng_state_init(this); + lodepng_state_copy(this, &other); +} + +State::~State() { + lodepng_state_cleanup(this); +} + +State& State::operator=(const State& other) { + lodepng_state_copy(this, &other); + return *this; +} + +#ifdef LODEPNG_COMPILE_DECODER + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, const unsigned char* in, + size_t insize, LodePNGColorType colortype, unsigned bitdepth) { + unsigned char* buffer = 0; + unsigned error = lodepng_decode_memory(&buffer, &w, &h, in, insize, colortype, bitdepth); + if(buffer && !error) { + State state; + state.info_raw.colortype = colortype; + state.info_raw.bitdepth = bitdepth; + size_t buffersize = lodepng_get_raw_size(w, h, &state.info_raw); + out.insert(out.end(), buffer, &buffer[buffersize]); + } + lodepng_free(buffer); + return error; +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + const std::vector& in, LodePNGColorType colortype, unsigned bitdepth) { + return decode(out, w, h, in.empty() ? 0 : &in[0], (unsigned)in.size(), colortype, bitdepth); +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const unsigned char* in, size_t insize) { + unsigned char* buffer = NULL; + unsigned error = lodepng_decode(&buffer, &w, &h, &state, in, insize); + if(buffer && !error) { + size_t buffersize = lodepng_get_raw_size(w, h, &state.info_raw); + out.insert(out.end(), buffer, &buffer[buffersize]); + } + lodepng_free(buffer); + return error; +} + +unsigned decode(std::vector& out, unsigned& w, unsigned& h, + State& state, + const std::vector& in) { + return decode(out, w, h, state, in.empty() ? 0 : &in[0], in.size()); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned decode(std::vector& out, unsigned& w, unsigned& h, const std::string& filename, + LodePNGColorType colortype, unsigned bitdepth) { + std::vector buffer; + /* safe output values in case error happens */ + w = h = 0; + unsigned error = load_file(buffer, filename); + if(error) return error; + return decode(out, w, h, buffer, colortype, bitdepth); +} +#endif /* LODEPNG_COMPILE_DECODER */ +#endif /* LODEPNG_COMPILE_DISK */ + +#ifdef LODEPNG_COMPILE_ENCODER +unsigned encode(std::vector& out, const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) { + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode_memory(&buffer, &buffersize, in, w, h, colortype, bitdepth); + if(buffer) { + out.insert(out.end(), buffer, &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) { + if(lodepng_get_raw_size_lct(w, h, colortype, bitdepth) > in.size()) return 84; + return encode(out, in.empty() ? 0 : &in[0], w, h, colortype, bitdepth); +} + +unsigned encode(std::vector& out, + const unsigned char* in, unsigned w, unsigned h, + State& state) { + unsigned char* buffer; + size_t buffersize; + unsigned error = lodepng_encode(&buffer, &buffersize, in, w, h, &state); + if(buffer) { + out.insert(out.end(), buffer, &buffer[buffersize]); + lodepng_free(buffer); + } + return error; +} + +unsigned encode(std::vector& out, + const std::vector& in, unsigned w, unsigned h, + State& state) { + if(lodepng_get_raw_size(w, h, &state.info_raw) > in.size()) return 84; + return encode(out, in.empty() ? 0 : &in[0], w, h, state); +} + +#ifdef LODEPNG_COMPILE_DISK +unsigned encode(const std::string& filename, + const unsigned char* in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) { + std::vector buffer; + unsigned error = encode(buffer, in, w, h, colortype, bitdepth); + if(!error) error = save_file(buffer, filename); + return error; +} + +unsigned encode(const std::string& filename, + const std::vector& in, unsigned w, unsigned h, + LodePNGColorType colortype, unsigned bitdepth) { + if(lodepng_get_raw_size_lct(w, h, colortype, bitdepth) > in.size()) return 84; + return encode(filename, in.empty() ? 0 : &in[0], w, h, colortype, bitdepth); +} +#endif /* LODEPNG_COMPILE_DISK */ +#endif /* LODEPNG_COMPILE_ENCODER */ +#endif /* LODEPNG_COMPILE_PNG */ +} /* namespace lodepng */ +#endif /*LODEPNG_COMPILE_CPP*/ \ No newline at end of file diff --git a/mlx/main.c b/mlx/main.c new file mode 100644 index 0000000..91cb683 --- /dev/null +++ b/mlx/main.c @@ -0,0 +1,42 @@ +#include "include/MLX42/MLX42.h" +#include +#include +#include +#include +#define WIDTH 256 +#define HEIGHT 256 + +mlx_image_t *g_img; + +void hook(void *param) +{ + mlx_t *mlx; + + mlx = param; + if (mlx_is_key_down(mlx, MLX_KEY_ESCAPE)) + mlx_close_window(mlx); + if (mlx_is_key_down(mlx, MLX_KEY_UP)) + g_img->instances[0].y -= 5; + if (mlx_is_key_down(mlx, MLX_KEY_DOWN)) + g_img->instances[0].y += 5; + if (mlx_is_key_down(mlx, MLX_KEY_LEFT)) + g_img->instances[0].x -= 5; + if (mlx_is_key_down(mlx, MLX_KEY_RIGHT)) + g_img->instances[0].x += 5; +} + +int32_t main(void) +{ + mlx_t *mlx; + + mlx = mlx_init(WIDTH, HEIGHT, "MLX42", true); + if (!mlx) + exit(EXIT_FAILURE); + g_img = mlx_new_image(mlx, 128, 128); + memset(g_img->pixels, 255, g_img->width * g_img->height * sizeof(int)); + mlx_image_to_window(mlx, g_img, 0, 0); + mlx_loop_hook(mlx, &hook, mlx); + mlx_loop(mlx); + mlx_terminate(mlx); + return (EXIT_SUCCESS); +} diff --git a/mlx/shaders/default.frag b/mlx/shaders/default.frag new file mode 100644 index 0000000..daa00db --- /dev/null +++ b/mlx/shaders/default.frag @@ -0,0 +1,48 @@ +#version 330 core + +in vec2 TexCoord; +flat in int TexIndex; + +out vec4 FragColor; + +uniform sampler2D Texture0; +uniform sampler2D Texture1; +uniform sampler2D Texture2; +uniform sampler2D Texture3; +uniform sampler2D Texture4; +uniform sampler2D Texture5; +uniform sampler2D Texture6; +uniform sampler2D Texture7; +uniform sampler2D Texture8; +uniform sampler2D Texture9; +uniform sampler2D Texture10; +uniform sampler2D Texture11; +uniform sampler2D Texture12; +uniform sampler2D Texture13; +uniform sampler2D Texture14; +uniform sampler2D Texture15; + +void main() +{ + vec4 outColor = vec4(1.0, 0.0, 0.0, 1.0); + switch (int(TexIndex)) { + case 0: outColor = texture(Texture0, TexCoord); break; + case 1: outColor = texture(Texture1, TexCoord); break; + case 2: outColor = texture(Texture2, TexCoord); break; + case 3: outColor = texture(Texture3, TexCoord); break; + case 4: outColor = texture(Texture4, TexCoord); break; + case 5: outColor = texture(Texture5, TexCoord); break; + case 6: outColor = texture(Texture6, TexCoord); break; + case 7: outColor = texture(Texture7, TexCoord); break; + case 8: outColor = texture(Texture8, TexCoord); break; + case 9: outColor = texture(Texture9, TexCoord); break; + case 10: outColor = texture(Texture10, TexCoord); break; + case 11: outColor = texture(Texture11, TexCoord); break; + case 12: outColor = texture(Texture12, TexCoord); break; + case 13: outColor = texture(Texture13, TexCoord); break; + case 14: outColor = texture(Texture14, TexCoord); break; + case 15: outColor = texture(Texture15, TexCoord); break; + default: outColor = vec4(1.0, 0.0, 0.0, 1.0); break; + } + FragColor = outColor; +} diff --git a/mlx/shaders/default.vert b/mlx/shaders/default.vert new file mode 100644 index 0000000..16b0336 --- /dev/null +++ b/mlx/shaders/default.vert @@ -0,0 +1,17 @@ +#version 330 core + +layout(location = 0) in vec3 aPos; +layout(location = 1) in vec2 aTexCoord; +layout(location = 2) in int aTexIndex; + +out vec2 TexCoord; +flat out int TexIndex; + +uniform mat4 ProjMatrix; + +void main() +{ + gl_Position = ProjMatrix * vec4(aPos, 1.0); + TexCoord = aTexCoord; + TexIndex = aTexIndex; +} diff --git a/mlx/src/font/font.h b/mlx/src/font/font.h new file mode 100644 index 0000000..5fd9c06 --- /dev/null +++ b/mlx/src/font/font.h @@ -0,0 +1,3543 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* font.h :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/02/22 12:42:53 by W2Wizard #+# #+# */ +/* Updated: 2022/03/03 13:05:57 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#ifndef FONT_H +# define FONT_H +# define FONT_WIDTH 10 +# define FONT_HEIGHT 20 +# include + +// GIMP RGBA C-Source image dump (font.c) +static struct s_font +{ + uint32_t width; + uint32_t height; + uint32_t bpp; + uint8_t pixels[1140 * 20 * 4 + 1]; +} font_atlas = { + 1140, 20, 4, + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\214\377\377\377\224\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377I\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377" + ")\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\216\377\377\377\263\377\377\377\13\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377b\377\377\377V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\215\377\377\377\270\377\377" + "\377u\377\377\377\13\377\377\377\252\377\377\377\255\377\377\377\13\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\317\377\377\377\374\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377e\377\377\3775\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\234\377\377\377\267" + "\377\377\377B\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\343\377\377" + "\377\375\377\377\377M\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\13\377\377\377\355\377\377\377\367\377\377\3778\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377j\377\377\377\373\377\377\377\243\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377b\377\377\377\237\377\377\377\233\377\377\377Z\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "b\377\377\377c\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377)\377\377\377e\377\377\377I\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377U\377\377\377" + "c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377b\377\377\377c\377\377\377\13\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377S\377\377\377c\377\377\3775\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\213\377" + "\377\377\363\377\377\377\364\377\377\377\364\377\377\377\372\377\377\377" + "\225\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377u\377\377" + "\377\371\377\377\377\233\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\215\377\377\377\372" + "\377\377\377\364\377\377\377\364\377\377\377\363\377\377\377\224\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377U\377\377\377e\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377\13\377\377\377\351\377\377\377\376\377\377\377s\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\214\377\377\377\372\377" + "\377\377\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\367\377\377\377" + "\315\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\3775\377\377\377\340" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\304\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\214\377\377\377\372\377\377\377\\\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377s\377\377\377\366\377\377\377\342\377\377\377%" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377s\377\377\377\366\377\377\377\342\377\377\377%\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377" + "\372\377\377\377\225\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\306\377\377\377\374\377" + "\377\377\370\377\377\377\370\377\377\377\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377E\377\377" + "\377\317\377\377\377\357\377\377\377\373\377\377\377\225\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\320" + "\377\377\377\374\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\215\377\377\377\372\377\377\377\363\377" + "\377\377\333\377\377\377m\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\1\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\13\377\377\377\364\377\377\377\366\377\377\377%\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377" + "\377\361\377\377\377\377\377\377\377\254\377\377\377=\377\377\377\375\377" + "\377\377\372\377\377\377)\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\215\377\377\377\363\377\377\377%\377\377\377" + "\224\377\377\377\363\377\377\377%\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\3772\377\377\377\336\377\377\377\375\377" + "\377\377x\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\262\377\377\377\372\377\377\377\370\377\377\377\246\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377=\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\377\377\377~\377\377\377\374\377\377\377\377\377\377" + "\377\376\377\377\377\224\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377V\377\377\377\375\377\377\377" + "\376\377\377\377l\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\325\377\377\377\377" + "\377\377\377\271\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\355\377\377\377\33\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377v\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\315\377\377\377\367\377\377\377\373\377\377\377\334\377\377\377B\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377`\377\377\377\300\377\377\377\342\377\377\377Z\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\224\377\377" + "\377\347\377\377\377\373\377\377\377\364\377\377\377\312\377\377\377)\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377" + "\226\377\377\377\346\377\377\377\370\377\377\377\360\377\377\377\327\377" + "\377\377b\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\214\377\377\377\343\377\377\377\273" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377" + "\377\377\315\377\377\377\337\377\377\377\333\377\377\377\333\377\377\377" + "\333\377\377\377\343\377\377\377\223\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\215\377\377\377\346\377\377\377" + "\370\377\377\377\364\377\377\377\320\377\377\377O\0\0\0\0\377\377\377\377" + "\377\377\377\377\377\377\377\13\377\377\377\315\377\377\377\337\377\377\377" + "\333\377\377\377\333\377\377\377\333\377\377\377\333\377\377\377\333\377" + "\377\377\323\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0" + "\0\377\377\3772\377\377\377\316\377\377\377\366\377\377\377\373\377\377\377" + "\344\377\377\377\200\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\377\377\377u\377\377\377\342\377\377\377\370\377\377\377\364" + "\377\377\377\305\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377)\377\377\3775\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\371\371\377.\377\377\377V\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\13\377\377\377\321\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\271\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377Q\377\377\377" + "\273\377\377\377\332\377\377\377\322\377\377\377\206\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\3778\377\377" + "\377\367\377\377\377\376\377\377\377s\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\374\377\377\377\360\377\377\377\253\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377" + "\13\377\377\377\304\377\377\377\375\377\377\377\377\377\377\377\377\377\377" + "\377\373\377\377\377\247\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\307\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\374\377\377\377\324\377\377\377B\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\346" + "\377\377\377\13\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377" + "\377\377\352\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\376\377\377\377l\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\377\377\3775\377\377\377\333\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\361\377\377\377\202\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\307\377\377\377\376\377" + "\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\352\377\377\377\364" + "\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\373\377\377\377" + "\377\377\377\377\377\377\377\377\303\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377\225\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377" + "\377\377\377\225\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\356\377\377\377" + "\376\377\377\377v\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13" + "\377\377\377\352\377\377\377\364\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\307\377" + "\377\377\377\377\377\377\243\0\0\0\0\0\0\0\0\377\377\377u\377\377\377\375" + "\377\377\377\321\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\307\377\377\377\377\377\377\377\251\0\0\0\0\0\0\0\0\377\377\377\13\377" + "\377\377\355\377\377\377\330\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\377\377\377\206\377\377\377\366\377\377\377\377\377\377\377" + "\377\377\377\377\373\377\377\377\246\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\370\377\377\377\324\377\377\377" + "B\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\206" + "\377\377\377\370\377\377\377\377\377\377\377\377\377\377\377\373\377\377" + "\377\240\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\224\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\364\377\377\377\312\377\377\377\33\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\377\377\377\204\377\377\377\365\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\342\377\377\377V\0\0\0\0" + "\377\377\377\377\377\377\377\377\377\377\377\224\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\373\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\252\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\307\377\377\377\376\377\377\377i\0\0\0\0\0\0" + "\0\0\377\377\377\13\377\377\377\352\377\377\377\364\377\377\377%\377\377" + "\377\377\377\377\377\377\377\377\377}\377\377\377\376\377\377\377\332\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\262\377\377\377\377\377\377\377" + "\216\377\377\377\377\377\377\377\377\377\377\377\345\377\377\377\372\377" + "\377\377=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355" + "\377\377\377\356\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377" + "\345\377\377\377\376\377\377\377~\0\0\0\0\0\0\0\0\377\377\3778\377\377\377" + "\367\377\377\377\360\377\377\377\33\377\377\377\377\377\377\377\377\377\377" + "\377\206\377\377\377\377\377\377\377\332\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\266\377\377\377\377\377\377\377\234\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\361" + "\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\224\377\377\377\377\377\377\377\312\377\377\377\255\377\377\377" + "\266\377\377\377u\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377;\377\377\377\373\377\377\377\347\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377`\377\377" + "\377\266\377\377\377\263\377\377\377\256\377\377\377\373\377\377\377\254" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\33\377\377\377\371\377\377\377\376\377\377\377_\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377b\377\377\377\374" + "\377\377\377\355\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\224\377\377\377\376\377\377\377l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377" + "\377\377\374\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\334\377\377\377\377\377\377\377\346\377\377\377\272\377\377\377" + "\342\377\377\377\276\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377" + "l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\215\377\377\377\377" + "\377\377\377\377\377\377\377l\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\215\377\377\377\377\377" + "\377\377\377\377\377\377l\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377K\377\377\377\375\377\377\377\254\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\247\377\377\377\343\377\377\377\340\377\377\377\377\377\377\377" + "\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377`\377\377\377\262\377\377\377=\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\342\377\377\377\377\377\377\377" + "\325\377\377\377\266\377\377\377u\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377`\377\377\377\263\377\377\377\307\377\377\377\376\377\377\377\363" + "\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\0\377\377\377\0\377\377\377\0\377\377\377\1\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377\351\377\377\377\366\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\356\377\377\377\377" + "\377\377\377\243\377\377\377;\377\377\377\374\377\377\377\364\377\377\377" + "%\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\313\377\377\377\355\0\0\0\0\377\377\377\320\377\377\377\346\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\247" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\352\377\377\377S\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" + "}\377\377\377\377\377\377\377\326\377\377\377\334\377\377\377\376\377\377" + "\377l\0\0\0\0\377\377\377}\377\377\377\377\377\377\377\323\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\354\377\377\377\364\377" + "\377\377\226\377\377\377\373\377\377\377\337\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\33\377\377" + "\377\362\377\377\377\376\377\377\377l\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\232\377" + "\377\377\377\377\377\377\336\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\302\377\377\377\377\377" + "\377\377\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377|\377\377\377\205\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377_\377\377\377\232\377\377\377\13\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "!\377\377\377\371\377\377\377\352\377\377\377\13\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\345\377\377\377\377\377" + "\377\377\365\377\377\377\353\377\377\377\377\377\377\377\367\377\377\377" + "2\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\313" + "\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377l\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\314\377" + "\377\377\377\377\377\377\376\377\377\377\335\377\377\377\371\377\377\377" + "\377\377\377\377\352\377\377\377\33\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\302\377\377\377\377\377\377\377\377\377\377\377\342" + "\377\377\377\362\377\377\377\377\377\377\377\375\377\377\377\\\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "U\377\377\377\374\377\377\377\377\377\377\377\333\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377" + "\377\377\377\377\373\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\251\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377" + "\377\377\247\377\377\377\377\377\377\377\377\377\377\377\360\377\377\377" + "\373\377\377\377\377\377\377\377\360\377\377\377\33\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\332\377\377\377\377\377\377\377\376\377\377" + "\377\374\377\377\377\374\377\377\377\376\377\377\377\377\377\377\377\367" + "\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\25\377" + "\377\377\356\377\377\377\377\377\377\377\351\377\377\377\350\377\377\377" + "\376\377\377\377\376\377\377\377s\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377|\377\377\377\376\377\377\377\377\377\377\377\345\377" + "\377\377\356\377\377\377\377\377\377\377\355\377\377\377%\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377}\377\377\377\374\377\377\377\254\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377V\377\377\377\375\377\377\377\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\3778\377" + "\377\377\372\377\377\377\343\377\377\377u\377\377\377\217\377\377\377\374" + "\377\377\377\375\377\377\377M\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\377\377\377\233\377\377\377\376\377\377\377\377\377\377\377" + "\354\377\377\377\375\377\377\377\377\377\377\377\257\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\232\377\377\377" + "\377\377\377\377\377\377\377\377\277\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377" + "\342\377\377\377\304\377\377\377\332\377\377\377\376\377\377\377\377\377" + "\377\377\227\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377" + "\377\377\331\377\377\377\377\377\377\377\373\377\377\377\306\377\377\377" + "\307\377\377\377\375\377\377\377\376\377\377\377Q\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\313\377\377\377\377\377\377\377\330\377\377" + "\377\310\377\377\377\370\377\377\377\377\377\377\377\375\377\377\377f\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\374" + "\377\377\377\376\377\377\377\323\377\377\377\327\377\377\377\327\377\377" + "\377\327\377\377\377\316\377\377\377\33\377\377\377\377\377\377\377\377\0" + "\0\0\0\377\377\377\13\377\377\377\356\377\377\377\376\377\377\377\324\377" + "\377\377\327\377\377\377\327\377\377\377\327\377\377\377\312\377\377\377" + "%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\33\377\377\377\362" + "\377\377\377\377\377\377\377\365\377\377\377\277\377\377\377\321\377\377" + "\377\377\377\377\377\366\377\377\377\33\377\377\377\377\377\377\377\377\0" + "\0\0\0\377\377\377\313\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\356\377\377\377\366\377\377\377%\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377}\377\377\377\332\377\377\377\323\377\377" + "\377\371\377\377\377\377\377\377\377\331\377\377\377\327\377\377\377\266" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377" + "\302\377\377\377\323\377\377\377\322\377\377\377\322\377\377\377\342\377" + "\377\377\377\377\377\377\252\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\377\377\377\377\252\0\0\0\0\0\0\0\0\377" + "\377\377\335\377\377\377\377\377\377\377\315\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\13\377\377\377\356\377\377\377\366\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\313\377\377\377\377\377\377\377\336\0\0\0\0\0\0" + "\0\0\377\377\377\275\377\377\377\377\377\377\377\330\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\312\377\377\377\377\377\377\377" + "\364\377\377\377%\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377\333" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377j\377\377\377" + "\375\377\377\377\377\377\377\377\325\377\377\377\313\377\377\377\376\377" + "\377\377\377\377\377\377\225\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\377\377\377\377\342\377\377\377\310\377" + "\377\377\322\377\377\377\366\377\377\377\377\377\377\377\355\377\377\377" + "\33\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377j\377\377\377\375" + "\377\377\377\377\377\377\377\321\377\377\377\307\377\377\377\376\377\377" + "\377\377\377\377\377\216\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\224\377\377\377\377\377\377\377\342\377\377\377\310\377\377" + "\377\322\377\377\377\371\377\377\377\377\377\377\377\336\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\374\377\377\377" + "\377\377\377\377\330\377\377\377\271\377\377\377\351\377\377\377\377\377" + "\377\377\334\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377}\377\377" + "\377\332\377\377\377\327\377\377\377\323\377\377\377\371\377\377\377\377" + "\377\377\377\331\377\377\377\326\377\377\377\332\377\377\377p\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377" + "i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\356\377\377\377\366\377\377" + "\377%\377\377\377\377\377\377\377\377\377\377\377\33\377\377\377\365\377" + "\377\377\375\377\377\3778\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\345" + "\377\377\377\375\377\377\377Q\377\377\377\377\377\377\377\377\377\377\377" + "\313\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\361\377\377\377\347\377\377\377\377\377\377\377\377\0" + "\0\0\0\377\377\377\214\377\377\377\377\377\377\377\343\0\0\0\0\0\0\0\0\377" + "\377\377\261\377\377\377\377\377\377\377\272\0\0\0\0\377\377\377\377\377" + "\377\377\377\377\377\377\13\377\377\377\351\377\377\377\376\377\377\377i" + "\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\366\377\377\377\372\377\377\377" + "8\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377v\377\377\377\327\377" + "\377\377\322\377\377\377\322\377\377\377\316\377\377\377\351\377\377\377" + "\377\377\377\377\360\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377U\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377" + "\377\377\320\377\377\377\376\377\377\377_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\13\377\377\377\364\377\377\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377" + "\377\377\377\377\377\377\377\377\377\377\272\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\233\377\377\377\371\377\377\377" + "i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377\377" + "\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377I\377\377\377\373\377\377\377" + "\356\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377" + "\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "S\377\377\377\314\377\377\377\271\377\377\377\13\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377S\377" + "\377\377\314\377\377\377\271\377\377\377\13\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\375\377\377\377\252\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\360\377\377\377\334\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\247\377\377\377\377\377\377\377l\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377\337\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\313\377\377\377\372\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\3\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\331" + "\377\377\377\376\377\377\377i\377\377\377K\377\377\377\374\377\377\377\366" + "\377\377\377)\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\316\377\377\377\333\0\0\0\0\377\377\377\316\377\377\377" + "\333\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "8\377\377\377\372\377\377\377\377\377\377\377\307\377\377\377\237\377\377" + "\377\364\377\377\377\377\377\377\377\244\0\0\0\0\377\377\377\377\377\377" + "\377\377\377\377\377\232\377\377\377\375\377\377\3772\377\377\377=\377\377" + "\377\375\377\377\377\254\377\377\377!\377\377\377\371\377\377\377\367\377" + "\377\3778\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377;\377\377\377" + "\372\377\377\377\346\377\377\377\13\377\377\377\371\377\377\377\333\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\13\377\377\377\355\377\377\377\375\377\377\377\\\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377\355\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377!\377\377\377\372\377\377\377\375\377\377\3778\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\327\377\377\377\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\320\377\377" + "\377\374\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\252\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\204\377" + "\377\377\377\377\377\377\353\377\377\377\13\0\0\0\0\377\377\377\320\377\377" + "\377\377\377\377\377\260\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377\205\377\377\377\322\377\377\377\353\377\377\377\376" + "\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\325\377\377\377\375\377\377\377M\0\0\0\0\377\377\377\33" + "\377\377\377\356\377\377\377\376\377\377\377l\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\215\377\377\377\375\377\377\377Z\0\0\0\0" + "\0\0\0\0\377\377\377\325\377\377\377\377\377\377\377\257\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\25\377\377\377" + "\356\377\377\377\377\377\377\377\377\377\377\377\326\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\374\377\377" + "\377\330\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377!\377\377\377\371\377\377\377\377\377" + "\377\377\216\0\0\0\0\0\0\0\0\377\377\377\302\377\377\377\224\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\302\377\377\377\377\377\377\377\252\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377V\377\377\377\375\377\377\377\333" + "\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\260\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\330\377\377\377\377" + "\377\377\377\251\0\0\0\0\377\377\377\13\377\377\377\336\377\377\377\377\377" + "\377\377\227\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\250\377\377\377\276\377\377\377\33\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\250\377\377\377\276\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\276\377\377\377\377\377\377\377\377\377\377\377\225\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377I\377\377\377\373\377\377\377\377\377\377\377\325\377" + "\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\306\377" + "\377\377\376\377\377\377l\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377K\377\377\377\374\377\377\377\375\377\377\377q\0\0\0\0\377\377" + "\377\33\377\377\377\362\377\377\377\366\377\377\377%\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\334\377\377\377\377\377" + "\377\377\376\377\377\377\360\377\377\377\33\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\243" + "\0\0\0\0\0\0\0\0\377\377\377\223\377\377\377\377\377\377\377\327\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377s\377\377\377\376\377" + "\377\377\375\377\377\377_\0\0\0\0\0\0\0\0\377\377\377z\377\377\377\257\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377" + "\376\377\377\377U\0\0\0\0\377\377\377\33\377\377\377\353\377\377\377\377" + "\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377K\377\377\377\374\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377" + "\377\355\377\377\377\366\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\247\377\377\377" + "\377\377\377\377\364\377\377\377)\0\0\0\0\0\0\0\0\377\377\377\246\377\377" + "\377\213\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313" + "\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\355\377\377\377\366\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\355\377\377\377\363\377\377\377\13\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\213\377\377\377\377\377\377\377" + "\252\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377" + "\377\377\377\377\377\377\252\0\0\0\0\377\377\377\270\377\377\377\377\377" + "\377\377\355\377\377\377\33\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0" + "\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\307\377\377\377\377\377\377\377\375\377\377\3778\377\377\377\13" + "\377\377\377\352\377\377\377\377\377\377\377\327\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\307\377\377\377\377\377\377\377\377" + "\377\377\377\251\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377\333\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377" + "\377\377\377\377\315\0\0\0\0\0\0\0\0\377\377\377\253\377\377\377\377\377" + "\377\377\346\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\224\377\377\377\377\377\377\377\243\0\0\0\0\0\0\0\0\377\377\377\25\377\377" + "\377\356\377\377\377\376\377\377\377l\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\313\377\377\377\377\377\377\377\310\0\0\0\0\0\0\0\0\377" + "\377\377\253\377\377\377\377\377\377\377\342\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\243\0\0" + "\0\0\0\0\0\0\377\377\377!\377\377\377\371\377\377\377\367\377\377\377)\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\232\377\377\377\377\377" + "\377\377\315\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\302\377\377\377z\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\355\377\377\377\363\377\377\377\13\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377" + "i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377" + "\377%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\312\377\377\377" + "\377\377\377\377\215\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377" + "\377\347\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\247\377\377" + "\377\377\377\377\377\206\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377" + "\377\377\374\377\377\377\333\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\377\377\377\342\377\377\377\376\377\377\377v\377\377\377\33\377\377" + "\377\366\377\377\377\367\377\377\377)\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\214\377\377\377\377\377\377\377\316\0\0\0\0\0\0" + "\0\0\377\377\377\232\377\377\377\377\377\377\377\264\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\25\377\377\377\356\377\377\377\376\377\377\377v\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\376" + "\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\377\377\377\377\277\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\364\377\377\377\254\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\335\377\377\377\370\377\377\377\353\377\377\377\363\377" + "\377\377%\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377)\377\377\377V\377\377\377\33\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224" + "\377\377\377\376\377\377\377b\0\0\0\0\377\377\377S\377\377\3775\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377S\377\377\377I\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377S\377" + "\377\3775\377\377\377;\377\377\377\374\377\377\377\333\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377)\377\377" + "\377V\377\377\377\13\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377;\377\377\377\374\377\377\377\326" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377E\377\377\377E\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377" + "\377\376\377\377\377b\0\0\0\0\377\377\377E\377\377\377S\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377" + "\377\375\377\377\377\252\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377" + "\377\377\361\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377)\377\377\377X\0" + "\0\0\0\0\0\0\0\377\377\377V\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377E\377\377\377S\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377E\377\377\377K\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377S\377\377\3775\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377S\377\377\3775\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377)\377\377\377U\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377E\377\377\377U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\376\377\377" + "\377b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\361" + "\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371" + "\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377" + "%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\377" + "\377\377\0\377\377\377\6\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371" + "\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377l\377\377\377\33" + "\377\377\377\364\377\377\377\352\377\377\377\13\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\3772\377\377\377\274\377\377\377\361\377\377" + "\377\375\377\377\377\265\377\377\377\367\377\377\377\372\377\377\377\221" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377V\377\377\377" + "\374\377\377\377\336\0\0\0\0\0\0\0\0\377\377\3775\377\377\377\261\377\377" + "\377\13\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\232\377\377\377" + "\371\377\377\377\33\377\377\377;\377\377\377\374\377\377\377\217\377\377" + "\377\335\377\377\377\375\377\377\377\\\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\33\377\377\377\371\377\377\377\333\377\377\377e" + "\377\377\377\374\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\361\377" + "\377\377\364\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377b\377\377\377\375\377\377\377" + "\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\266\377\377\377\377\377\377\377" + "\227\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\316\377\377\377\334\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\335\377\377" + "\377\375\377\377\377=\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\306\377\377\377\377\377\377\377\225\0\0\0\0\0\0\0\0\377" + "\377\377`\377\377\377\375\377\377\377\346\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\213\377\377\377\376" + "\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\3772\377\377\377f\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\253\377" + "\377\377\376\377\377\377i\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\231\377\377\377\377" + "\377\377\377\257\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\313\377\377\377\377\377\377\377\356\377\377\377\374" + "\377\377\377\332\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377K\377\377\377\374\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\224\377\377\377\377\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377b\377\377\377\375\377\377\377\347\377\377\377\13" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377U\377\377\377" + "\375\377\377\377\266\0\0\0\0\0\0\0\0\377\377\377;\377\377\377\374\377\377" + "\377\236\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\25\377\377\377" + "\361\377\377\377\367\377\377\377)\0\0\0\0\0\0\0\0\377\377\377j\377\377\377" + "\376\377\377\377\322\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\214\377\377\377\377\377\377\377\377\377\377\377" + "\260\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\214\377\377\377\377\377\377\377\377\377\377\377" + "\260\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377G\377\377\377\350\377\377\377\377\377\377\377\367" + "\377\377\377y\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\207\377\377\377\307\377\377\377\304\377\377\377\304\377\377\377" + "\304\377\377\377\304\377\377\377\304\377\377\377\243\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377S\377\377\377\351\377\377" + "\377\377\377\377\377\365\377\377\377n\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\13\377\377\377\345\377\377\377\376\377\377\377_\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\273\377\377\377\377\377\377\377\234" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\232\377\377\377\376\377\377\377i\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377;\377\377\377\373" + "\377\377\377\344\377\377\377\317\377\377\377\376\377\377\377v\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377" + "\377\377\377\377\252\0\0\0\0\0\0\0\0\377\377\377X\377\377\377\375\377\377" + "\377\327\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\300" + "\377\377\377\377\377\377\377\277\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377" + "\377\375\377\377\377Q\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "K\377\377\377\374\377\377\377\332\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377" + "\355\377\377\377\366\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\342\377\377\377\377" + "\377\377\377\225\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377" + "\377b\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377" + "\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\355\377\377\377\366\377\377\377)\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\252\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377" + "\377\377\237\377\377\377\203\377\377\377\377\377\377\377\375\377\377\377" + "Q\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13" + "\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\312\377" + "\377\377\377\377\377\377\377\377\377\377\217\377\377\377X\377\377\377\375" + "\377\377\377\373\377\377\377\332\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\313\377\377\377\373\377\377\377\371\377\377\377\366" + "\377\377\377%\377\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\377" + "\377\377\377\377\377\377\377\377\377\377\33\377\377\377\362\377\377\377\375" + "\377\377\377\\\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\366\377\377\377" + "\375\377\377\377Q\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224" + "\377\377\377\377\377\377\377\252\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\306" + "\377\377\377\375\377\377\377\\\377\377\377\377\377\377\377\377\377\377\377" + "\33\377\377\377\362\377\377\377\375\377\377\377Q\0\0\0\0\0\0\0\0\377\377" + "\377!\377\377\377\371\377\377\377\375\377\377\377M\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\252\0\0\0\0" + "\0\0\0\0\377\377\377\25\377\377\377\370\377\377\377\364\377\377\377%\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\232\377\377\377\377\377" + "\377\377\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355" + "\377\377\377\366\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377i\0\0\0\0" + "\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\204\377\377\377\377\377" + "\377\377\311\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377" + "\260\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\222\377\377\377" + "\377\377\377\377\252\0\0\0\0\377\377\377\307\377\377\377\355\377\377\377" + "%\377\377\377K\377\377\377\374\377\377\377\260\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\377\377\377l\377\377\377\376\377\377\377\333\377\377" + "\377\243\377\377\377\377\377\377\377\244\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\345\377\377\377\375\377" + "\377\377M\377\377\377\13\377\377\377\351\377\377\377\372\377\377\377)\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\317\377\377\377\377\377\377\377\277\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377" + "\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\25\377\377\377\362\377\377\377" + "\363\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\364\377" + "\377\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\377\377\377U\377\377\377\374\377\377\377\316\377\377\377\247" + "\377\377\377\377\377\377\377\206\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\216\377\377\377\345\377\377" + "\377\377\377\377\377\377\377\377\377\376\377\377\377\275\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376" + "\377\377\377\271\377\377\377\364\377\377\377\377\377\377\377\377\377\377" + "\377\313\377\377\377\13\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0" + "\0\0\0\377\377\377\13\377\377\377\272\377\377\377\371\377\377\377\377\377" + "\377\377\377\377\377\377\355\377\377\377\200\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\361\377\377\377\377" + "\377\377\377\377\377\377\377\325\377\377\377\377\377\377\377\332\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\3775\377\377\377" + "\327\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377\267\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\205\377" + "\377\377\361\377\377\377\363\377\377\377\377\377\377\377\374\377\377\377" + "\364\377\377\377\367\377\377\377\354\377\377\377%\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\377\377\377b\377\377\377\350\377\377\377\377\377" + "\377\377\377\377\377\377\360\377\377\377\360\377\377\377\375\377\377\377" + "\243\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377" + "\376\377\377\377\215\377\377\377\350\377\377\377\377\377\377\377\377\377" + "\377\377\346\377\377\3772\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\301\377\377\377\370\377\377\377\364\377\377\377\364\377\377" + "\377\360\377\377\377\350\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\301\377\377\377\370\377\377\377\364\377" + "\377\377\364\377\377\377\360\377\377\377\350\377\377\377%\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\375\377" + "\377\377\252\0\0\0\0\0\0\0\0\377\377\377S\377\377\377\354\377\377\377\363" + "\377\377\377I\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\342\377\377" + "\377\332\377\377\377\374\377\377\377\377\377\377\377\276\377\377\377\353" + "\377\377\377\377\377\377\377\352\377\377\377)\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\214\377\377\377\371\377\377\377\212\377\377\377" + "\350\377\377\377\377\377\377\377\377\377\377\377\346\377\377\3772\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377u\377\377\377" + "\351\377\377\377\377\377\377\377\377\377\377\377\364\377\377\377\222\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\213\377" + "\377\377\371\377\377\377\262\377\377\377\365\377\377\377\377\377\377\377" + "\377\377\377\377\313\377\377\377\13\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\361\377\377\377\377\377\377\377" + "\377\377\377\377\310\377\377\377\347\377\377\377\315\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\301\377\377\377\351\377" + "\377\377)\377\377\377\326\377\377\377\377\377\377\377\377\377\377\377\372" + "\377\377\377M\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377" + "\224\377\377\377\365\377\377\377\377\377\377\377\377\377\377\377\373\377" + "\377\377\300\377\377\377=\0\0\0\0\377\377\377\377\377\377\377\377\377\377" + "\377\13\377\377\377\332\377\377\377\360\377\377\377\373\377\377\377\377\377" + "\377\377\376\377\377\377\364\377\377\377\367\377\377\377\354\377\377\377" + "%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\301\377\377\377\354" + "\377\377\3772\0\0\0\0\0\0\0\0\377\377\377I\377\377\377\364\377\377\377\275" + "\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377I\377\377\377\364\377" + "\377\377\330\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\267\377\377\377" + "\367\377\377\377\\\377\377\377\377\377\377\377\377\377\377\377\335\377\377" + "\377\360\377\377\3778\0\0\0\0\377\377\377~\377\377\377\224\0\0\0\0\377\377" + "\377\13\377\377\377\332\377\377\377\342\377\377\377\377\377\377\377\377\0" + "\0\0\0\377\377\377\275\377\377\377\373\377\377\377\255\0\0\0\0\0\0\0\0\377" + "\377\377r\377\377\377\370\377\377\377\315\0\0\0\0\377\377\377\377\377\377" + "\377\377\377\377\377I\377\377\377\364\377\377\377\330\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\254\377\377\377\367\377\377\377\\\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\365\377\377\377\364\377" + "\377\377\364\377\377\377\364\377\377\377\360\377\377\377\360\377\377\377" + "\354\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313" + "\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\7\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\313\377\377\377\372\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\306\377\377\377\375" + "\377\377\3778\377\377\377\13\377\377\377\364\377\377\377\334\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\364" + "\377\377\377\376\377\377\377\370\377\377\377\364\377\377\377\376\377\377" + "\377\374\377\377\377\320\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\3778\377\377\377\372\377\377\377\376\377\377\377\307\377\377\377" + "O\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377" + "\377\223\377\377\377\377\377\377\377\234\377\377\377\243\377\377\377\376" + "\377\377\377\217\377\377\377\373\377\377\377v\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\331\377\377\377\377\377" + "\377\377\377\377\377\377\367\377\377\3778\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\323" + "\377\377\377\374\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\245\377\377\377\377\377" + "\377\377\215\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377V\377\377\377\375\377\377" + "\377\322\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\260\377\377\377\354\377\377\377\236\377\377\377\326\377\377" + "\377\361\377\377\377\224\377\377\377\341\377\377\377\314\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313" + "\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\325" + "\377\377\377\374\377\377\3772\377\377\377\215\377\377\377\241\377\377\377" + "\13\377\377\377\361\377\377\377\367\377\377\377)\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\376" + "\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\307\377\377\377" + "\376\377\377\377l\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\200\377\377\377\363\377\377\377\376" + "\377\377\377s\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377" + "\377\377\240\377\377\377\377\377\377\377\363\377\377\377V\377\377\377\374" + "\377\377\377\333\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377K\377\377\377\374\377\377\377\333\377\377\377\274\377\377\377" + "\310\377\377\377\251\377\377\377=\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\314\377\377\377\376\377\377\377l\377\377\377" + "j\377\377\377\237\377\377\377\223\377\377\377%\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\342\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\3778\377\377\377\372\377\377\377\376\377\377\377" + "\237\0\0\0\0\377\377\377\254\377\377\377\377\377\377\377\243\0\0\0\0\377" + "\377\377\377\377\377\377\377\377\377\377\25\377\377\377\361\377\377\377\366" + "\377\377\377\33\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\366\377\377\377" + "\355\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\232\377\377\377\377\377\377\377\377\377\377\377\323\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\232\377\377\377\377\377\377\377\377\377\377\377\323\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377" + "\377\224\377\377\377\374\377\377\377\377\377\377\377\314\377\377\377\33\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\274\377\377\377\377\377\377\377\370\377\377\377\370\377\377\377\370\377" + "\377\377\370\377\377\377\373\377\377\377\321\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\264\377\377\377" + "\377\377\377\377\377\377\377\377\262\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\337" + "\377\377\377\377\377\377\377\271\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\377\377\377\25\377\377\377\361\377\377\377\352\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377U\377\377\377\237\377\377\377\376\377\377\377l\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\232\377\377\377\377" + "\377\377\377\266\377\377\377\213\377\377\377\377\377\377\377\304\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377" + "\377\377\377\377\377\265\377\377\377E\377\377\377y\377\377\377\337\377\377" + "\377\377\377\377\377\227\0\0\0\0\377\377\377\377\377\377\377\377\377\377" + "\377\13\377\377\377\352\377\377\377\375\377\377\377Q\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\313\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\324\377\377\377\376\377\377\377l\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377K\377\377\377\374\377\377\377\337\377\377\377Z\377\377\377" + "p\377\377\377p\377\377\377f\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377)\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377" + "\377\3775\377\377\377\371\377\377\377\367\377\377\377)\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\313\377\377\377\376\377\377\377\224\377\377\377m\377\377\377v\377" + "\377\377h\377\377\377\362\377\377\377\366\377\377\377%\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377" + "\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377" + "\377\377\377\377\377\377\252\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\377\377\377\377\300\377\377\377\372\377" + "\377\377\377\377\377\377\236\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\313\377\377\377\370\377\377\377\366\377\377\377" + "\317\377\377\377\243\377\377\377\376\377\377\377\372\377\377\377\333\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377" + "\367\377\377\377\304\377\377\377\377\377\377\377\251\377\377\377\13\377\377" + "\377\361\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\377\377" + "\377U\377\377\377\374\377\377\377\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\314\377\377\377\376\377\377\377i\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\243\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\335\377\377\377\376\377\377\377l\377\377\377\377\377" + "\377\377\377\377\377\377U\377\377\377\374\377\377\377\336\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\317\377\377\377\376\377\377\377l\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377" + "\243\0\0\0\0\0\0\0\0\377\377\377`\377\377\377\373\377\377\377\366\377\377" + "\377%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377`\377\377\377\374" + "\377\377\377\377\377\377\377\336\377\377\377\205\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377" + "\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377" + "\377\366\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\33\377\377\377\371\377\377\377\360\377\377\377\33\0\0\0\0\377\377\377\320" + "\377\377\377\376\377\377\377_\0\0\0\0\377\377\377\377\377\377\377\377\377" + "\377\377U\377\377\377\375\377\377\377\277\377\377\377\33\377\377\377\366" + "\377\377\377\376\377\377\377m\377\377\377\213\377\377\377\377\377\377\377" + "\243\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\324\377\377\377\377\377\377\377\377\377\377\377\355\377\377\377\33\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\204" + "\377\377\377\377\377\377\377\304\377\377\377\204\377\377\377\377\377\377" + "\377\260\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\214\377\377\377\377\377\377\377\355\377\377" + "\377\33\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\266\377\377\377\377\377\377\377\206\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\364\377\377\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\266\377\377\377\377\377" + "\377\377\207\377\377\377K\377\377\377\374\377\377\377\327\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377}\377\377\377" + "\377\377\377\377\373\377\377\377\313\377\377\377\303\377\377\377\374\377" + "\377\377\377\377\377\377\252\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\377\377\377\377\377\377\377\377\351\377" + "\377\377\300\377\377\377\365\377\377\377\377\377\377\377\316\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\346\377\377" + "\377\377\377\377\377\365\377\377\377\305\377\377\377\315\377\377\377\376" + "\377\377\377\366\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377}\377\377\377\376\377\377\377\377\377\377\377\325\377\377\377\321" + "\377\377\377\376\377\377\377\377\377\377\377\332\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\3778\377\377\377\371\377\377\377\377\377" + "\377\377\335\377\377\377\263\377\377\377\351\377\377\377\377\377\377\377" + "\304\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377S\377\377" + "\377\330\377\377\377\343\377\377\377\377\377\377\377\364\377\377\377\327" + "\377\377\377\333\377\377\377\322\377\377\377\33\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\3778\377\377\377\372\377\377\377\376\377\377\377\275" + "\377\377\377\307\377\377\377\376\377\377\377\377\377\377\377\324\377\377" + "\377y\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377" + "\377\377\377\377\377\377\377\377\370\377\377\377\306\377\377\377\356\377" + "\377\377\377\377\377\377\322\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\336\377\377\377\333\377\377\377\327\377" + "\377\377\377\377\377\377\366\377\377\377)\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\336\377\377\377\333" + "\377\377\377\327\377\377\377\377\377\377\377\366\377\377\377)\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\375" + "\377\377\377\252\0\0\0\0\377\377\377`\377\377\377\373\377\377\377\377\377" + "\377\377\242\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\355" + "\377\377\377\377\377\377\377\346\377\377\377\362\377\377\377\377\377\377" + "\377\362\377\377\377\347\377\377\377\377\377\377\377\215\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\377" + "\377\377\377\370\377\377\377\306\377\377\377\356\377\377\377\377\377\377" + "\377\322\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377u\377" + "\377\377\376\377\377\377\377\377\377\377\321\377\377\377\307\377\377\377" + "\375\377\377\377\377\377\377\377\243\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\377\377\377\377" + "\352\377\377\377\300\377\377\377\365\377\377\377\377\377\377\377\316\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377}\377\377\377\376" + "\377\377\377\377\377\377\377\325\377\377\377\321\377\377\377\376\377\377" + "\377\377\377\377\377\332\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377\366\377\377\377\377" + "\377\377\377\335\377\377\377\322\377\377\377\343\377\377\377%\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377u\377\377\377\377\377\377\377\370" + "\377\377\377\277\377\377\377\262\377\377\377\346\377\377\377\377\377\377" + "\377\231\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377" + "\315\377\377\377\330\377\377\377\370\377\377\377\377\377\377\377\335\377" + "\377\377\327\377\377\377\333\377\377\377\322\377\377\377\33\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377l\0\0" + "\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\341\377\377\377\376\377\377" + "\377v\0\0\0\0\0\0\0\0\377\377\377!\377\377\377\371\377\377\377\366\377\377" + "\377)\377\377\377\377\377\377\377\377\377\377\377\313\377\377\377\377\377" + "\377\377\205\377\377\377\13\377\377\377\364\377\377\377\376\377\377\377Q" + "\377\377\377!\377\377\377\371\377\377\377\352\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377I\377\377\377\372\377\377\377\376\377\377\377v\377" + "\377\377\33\377\377\377\362\377\377\377\376\377\377\377}\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\335\377\377\377\376\377\377" + "\377v\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\364\377\377\377\372\377" + "\377\3772\377\377\377\377\377\377\377\377\0\0\0\0\377\377\3775\377\377\377" + "\323\377\377\377\333\377\377\377\333\377\377\377\327\377\377\377\377\377" + "\377\377\377\377\377\377\326\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\320\377\377\377\355\377\377\377" + "\13\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\313\377\377\377\371\377\377\377\33\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377}\377\377" + "\377\313\377\377\377\257\377\377\377\13\0\0\0\0\377\377\377\223\377\377\377" + "\252\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\316" + "\377\377\377\352\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\377\377\377z\377\377\377\325\377\377\377\33\377" + "\377\377\13\377\377\377\314\377\377\377\267\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377!\377\377\377\373\377\377\377" + "\211\377\377\377!\377\377\377\374\377\377\377\200\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\205\377\377\377\370" + "\377\377\377\377\377\377\377\377\377\377\377\345\377\377\377\200\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\333\377" + "\377\377\377\377\377\377\377\377\377\377\321\0\0\0\0\377\377\377r\377\377" + "\377z\377\377\377%\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\25\377\377\377\337\377\377\377\377\377\377\377\375\377\377\3778\0\0" + "\0\0\377\377\377U\377\377\377\365\377\377\377\256\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\255\377\377\377\275" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\314\377\377\377\376\377\377\377b\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\33\377\377\377\371\377\377\377\333\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377~\377\377\377" + "\347\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\361\377\377\377\227\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\312\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\322\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\312\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\322\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\261\377\377\377\377\377\377\377" + "\215\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" + "\25\377\377\377\361\377\377\377\363\377\377\377E\377\377\377\375\377\377" + "\377\377\377\377\377V\377\377\377\324\377\377\377\366\377\377\377%\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224" + "\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377j\377\377" + "\377\375\377\377\377\361\377\377\377%\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\215\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377b\377\377\377\374\377\377\377\375\377\377" + "\377Q\377\377\377K\377\377\377\374\377\377\377\332\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\375\377\377\377" + "\377\377\377\377\374\377\377\377\376\377\377\377\377\377\377\377\375\377" + "\377\377s\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\312" + "\377\377\377\377\377\377\377\360\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\376\377\377\377\213\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\377\377" + "\377\377\315\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\377\377\377\215\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\333\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\321\377\377\377\377\377\377\377\315\377" + "\377\377q\377\377\377\221\377\377\377\363\377\377\377\377\377\377\377\364" + "\377\377\377)\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377G\377\377\377\330\377\377\377\343\377\377\377c\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "G\377\377\377\330\377\377\377\343\377\377\377c\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377V\377\377\377\375\377\377" + "\377\376\377\377\377\214\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377U\377\377\377\374\377\377\377" + "\377\377\377\377m\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\330\377\377\377\377\377\377\377\271\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377U\377\377\377" + "\375\377\377\377\252\0\0\0\0\377\377\377\233\377\377\377\366\377\377\377" + "\377\377\377\377\377\377\377\377\376\377\377\377i\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\377\377\377\334\377\377\377\376\377\377\377U\377" + "\377\377!\377\377\377\371\377\377\377\363\377\377\377%\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\371\377" + "\377\377)\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377" + "\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377" + "\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377i\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "K\377\377\377\374\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\375\377\377\377)\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377l\0\0\0\0\377" + "\377\377\377\377\377\377\377\377\377\377K\377\377\377\374\377\377\377\333" + "\0\0\0\0\0\0\0\0\377\377\377\247\377\377\377\327\377\377\377\322\377\377" + "\377\300\377\377\377\13\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\312\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\364\377\377\377%\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377" + "\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224" + "\377\377\377\377\377\377\377\252\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\332\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377" + "\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\313\377\377\377\363\377\377\377\301\377\377" + "\377\373\377\377\377\356\377\377\377\333\377\377\377\352\377\377\377\333" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377w\377\377\377\371\377\377\377\366\377\377\377!\377\377" + "\377\360\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\377\377" + "\377K\377\377\377\374\377\377\377\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\312\377\377\377\377\377\377\377\251\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\326\377\377\377" + "\247\377\377\377\262\377\377\377\351\377\377\377\377\377\377\377\355\377" + "\377\377\33\377\377\377\377\377\377\377\377\377\377\377K\377\377\377\374" + "\377\377\377\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377i\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\224\377\377\377\377\377\377\377\356\377\377\377\340\377\377\377\343\377" + "\377\377\376\377\377\377\377\377\377\377\304\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\365\377\377\377\377" + "\377\377\377\377\377\377\377\364\377\377\377\247\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377i\0\0" + "\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\321\377\377" + "\377\376\377\377\377i\377\377\377\33\377\377\377\365\377\377\377\355\377" + "\377\377\13\0\0\0\0\377\377\377\377\377\377\377\377\377\377\3778\377\377" + "\377\372\377\377\377\327\377\377\377c\377\377\377\377\377\377\377\377\377" + "\377\377\271\377\377\377\205\377\377\377\376\377\377\377i\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377l\377\377\377\377\377" + "\377\377\377\377\377\377\226\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\344\377\377\377\376\377" + "\377\377\372\377\377\377\367\377\377\377)\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377!\377\377\377\371\377" + "\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\376\377\377" + "\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377V\377\377\377\375\377\377\377\326\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\364\377\377\377\254\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\33\377" + "\377\377\364\377\377\377\363\377\377\377%\0\0\0\0\377\377\377\335\377\377" + "\377\375\377\377\377M\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\377\377\377\177\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\205\377" + "\377\377\376\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\377\377\377\377\257\0\0\0\0\0\0\0\0\377" + "\377\377;\377\377\377\373\377\377\377\372\377\377\3778\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\247\377\377\377\377\377\377\377\345\377" + "\377\377\33\0\0\0\0\0\0\0\0\377\377\377O\377\377\377X\0\0\0\0\377\377\377" + "\377\377\377\377\377\377\377\377\13\377\377\377\351\377\377\377\377\377\377" + "\377\252\0\0\0\0\0\0\0\0\377\377\377b\377\377\377\375\377\377\377\332\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\306\377\377\377" + "\377\377\377\377\252\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\344\377\377\377" + "\372\377\377\377)\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377%\377\377\377\374\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\232\377\377\377" + "\377\377\377\377\264\0\0\0\0\0\0\0\0\377\377\377\335\377\377\377\376\377" + "\377\377Q\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224" + "\377\377\377\377\377\377\377\325\377\377\377\13\0\0\0\0\377\377\377;\377" + "\377\377\373\377\377\377\363\377\377\377%\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\354\377\377\377\366" + "\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\354\377\377\377\366\377\377\377" + "%\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377" + "\377\377\375\377\377\377\237\377\377\377j\377\377\377\374\377\377\377\376" + "\377\377\377\214\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377" + "\377\377\361\377\377\377\352\0\0\0\0\377\377\377\306\377\377\377\375\377" + "\377\377=\377\377\377\211\377\377\377\377\377\377\377\252\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\325" + "\377\377\377\13\0\0\0\0\377\377\377;\377\377\377\373\377\377\377\363\377" + "\377\377%\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\351" + "\377\377\377\377\377\377\377\243\0\0\0\0\0\0\0\0\377\377\377r\377\377\377" + "\375\377\377\377\363\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\224\377\377\377\377\377\377\377\257\0\0\0\0\0\0\0\0\377\377" + "\377;\377\377\377\373\377\377\377\372\377\377\3778\377\377\377\377\377\377" + "\377\377\377\377\377\13\377\377\377\351\377\377\377\377\377\377\377\252\0" + "\0\0\0\0\0\0\0\377\377\377b\377\377\377\375\377\377\377\332\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\312\377\377\377\377" + "\377\377\377\372\377\377\377f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377" + "\333\377\377\377\13\0\0\0\0\0\0\0\0\377\377\377S\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\306\377\377" + "\377\376\377\377\377U\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377i\0\0\0\0" + "\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\204\377\377\377\377\377\377\377" + "\322\0\0\0\0\0\0\0\0\377\377\377\241\377\377\377\377\377\377\377\264\0\0" + "\0\0\377\377\377\377\377\377\377\377\377\377\377\224\377\377\377\377\377" + "\377\377\266\377\377\377;\377\377\377\374\377\377\377\377\377\377\377\226" + "\377\377\377l\377\377\377\377\377\377\377\300\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\377\377\377u\377\377\377\376\377\377\377\361\377\377" + "\377\325\377\377\377\377\377\377\377\252\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377s\377\377\377\377\377\377\377\333\0\0" + "\0\0\0\0\0\0\377\377\377\215\377\377\377\377\377\377\377\277\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\314\377\377\377\377\377\377\377\333\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377E\377\377\377\217\377\377" + "\377\373\377\377\377\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377" + "\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\376\377" + "\377\377\247\377\377\377I\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\214\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\364\377\377\377\245\377\377\377\372\377\377\377\355\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\324\377\377\377" + "\343\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\205\377\377\377" + "\271\377\377\377\376\377\377\377\303\377\377\377\262\377\377\377\377\377" + "\377\377\315\377\377\377l\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\220\377\377\377\341\377\377\377\377" + "\377\377\377\377\377\377\377\233\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\257\377\377\377)\377\377\377" + "\313\377\377\377\377\377\377\377\377\377\377\377\375\377\377\377\\\377\377" + "\377\377\377\377\377\377\377\377\377\13\377\377\377\342\377\377\377\377\377" + "\377\377\373\377\377\377\377\377\377\377\265\0\0\0\0\377\377\377\266\377" + "\377\377\377\377\377\377\215\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377" + "\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\360\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\261\377\377\377\377\377\377\377" + "\377\377\377\377\332\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377`\377\377\377\262\377\377\377\251\377\377\377\354" + "\377\377\377\373\377\377\377\261\377\377\377\262\377\377\377\224\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377v\377\377\377\263\377\377\377\255\377\377\377\255\377" + "\377\377\255\377\377\377\255\377\377\377\263\377\377\377\224\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\356\377\377\377\366\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" + "\13\377\377\377\356\377\377\377\363\371\371\377.\377\377\377\362\377\377" + "\377\375\377\377\377B\377\377\377\335\377\377\377\366\377\377\377%\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224" + "\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377U\377\377\377\373" + "\377\377\377\376\377\377\377s\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\205\377\377\377\271\377\377\377" + "\332\377\377\377\377\377\377\377\373\377\377\377r\0\0\0\0\377\377\377\377" + "\377\377\377\377\377\377\377\33\377\377\377\362\377\377\377\377\377\377\377" + "\242\377\377\377E\377\377\377x\377\377\377\374\377\377\377\336\377\377\377" + "K\377\377\377\13\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377" + "\377\216\377\377\377]\0\0\0\0\0\0\0\0\377\377\377\251\377\377\377\377\377" + "\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\312\377\377\377\377\377\377\377\356\377\377\377v\0\0\0\0\377\377\377\220" + "\377\377\377\374\377\377\377\363\377\377\377\33\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\324\377\377\377\376\377" + "\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377j\377\377\377\374\377\377\377\367\377\377\377\260\377\377\377" + "\342\377\377\377\377\377\377\377\376\377\377\377\224\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\3775\377\377\377\347\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\343\377\377\377\374\377\377" + "\377\360\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\25\377\377\377\337\377\377\377\377\377\377\377\361\377\377\377\200" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377b\377\377\377\232\377\377\377\232\377\377\377\232\377\377\377" + "\232\377\377\377\232\377\377\377\232\377\377\377}\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377_\377\377\377" + "\345\377\377\377\377\377\377\377\361\377\377\3778\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377V\377\377\377\376\377" + "\377\377\344\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\377\377\377K\377\377\377\374\377\377\377\245\377\377\377l\377\377\377" + "\377\377\377\377\344\377\377\377v\377\377\377;\377\377\377\375\377\377\377" + "l\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377;\377\377\377\373\377" + "\377\377\376\377\377\377\301\377\377\377\271\377\377\377\374\377\377\377" + "\376\377\377\377v\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\224\377\377\377\377\377\377\377\304\377\377\377e\377\377\377x\377\377" + "\377\300\377\377\377\376\377\377\377\367\377\377\377)\377\377\377\377\377" + "\377\377\377\377\377\377\13\377\377\377\361\377\377\377\367\377\377\377)" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377i\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\307\377\377\377\376\377\377\377i\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\343\377" + "\377\377|\377\377\377\202\377\377\377\211\377\377\377\202\377\377\377\13" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377" + "\355\377\377\377\373\377\377\377\300\377\377\377\276\377\377\377\276\377" + "\377\377\302\377\377\377G\0\0\0\0\377\377\377\377\377\377\377\377\377\377" + "\377U\377\377\377\374\377\377\377\352\377\377\377\13\0\0\0\0\377\377\377" + "\307\377\377\377\374\377\377\377\377\377\377\377\372\377\377\377)\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377" + "\377\240\377\377\377\200\377\377\377\210\377\377\377\202\377\377\377\371" + "\377\377\377\366\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\377\377\377" + "\377\252\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224" + "\377\377\377\377\377\377\377\377\377\377\377\311\377\377\377\343\377\377" + "\377\377\377\377\377\225\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\313\377\377\377\366\377\377\377]\377\377\377\375\377\377" + "\377\377\377\377\377\211\377\377\377\354\377\377\377\333\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377" + "\377V\377\377\377\252\377\377\377\377\377\377\377\244\377\377\377\354\377" + "\377\377\334\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377U\377\377" + "\377\374\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\307" + "\377\377\377\376\377\377\377\177\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\224\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\374\377\377\377\324\377\377\377)\0\0\0\0\377\377\377" + "\377\377\377\377\377\377\377\377U\377\377\377\374\377\377\377\327\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\307\377\377\377\376\377\377\377l\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377" + "\377\377\365\377\377\377\357\377\377\377\377\377\377\377\377\377\377\377" + "\224\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\210\377\377\377\335\377\377\377\377\377\377\377" + "\377\377\377\377\315\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\313\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377" + "\377\377\355\377\377\377\366\377\377\377)\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\377\377\377\215\377\377\377\377\377\377\377\254\377\377" + "\377c\377\377\377\377\377\377\377\273\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\377\377\377\13\377\377\377\361\377\377\377\340\377\377\377\277" + "\377\377\377\367\377\377\377\351\377\377\377\352\377\377\377\300\377\377" + "\377\375\377\377\377I\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\307\377\377\377\377\377\377\377\377\377\377\377\335\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377}\377\377\377\376\377\377\377\377\377\377\377\252\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\325\377\377\377\377\377\377\377\264\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\342\377\377\377\375\377\377\3778\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\364\377\377\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377I\377\377\377\340\377\377\377\240\0\0\0\0\0\0\0\0" + "\377\377\377}\377\377\377\341\377\377\377Z\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377Q\377\377\377\306\377\377\377" + "\366\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\332\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377" + "\376\377\377\377b\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\320\377\377\377\376" + "\377\377\377l\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\317\377" + "\377\377\376\377\377\377l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\356\377\377\377" + "\372\377\377\377)\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377" + "\333\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\351" + "\377\377\377\377\377\377\377\361\377\377\377\354\377\377\377\354\377\377" + "\377\354\377\377\377\376\377\377\377\376\377\377\377l\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377" + "\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\215\377\377\377\377\377\377\377\311\0\0\0\0\0\0\0\0" + "\377\377\377\335\377\377\377\376\377\377\377i\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377_\0\0\0\0" + "\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377)\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\13\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377" + "\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\377" + "\377\377\374\377\377\377\377\377\377\377\311\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377\361\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\377\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\377" + "\377\377\313\377\377\377\371\377\377\377%\377\377\377\224\377\377\377\377" + "\377\377\377\252\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224" + "\377\377\377\376\377\377\377_\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\355\377\377\377\366\377\377\377)\377\377\377\377\377\377\377\377\377\377" + "\377\13\377\377\377\356\377\377\377\372\377\377\377)\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\345\377\377\377\376\377\377\377i\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377b\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\321\377\377\377\376\377\377\377l\377\377\377\377" + "\377\377\377\377\377\377\377\13\377\377\377\356\377\377\377\372\377\377\377" + ")\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377" + "\377\377\377\377\205\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\333\377\377\377\377" + "\377\377\377\377\377\377\377\354\377\377\377\300\377\377\377\\\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\313\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377" + "\377i\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\355" + "\377\377\377\375\377\377\377M\377\377\377\13\377\377\377\355\377\377\377" + "\375\377\377\377=\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377U\377" + "\377\377\374\377\377\377\333\377\377\377\217\377\377\377\373\377\377\377" + "\361\377\377\377\312\377\377\377\241\377\377\377\377\377\377\377\215\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\253\377" + "\377\377\377\377\377\377\377\377\377\377\315\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\335\377\377\377" + "\376\377\377\377i\0\0\0\0\377\377\377\342\377\377\377\375\377\377\377Q\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\315\377\377\377\377\377\377\377\342\377\377\377\13\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377V\377\377\377\375\377" + "\377\377\377\377\377\377\377\377\377\377\252\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377c\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377l\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\360\377\377" + "\377\33\377\377\377\205\377\377\377\365\377\377\377\377\377\377\377\364\377" + "\377\377\\\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "|\377\377\377\206\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\307" + "\377\377\377\377\377\377\377\377\377\377\377\370\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\244\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\205" + "\377\377\377\376\377\377\377\336\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\377\377\377\302\377\377\377\377\377\377\377\242\377\377" + "\377\374\377\377\377\264\377\377\377\33\377\377\377\371\377\377\377\316\377" + "\377\377\377\377\377\377\377\377\377\377b\377\377\377\376\377\377\377\326" + "\377\377\377\25\377\377\377\362\377\377\377\377\377\377\377\304\377\377\377" + "\372\377\377\377\360\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\317" + "\377\377\377\376\377\377\377_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377\361\377\377\377\334\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\377\377\377`\377\377\377\374\377\377\377\343\377" + "\377\377\313\377\377\377\377\377\377\377\215\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\306\377" + "\377\377\371\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377s\377\377\377\377\377\377\377\304\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\320\377" + "\377\377\375\377\377\377=\0\0\0\0\0\0\0\0\377\377\377\25\377\377\377\362" + "\377\377\377\366\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377l\377\377\377\373\377\377\377\376\377\377\377\214\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\204\377\377\377\377\377\377\377\333\0\0" + "\0\0\377\377\377\377\377\377\377\377\377\377\377\224\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377m\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\33\377" + "\377\377\366\377\377\377\367\377\377\377)\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\317\377\377\377\376\377\377\377e\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\330\377\377\377\371\377\377\377)\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\365\377\377\377" + "\363\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\377\377\377\13\377\377\377\351\377\377\377\375\377\377\377=\0\0\0\0\0\0" + "\0\0\377\377\377}\377\377\377\374\377\377\377\366\377\377\377%\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377U\377\377\377p\377" + "\377\377M\377\377\377!\377\377\377\373\377\377\377\333\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\234\377" + "\377\377\374\377\377\377\377\377\377\377\320\377\377\377%\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\320\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\337\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\271\377\377\377\377\377\377\377\377\377\377" + "\377\267\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\251\377\377\377V\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377K\377\377" + "\377\374\377\377\377\245\377\377\377|\377\377\377\377\377\377\377y\0\0\0" + "\0\377\377\377\247\377\377\377\376\377\377\377l\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\240\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\373\377\377\377\377\377\377\377\304\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377" + "\377\377\377\377\244\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377" + "\376\377\377\377l\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\334" + "\377\377\377\377\377\377\377\205\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377" + "\377\377\376\377\377\377i\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377K\377\377\377\374\377\377\377\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377" + "\377\355\377\377\377\366\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\377\377\377\25\377\377\377\362\377" + "\377\377\375\377\377\377=\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377" + "\377\371\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\313\377\377\377\376\377\377\377b\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377\355\377\377\377\366\377\377\377%\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\377\377" + "\377\377\257\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\224\377\377\377\377\377\377\377\331\0\0\0\0\377\377\377j\377\377\377\376" + "\377\377\377\366\377\377\377)\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\313\377\377\377\371\377\377\377\33\377\377\377\351\377\377\377" + "\371\377\377\377!\377\377\377\360\377\377\377\333\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377i\377" + "\377\377\33\377\377\377\365\377\377\377\365\377\377\377\361\377\377\377\333" + "\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377K\377\377\377\374\377" + "\377\377\364\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\340\377\377" + "\377\376\377\377\377l\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\224\377\377\377\377\377\377\377\257\0\0\0\0\377\377\377\13\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377I\377\377\377" + "\373\377\377\377\363\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377\345\377\377\377\376\377\377\377i\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\377\377\377\377\243\0\0\0\0\377\377\377" + "\330\377\377\377\377\377\377\377\257\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "l\377\377\377\373\377\377\377\375\377\377\377M\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366" + "\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\313\377\377\377\376\377\377\377b\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\361\377\377\377\355\377\377\377\33\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\377\377\377!\377\377\377\372\377\377\377\337" + "\377\377\377\257\377\377\377\376\377\377\377l\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\324\377\377\377\370\377\377\377" + "\360\377\377\377\323\377\377\377\255\377\377\377\375\377\377\377\333\377" + "\377\377\371\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\377\377\377l\377\377\377\376\377\377\377\337\377\377\377\326\377\377\377" + "\377\377\377\377\234\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\356\377\377\377\372\377\377" + "\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\377\377\377\232\377\377\377\377\377\377\377\346\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\232\377\377\377\377\377\377\377\244\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\364\377\377\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\215\377\377\377\376\377\377\377\376\377\377\377\313\377" + "\377\377\224\377\377\377\202\377\377\377\374\377\377\377\332\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377" + "\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\324\377\377\377\376\377\377" + "\377i\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\314\377\377\377" + "\376\377\377\377b\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\377\377\377\13\377\377\377\355\377\377\377\374\377" + "\377\377)\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\0" + "\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\352\377" + "\377\377\377\377\377\377\321\377\377\377\321\377\377\377\316\377\377\377" + "\322\377\377\377\316\377\377\377\315\377\377\377G\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377" + "\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\13\377\377\377\361\377\377\377\377\377\377\377\362\377\377" + "\377\366\377\377\377\377\377\377\377\326\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0" + "\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\13\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\374\377\377\377" + "\377\377\377\377\370\377\377\377\366\377\377\377\376\377\377\377\214\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\361\377\377" + "\377\333\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377%\377\377\377" + "\223\377\377\377\377\377\377\377\252\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\355\377\377\377\366\377\377\377%\377\377\377\377\377" + "\377\377\377\377\377\377\13\377\377\377\355\377\377\377\374\377\377\377)" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\317\377\377\377\376\377\377\377l\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377" + "\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\324\377\377\377\376\377\377" + "\377i\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\355\377" + "\377\377\374\377\377\377)\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377" + "\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377" + "\377\377\313\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377u\377\377\377\302\377\377\377\357\377\377\377\377\377\377\377\377\377" + "\377\377\276\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\313\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377;\377\377\377\374\377\377" + "\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377" + "\377\240\377\377\377\377\377\377\377\266\377\377\377s\377\377\377\377\377" + "\377\377\315\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" + "\25\377\377\377\361\377\377\377\361\377\377\377\320\377\377\377\344\377\377" + "\377\303\377\377\377\356\377\377\377\316\377\377\377\375\377\377\377M\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\275\377" + "\377\377\377\377\377\377\377\377\377\377\314\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377v\377\377\377\377" + "\377\377\377\321\377\377\377M\377\377\377\375\377\377\377\327\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\307\377\377\377\377\377\377\377\346\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377b\377\377\377" + "\237\377\377\377\374\377\377\377\336\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377\263\377\377\377f\377\377\377\13\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\371\371\377.\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377B\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\25\377\377\377\304\377\377\377\322\377\377\377S\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\214\377\377\377\374\377" + "\377\377\33\377\377\377\222\377\377\377\374\377\377\377%\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\247\377\377\377\377" + "\377\377\377\302\377\377\377\\\377\377\3772\377\377\377\264\377\377\377\377" + "\377\377\377\326\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\315\377\377\377\377\377\377\377\257\377\377\377;\377\377\377\375\377" + "\377\377b\377\377\377\13\377\377\377\360\377\377\377\337\377\377\377\377" + "\377\377\377\377\377\377\377\204\377\377\377\377\377\377\377\322\0\0\0\0" + "\377\377\377\33\377\377\377\356\377\377\377\377\377\377\377\377\377\377\377" + "\217\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\247\377\377\377\377\377" + "\377\377\210\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377V\377\377\377\374\377\377" + "\377\326\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377\317\377\377\377\374\377\377\3778\377\377\377\13\377" + "\377\377\351\377\377\377\366\377\377\377\33\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\324\377\377\377\374" + "\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\3775\377\377\377\347\377\377\377\367\377\377" + "\377\232\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377_\377" + "\377\377\355\377\377\377\367\377\377\377}\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\261\377\377\377\377\377\377\377\257\0\0" + "\0\0\0\0\0\0\377\377\377\204\377\377\377\377\377\377\377\322\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\213\377\377\377\376\377\377\377U\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\375\377\377" + "\377\373\377\377\377s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\214\377\377\377}\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377j\377\377\377\376\377\377\377\333\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377~\377\377\377\202\377\377\377\202\377\377" + "\377\201\377\377\377\231\377\377\377\377\377\377\377\343\377\377\377z\377" + "\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\205\377\377" + "\377j\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\376\377\377\377\343" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\255\377\377" + "\377\377\377\377\377\264\0\0\0\0\0\0\0\0\377\377\377\25\377\377\377\356\377" + "\377\377\372\377\377\377)\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\327\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\356" + "\377\377\377\375\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\355\377" + "\377\377\367\377\377\377)\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\377\377\3775\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\377\377" + "\377\377\257\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377_\377\377\377\355\377\377\377\367\377\377\377}\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\3775\377\377\377\347\377\377\377\367\377\377\377\232\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\3772\377\377\377\327\377\377\377\377\377\377\377\375\377\377\377" + "z\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\3775\377\377\377\362\377\377\377\377\377\377\377" + "\346\377\377\377V\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377S\377\377\377\320\377\377\377" + "\305\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\377\377\377K\377\377\377\374\377\377\377\252\377\377\377K\377\377\377\374" + "\377\377\377\376\377\377\377\363\377\377\377\377\377\377\377\377\377\377" + "\377l\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\335\377\377\377" + "\376\377\377\377l\0\0\0\0\0\0\0\0\377\377\377;\377\377\377\373\377\377\377" + "\363\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224" + "\377\377\377\377\377\377\377\243\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\343\377\377\377\376\377\377\377l\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\232\377\377\377\377\377\377\377\356\377\377\377)\0\0\0\0\0\0" + "\0\0\377\377\3775\377\377\377\260\377\377\377\13\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377U\0\0\0\0\0\0" + "\0\0\377\377\377\276\377\377\377\377\377\377\377\346\377\377\377\13\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377\377\374\377\377\377" + "\326\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\312\377\377\377\377\377\377\377\321\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377%\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\376\377\377\377i\0\0" + "\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\355\377\377\377\366\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377j\377\377\377\330\377\377\377%\0" + "\0\0\0\0\0\0\0\377\377\377\312\377\377\377\377\377\377\377\206\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377" + "\377\377\244\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\377\377\377\377" + "\277\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377" + "\377\355\377\377\377\366\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377" + "\371\377\377\377%\377\377\377]\377\377\377f\377\377\377\13\377\377\377\361" + "\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\313\377\377\377\376\377\377\377i\0\0\0\0\377\377\377\232\377\377\377" + "\377\377\377\377\377\377\377\377\327\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\334\377\377\377\377\377\377\377\252\0\0\0\0\0\0" + "\0\0\377\377\377}\377\377\377\376\377\377\377\363\377\377\377%\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377" + "\252\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\332\377\377\377\377\377\377\377\251\0\0" + "\0\0\0\0\0\0\377\377\377\214\377\377\377\377\377\377\377\355\377\377\377" + "\13\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377" + "\377\377\377\252\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\375\377" + "\377\377Q\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\205" + "\377\377\377\304\377\377\377\13\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\362\377\377\377\375\377\377\377Q\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377" + "%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\312\377\377\377\377\377\377\377\264\0\0\0\0\0\0\0\0\377\377\377}\377" + "\377\377\376\377\377\377\332\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\330\377\377\377\376\377\377\377\372\377" + "\377\377\360\377\377\377\33\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\305\377\377\377\377\377\377\377\377\377\377\377\237" + "\377\377\377l\377\377\377\376\377\377\377\377\377\377\377\336\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\351\377\377" + "\377\376\377\377\377l\377\377\377K\377\377\377\374\377\377\377\372\377\377" + "\3772\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377;\377\377\377" + "\373\377\377\377\372\377\377\377=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224" + "\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377!\377\377" + "\377\372\377\377\377\347\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\364\377" + "\377\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377" + "\377\377\376\377\377\377b\0\0\0\0\0\0\0\0\377\377\377b\377\377\377\375\377" + "\377\377\332\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\224\377\377\377\377\377\377\377~\0\0\0\0\0\0\0\0\377\377\377U\377\377\377" + "\374\377\377\377\366\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\266\377\377\377\377\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\13\377\377\377e\0\0\0\0\377\377\377\377\377\377\377\377\377" + "\377\377\13\377\377\377\355\377\377\377\376\377\377\377v\0\0\0\0\0\0\0\0" + "\377\377\377s\377\377\377\376\377\377\377\332\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\317\377\377\377\377\377\377\377\251\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377j\377\377\377\375\377\377\377\326\377\377\377\302\377\377\377" + "\304\377\377\377\206\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0" + "\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377%\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377\355\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355" + "\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\361\377\377\377=\377" + "\377\377V\377\377\377\374\377\377\377\375\377\377\377M\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\361" + "\377\377\377\355\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\377\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\377\377\377" + "\313\377\377\377\371\377\377\377%\377\377\377\223\377\377\377\377\377\377" + "\377\252\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377" + "\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377" + "\377\377\366\377\377\377%\377\377\377\377\377\377\377\377\377\377\377\13" + "\377\377\377\355\377\377\377\376\377\377\377\215\0\0\0\0\0\0\0\0\377\377" + "\377V\377\377\377\374\377\377\377\367\377\377\377)\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377~\0\0\0\0\0\0" + "\0\0\377\377\377K\377\377\377\374\377\377\377\366\377\377\377)\377\377\377" + "\377\377\377\377\377\377\377\377\13\377\377\377\355\377\377\377\376\377\377" + "\377v\0\0\0\0\0\0\0\0\377\377\377s\377\377\377\375\377\377\377\332\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\313\377\377" + "\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\3772\377\377\377n\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377`\377\377\377\373\377\377\377\366\377\377\377)\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\317\377\377" + "\377\376\377\377\377v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\314\377\377\377\376\377\377\377b\0\0\0\0" + "\0\0\0\0\377\377\377\254\377\377\377\377\377\377\377\332\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\366\377" + "\377\377\361\377\377\377\331\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\320\377\377\377\377" + "\377\377\377\377\377\377\377\273\377\377\377\205\377\377\377\377\377\377" + "\377\376\377\377\377\355\377\377\377\33\377\377\377\377\377\377\377\377\0" + "\0\0\0\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\336\377\377\377" + "\330\377\377\377\377\377\377\377\256\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\342\377\377\377\375\377" + "\377\377\326\377\377\377\376\377\377\377~\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\275\377\377\377\377\377\377" + "\377\345\377\377\377\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\323\377\377\377" + "\360\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377\33\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\1\377\377\377\0\377" + "\377\377\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\206\377\377\377\377\377\377" + "\377\377\377\377\377\260\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377" + "\377\313\377\377\377\360\377\377\377\13\377\377\377\316\377\377\377\352\377" + "\377\377\13\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\205\377\377\377\365\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\356\377\377\3778\0\0\0\0\377\377\377\377\377" + "\377\377\377\377\377\377\224\377\377\377\377\377\377\377\311\0\0\0\0\377" + "\377\377K\377\377\377\374\377\377\377\316\377\377\377y\377\377\377\374\377" + "\377\377\273\377\377\377\377\377\377\377\377\377\377\377!\377\377\377\371" + "\377\377\377\377\377\377\377\315\377\377\377\242\377\377\377\360\377\377" + "\377\377\377\377\377\377\377\377\377\370\377\377\377\237\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377`\377\377\377\375\377\377\377\327\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\266\377\377\377\377\377\377\377\217\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\371\371\377.\377\377" + "\377M\0\0\0\0\0\0\0\0\371\371\377.\377\377\377M\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377|\377\377" + "\377s\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\232\377\377\377\377\377\377\377\377\377" + "\377\377\343\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\232\377\377\377\377\377\377\377\377\377\377\377\326\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377!\377\377" + "\377\371\377\377\377\352\377\377\377\13\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\3778\377\377\377\372\377\377" + "\377\377\377\377\377\275\377\377\377\253\377\377\377\374\377\377\377\376" + "\377\377\377s\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "r\377\377\377\314\377\377\377\304\377\377\377\332\377\377\377\377\377\377" + "\377\321\377\377\377\307\377\377\377\271\377\377\377\13\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\263\377\377\377\377\377\377\377\377\377" + "\377\377\350\377\377\377\307\377\377\377\322\377\377\377\321\377\377\377" + "\310\377\377\377\33\377\377\377\377\377\377\377\377\377\377\3778\377\377" + "\377\373\377\377\377\377\377\377\377\325\377\377\377\242\377\377\377\275" + "\377\377\377\371\377\377\377\377\377\377\377\272\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377" + "\377\377\374\377\377\377\333\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\377\377\3778\377\377\377\373\377\377\377\377\377\377\377\321\377\377" + "\377\250\377\377\377\307\377\377\377\375\377\377\377\377\377\377\377\234" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\33\377\377\377" + "\362\377\377\377\377\377\377\377\313\377\377\377\214\377\377\377\345\377" + "\377\377\377\377\377\377\322\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\376\377\377\377\326\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\302\377\377\377\377\377\377\377\346\377\377\377\226\377\377\377\201" + "\377\377\377\320\377\377\377\377\377\377\377\347\377\377\377\13\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\266\377\377\377\377\377\377\377" + "\307\377\377\377\250\377\377\377\335\377\377\377\377\377\377\377\356\377" + "\377\377\33\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\232\377\377\377\377\377\377\377\377\377\377\377\326\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\232\377\377\377\377\377\377\377\377\377\377\377\343\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\207\377\377\377\374\377\377\377\266" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377V\377\377\377\375\377\377\377\247\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\306\377\377\377\377\377\377\377\376\377" + "\377\377l\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377" + "\377\13\377\377\377\355\377\377\377\352\0\0\0\0\377\377\377s\377\377\377" + "\314\377\377\377\315\377\377\377v\377\377\377\245\377\377\377%\377\377\377" + "\377\377\377\377\377\377\377\377K\377\377\377\373\377\377\377\360\377\377" + "\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\335\377\377\377\376\377\377\377" + "~\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377" + "\377\377\377\335\377\377\377\275\377\377\377\310\377\377\377\366\377\377" + "\377\377\377\377\377\346\377\377\377\33\377\377\377\377\377\377\377\377\0" + "\0\0\0\377\377\377\13\377\377\377\342\377\377\377\377\377\377\377\370\377" + "\377\377\300\377\377\377\276\377\377\377\371\377\377\377\377\377\377\377" + "\227\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\312\377\377\377" + "\377\377\377\377\325\377\377\377\303\377\377\377\361\377\377\377\377\377" + "\377\377\375\377\377\377f\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377K\377\377\377\374\377\377\377\362\377\377\377\316\377\377\377" + "\316\377\377\377\316\377\377\377\322\377\377\377\273\377\377\377\13\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\356\377\377\377" + "\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\3778\377\377\377\371\377\377\377\377\377" + "\377\377\352\377\377\377\271\377\377\377\321\377\377\377\375\377\377\377" + "\372\377\377\377)\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313" + "\377\377\377\376\377\377\377l\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\355\377\377\377\366\377\377\377)\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377u\377\377\377\325\377\377\377\316\377\377\377\371\377\377\377" + "\373\377\377\377\320\377\377\377\322\377\377\377\207\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\302\377\377\377\377\377\377\377" + "\365\377\377\377\266\377\377\377\324\377\377\377\377\377\377\377\375\377" + "\377\377=\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224" + "\377\377\377\377\377\377\377\252\0\0\0\0\0\0\0\0\377\377\3778\377\377\377" + "\372\377\377\377\376\377\377\377i\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\13\377\377\377\356\377\377\377\376\377\377\377\320\377\377\377" + "\316\377\377\377\316\377\377\377\316\377\377\377\322\377\377\377V\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\371\377\377" + "\377%\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377\333\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377" + "\376\377\377\377l\0\0\0\0\377\377\377\13\377\377\377\352\377\377\377\377" + "\377\377\377\332\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377j\377\377\377\375\377\377\377\377\377\377\377\321\377\377\377\302\377" + "\377\377\375\377\377\377\377\377\377\377\234\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\252\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377j\377\377\377\375\377\377\377\377\377\377\377\320" + "\377\377\377\307\377\377\377\375\377\377\377\377\377\377\377\216\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377" + "\377\377\377\252\0\0\0\0\0\0\0\0\377\377\377\266\377\377\377\377\377\377" + "\377\336\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377" + "\351\377\377\377\377\377\377\377\370\377\377\377\306\377\377\377\264\377" + "\377\377\351\377\377\377\377\377\377\377\343\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\356\377\377" + "\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377b\377\377\377\375\377\377\377\377\377\377\377\325" + "\377\377\377\307\377\377\377\374\377\377\377\377\377\377\377\227\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\232" + "\377\377\377\377\377\377\377\377\377\377\377\304\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\377" + "\377\377\377\375\377\377\377_\377\377\377\33\377\377\377\365\377\377\377" + "\377\377\377\377\322\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\253\377\377\377\377\377\377\377\322\0\0\0\0\0\0\0\0\377\377\377" + "\275\377\377\377\377\377\377\377\315\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\356\377\377\377\366" + "\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\334\377\377\377\377\377\377\377\372\377\377\377\310\377" + "\377\377\316\377\377\377\316\377\377\377\321\377\377\377\310\377\377\377" + "%\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224" + "\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\317\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\364\377" + "\377\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\307\377" + "\377\377\377\377\377\377\336\377\377\377\233\377\377\377\305\377\377\377" + "\376\377\377\377\377\377\377\377\332\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\224\377\377\377\377\377\377\377\376\377\377\377" + "\307\377\377\377\255\377\377\377\370\377\377\377\377\377\377\377\272\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377!\377\377\377\366" + "\377\377\377\377\377\377\377\346\377\377\377\271\377\377\377\270\377\377" + "\377\365\377\377\377\375\377\377\377M\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\255\377\377\377\377\377\377\377\373\377\377\377\257\377" + "\377\377\302\377\377\377\376\377\377\377\377\377\377\377\332\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377`\377\377\377\374\377\377" + "\377\377\377\377\377\332\377\377\377\233\377\377\377\260\377\377\377\367" + "\377\377\377\316\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377U\377\377\377\374\377\377\377\333\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\215\377" + "\377\377\377\377\377\377\342\377\377\377\242\377\377\377\237\377\377\377" + "\246\377\377\377\247\377\377\377X\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377\356\377\377\377\366\377\377\377)\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\356\377\377\377\366\377\377\377)\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377" + "\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377K\377\377\377\375\377\377\377\245\0\0\0\0\0\0\0\0\377" + "\377\377\233\377\377\377\377\377\377\377\356\377\377\377%\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\355\377" + "\377\377\376\377\377\377\302\377\377\377\262\377\377\377\322\377\377\377" + "\33\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\361\377\377" + "\377\333\0\0\0\0\377\377\377\320\377\377\377\371\377\377\377%\377\377\377" + "\223\377\377\377\377\377\377\377\252\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\356\377\377\377\366\377\377\377)\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377\214\377\377\377\377\377\377\377\376\377" + "\377\377\274\377\377\377\255\377\377\377\370\377\377\377\377\377\377\377" + "\265\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377" + "\377\377\377\377\377\377\376\377\377\377\307\377\377\377\255\377\377\377" + "\370\377\377\377\377\377\377\377\272\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\255\377\377\377\377\377\377\377\373\377\377\377" + "\257\377\377\377\302\377\377\377\376\377\377\377\377\377\377\377\332\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\313\377" + "\377\377\376\377\377\377l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\341\377\377\377\377\377\377" + "\377\335\377\377\377\233\377\377\377\213\377\377\377\306\377\377\377\377" + "\377\377\377\352\377\377\377\13\377\377\377\377\377\377\377\377\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\241\377\377\377\377\377\377\377\365\377\377\377" + "\245\377\377\377\255\377\377\377\325\377\377\3772\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\275\377\377\377\377\377\377\377\361\377\377" + "\377\252\377\377\377\331\377\377\377\377\377\377\377\377\377\377\377\332" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\266\377\377\377\377\377\377\377\377\377\377\377\336\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\240\377\377" + "\377\377\377\377\377\377\377\377\377\207\377\377\377K\377\377\377\374\377" + "\377\377\377\377\377\377\315\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377U\377\377\377\374\377\377\377\372\377\377\3778\377\377\377" + "!\377\377\377\366\377\377\377\376\377\377\377\177\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\377\377" + "\377\377\377\377\377\377\352\377\377\377\13\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\267\377\377\377\377\377\377\377\377" + "\377\377\377\311\377\377\377\302\377\377\377\304\377\377\377\304\377\377" + "\377\271\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\13\377\377\377\361\377\377\377\327\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377b\377\377\377\374\377\377\377\377\377\377\377\225\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\316\377\377\377\333\0\0\0\0" + "\377\377\377\316\377\377\377\334\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377w\377\377\377\343\377" + "\377\377\375\377\377\377\201\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\377\377\377\13\377\377\377\244\377\377\377\13\0\0\0\0\0\0\0" + "\0\377\377\377\302\377\377\377\377\377\377\377\377\377\377\377\364\377\377" + "\377Z\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377~\377\377\377\370" + "\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377\275\377\377" + "\377\266\377\377\377\376\377\377\377\323\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\335\377\377\377\376\377\377\377~\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377" + "\377\373\377\377\377\363\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377I\377\377" + "\377\357\377\377\377\377\377\377\377\364\377\377\377)\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\376\377\377\377\377\377\377" + "\377\244\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377\232\377\377\377\377\377\377\377\251\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\377\377\377l\377\377\377\367\377\377\377\377\377\377\377\377\377\377\377" + "\376\377\377\377\223\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\232\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\372\377\377\377" + ")\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\355\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\360\377\377\377\33\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377j\377\377\377\350\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\376\377\377\377\302\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377;\377\377\377\372\377\377\377\316\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377u\377\377\377\351\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\373\377\377\377\254\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377S\377\377\377" + "\354\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\325\377" + "\377\377\33\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\214\377\377\377\377\377\377\377\244\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377" + "\377\315\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\342\377\377\3772\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\177\377\377\377\365\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\342\377\377\3772\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377}\377\377\377\376\377" + "\377\377\377\377\377\377\244\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377I\377\377\377\357\377\377" + "\377\377\377\377\377\364\377\377\377)\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377M\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\232\377\377\377\377\377\377\377\375" + "\377\377\377\\\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0" + "\0\0\0\377\377\377\255\377\377\377\377\377\377\377\234\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" + "\224\377\377\377\377\377\377\377\276\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\240\377\377\377\377\377\377\377\266\377\377\377\377\377\377\377" + "\377\0\0\0\0\377\377\377\215\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\370\377\377\377\312\377\377\377%\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\316\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\376\377" + "\377\377\255\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\305\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\373\377" + "\377\377\330\377\377\377V\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\372\377\377\377" + ")\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\351" + "\377\377\377\366\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377I\377\377\377\345" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\370\377\377" + "\377\241\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\313" + "\377\377\377\375\377\377\377\\\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377" + "\355\377\377\377\355\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0" + "\0\377\377\377\224\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\336\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\13\377\377\377\316\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\373\377\377\377\213\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377" + "\377\377\377\377\377\377\252\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\247\377" + "\377\377\377\377\377\377\326\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\13\377\377\377\351\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377_\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\313\377\377\377\366\377\377\377" + "%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\344\377\377\377\333\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\307\377\377\377\375\377\377" + "\377Q\0\0\0\0\0\0\0\0\377\377\377\204\377\377\377\377\377\377\377\327\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\206\377" + "\377\377\371\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377" + "\240\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "\215\377\377\377\377\377\377\377\244\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377" + "\206\377\377\377\370\377\377\377\377\377\377\377\377\377\377\377\376\377" + "\377\377\241\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\214\377\377\377\377\377\377\377\252\0\0\0\0\0\0\0\0\377\377\377" + "\33\377\377\377\356\377\377\377\376\377\377\377v\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377\25\377\377\377\316\377\377\377\376\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\335\377\377\377)\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377" + "\377\377\351\377\377\377\364\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\233\377\377\377\375" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\276\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377;\377\377\377\372\377\377\377\376\377\377\377|\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377u\377\377\377\375\377" + "\377\377\355\377\377\377\33\0\0\0\0\377\377\377\320\377\377\377\377\377\377" + "\377\244\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\33\377\377\377" + "\366\377\377\377\372\377\377\377=\0\0\0\0\0\0\0\0\377\377\377\33\377\377" + "\377\362\377\377\377\376\377\377\377_\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\351\377\377\377\364\377\377" + "\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" + "\13\377\377\377\356\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\376\377\377\377l\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\224\377" + "\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377}\377" + "\377\377\377\377\377\377\277\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\364\377\377" + "\377\254\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\3775\377\377\377" + "\347\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\303\377" + "\377\377\362\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\377\377\377\224\377\377\377\377\377\377\377\345\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\307\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377I\377\377\377\345\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\373\377\377\377\260" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\310" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\326\377\377" + "\377\367\377\377\377\315\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377l\377\377\377\356\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\370\377\377\377\231\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377;\377\377\377\373\377\377" + "\377\322\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377I\377\377\377\373\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\216\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377" + "\376\377\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\351\377\377" + "\377\355\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\13\377\377\377\351\377\377\377\355\377\377\377" + "\33\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\13\377\377\377\355\377\377\377\366\377\377\377)\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377K\377\377" + "\377\374\377\377\377\252\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\307\377\377" + "\377\377\377\377\377\304\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\223\377\377\377\375\377\377\377\377\377\377" + "\377\377\377\377\377\372\377\377\377M\377\377\377\377\377\377\377\377\377" + "\377\377\13\377\377\377\361\377\377\377\333\0\0\0\0\377\377\377\275\377\377" + "\377\371\377\377\377%\377\377\377\223\377\377\377\377\377\377\377\252\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377\224\377\377\377\376\377" + "\377\377i\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\351\377\377\377\355" + "\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377" + "\240\377\377\377\374\377\377\377\377\377\377\377\377\377\377\377\376\377" + "\377\377\275\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\224\377\377\377\377\377\377\377\352\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\307\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\377\377\377\310\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\337\377\377\377\377\377\377\377\332\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377\307\377" + "\377\377\375\377\377\377_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377c\377\377\377\330\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\354\377" + "\377\377Z\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\13\377\377\377\333\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\375\377\377\377_\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\33\377\377\377\350\377\377\377\377\377\377\377\377\377\377\377" + "\376\377\377\377\255\377\377\377\362\377\377\377\323\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377;\377\377\377\372" + "\377\377\377\376\377\377\377\206\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377b\377\377\377\374\377\377\377\372\377" + "\377\377I\377\377\377\13\377\377\377\355\377\377\377\377\377\377\377\243" + "\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\345\377" + "\377\377\376\377\377\377\214\0\0\0\0\0\0\0\0\377\377\377j\377\377\377\374" + "\377\377\377\363\377\377\377%\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\335\377\377\377\377\377\377\377\236\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\13\377\377" + "\377\355\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\372\377\377\377)\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\360" + "\377\377\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371" + "\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377" + "%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377E\377\377\377S\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377Q\377\377\377n\377\377\377\13\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377b\377\377" + "\377e\377\377\377\33\0\0\0\0\0\0\0\0\371\371\377.\377\377\3775\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377V\377\377\377\374\377\377\377\364\377\377" + "\3772\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377\343\377\377\377\377\377\377\377\215\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\371\377\377\377\334\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377E\377\377\377X\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0" + "\0\0\0\377\377\377\341\377\377\377\375\377\377\377=\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377e\377\377\377l\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377E\377\377\377X\377\377\377S\377\377\377\13\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377@\377\377\377e\377\377\377c\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377S\377\377\377K\377\377\377I\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377)\377\377\377e\377\377\377n\377\377\377" + "8\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377_\377\377\377p\377\377\377I\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377E\377\377\377X\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377\371" + "\377\377\377\334\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377`\377\377\377I\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377\33\377\377\377\362\377\377\377" + "\376\377\377\377\255\377\377\3775\377\377\377V\377\377\377\322\377\377\377" + "\255\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377)\377\377\377X\377\377\377V\377\377\377\13\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377E\377\377\377" + "m\377\377\377c\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\371\371\377.\377\377\377m\377\377\377c\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377b\377\377\377c\377\377\377\13" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\320" + "\377\377\377\377\377\377\377\333\377\377\377\33\377\377\377E\377\377\377" + "\13\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377e\377\377\377e\377\377" + "\3778\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "e\377\377\377n\377\377\3775\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\224\377\377\377\376\377\377\377U\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\25\377\377\377\361\377\377\377\366\377\377" + "\377%\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\13\377\377\377\364\377\377\377\254\0\0\0\0\0\0\0\0\0\0\0" + "\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\377\377\377\216\377\377\377\233\377\377\377\232\377\377\377\232" + "\377\377\377\232\377\377\377\232\377\377\377\232\377\377\377\237\377\377" + "\377=\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377U\377\377\377n\377\377\3775\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377E\377\377\377n\377\377\3778\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377@\377\377\377m\377\377\377c\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377@\377\377\377p\377" + "\377\377I\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377Q\377\377\377p\377\377\377X\0" + "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\377\377\377\324\377\377\377\376\377\377\377" + "|\377\377\377S\377\377\377V\377\377\377K\377\377\377\263\377\377\377\377" + "\377\377\377\252\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\25\377\377\377\362\377\377\377\360\377\377\377" + "\33\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377)\377" + "\377\377p\377\377\377c\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377b\377\377\377f\377\377\377" + "\13\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\224\377\377\377\376\377\377\377U\377\377\377@\377\377\377e\377\377\377" + "8\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377@\377\377\377p\377\377\377I\377\377\377;\377\377\377" + "\374\377\377\377\333\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377" + "\377e\377\377\377e\377\377\377I\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377O\377\377" + "\377X\377\377\377U\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377j\377\377\377n\377\377\377\33\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\33\377\377\377" + "\362\377\377\377\367\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\13\377\377\377\361\377\377\377\356\377\377\377%\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377\377\377%\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\335\377\377\377\372\377\377\377)\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\267\377\377\377" + "\345\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\237\377\377\377\377\377\377\377\361\377\377" + "\3772\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377\377" + "\331\377\377\377\377\377\377\377\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\3772\377\377\377\337\377\377\377\377\377\377\377\236\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377b\377" + "\377\377\376\377\377\377\330\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\3772\377\377\377\337\377\377\377\377\377\377\377\236\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\377\377\3775\377\377\377\344\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\270\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\3775\377\377\377\362\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\210\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\232\377\377\377\377\377\377" + "\377\370\377\377\377\364\377\377\377\372\377\377\377\243\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\266\377\377\377\377\377\377\377\225\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\205\377\377\377\371\377\377\377\364" + "\377\377\377\364\377\377\377\377\377\377\377\260\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\377\377\377\13\377\377\377\370\377\377\377\377\377\377\377\377\377\377\377" + "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\377m\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\377\377\377\13\377\377\377\345\377\377\377" + "\375\377\377\377f\0\0\0\0\0\0\0\0\377\377\3772\377\377\377\326\377\377\377" + "\377\377\377\377\245\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\234\377\377\377\205\377\377\377I\377\377\377\272\377\377\377\377" + "\377\377\377\326\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377\224\377\377\377\376\377\377\377i\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377K\377\377\377\374\377\377\377\333\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\377\377\377i\377\377\377\203\377\377\377" + "\337\377\377\377\377\377\377\377\260\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\275\377\377\377\377\377\377\377" + "\377\377\377\377\373\377\377\377\243\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\371\377" + "\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377\177\377\377\377\372\377\377\377\376\377\377\377\377\377\377" + "\377\333\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\253\377\377" + "\377\340\377\377\377%\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\377\377\377\310\377\377\377\307\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377" + "\377\377\13\377\377\377\351\377\377\377\377\377\377\377\276\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377" + "\377u\377\377\377\325\377\377\377w\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\377\377" + "\377\13\377\377\377\351\377\377\377\377\377\377\377\276\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377`\377\377\377\213\377\377\377\203\377\377" + "\3778\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\13\377\377\377\251\377\377\377\322\377\377\377\316" + "\377\377\377m\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377`\377\377\377\263\377\377\377\263\377\377\377\263\377\377\377\266" + "\377\377\377u\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377G\377\377\377\317\377\377\377w\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377i\377\377\377\266" + "\377\377\377\263\377\377\377\263\377\377\377\262\377\377\377_\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\377\377\377`\377\377\377y\377\377\377y\377\377\377y" + "\377\377\377y\377\377\377y\377\377\377y\377\377\377x\377\377\377\33\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\377\377\377\237\377\377\377\377\377\377\377\377" + "\377\377\377\370\377\377\377\370\377\377\377\377\377\377\377\377\377\377" + "\377\325\377\377\377\33\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377" + ";\377\377\377\374\377\377\377\377\377\377\377\377\377\377\377\377\377\377" + "\377\376\377\377\377z\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377" + "\377\377\233\377\377\377\377\377\377\377l\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377V\377\377\377\376\377\377\377\327\0\0" + "\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\377\377\377\13\377\377\377\361\377\377\377\377" + "\377\377\377\377\377\377\377\325\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377v\377\377\377\246\377" + "\377\377\266\377\377\377u\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377\377\377\372\377\377\377)\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\377\377" + "i\377\377\377\266\377\377\377\255\377\377\377\214\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377s\377\377\377|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377s\377\377\377" + "|\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\0\0\0\0\377\377\377_\377\377\377\266\377\377\377\321\377\377\377\316\377" + "\377\377\271\377\377\377q\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\377\377\377`\377\377\377\245\377\377\377\267\377\377\377" + "\247\377\377\377=\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377" + "\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0" + "\377\377\377E\377\377\377\212\377\377\377%\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\13\377\377\377\211\377\377\377=\0" + "\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377" + "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377" + "\377\377\377\377\377\377\377\0\0\0\0\377\377\377v\377\377\377\232\377\377" + "\377q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377" + "\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377" + "\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\313\377" + "\377\377\363\377\377\377\33\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377" + "\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0" + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377" + "\377\377\377\377", +}; +#endif diff --git a/mlx/src/font/mlx_font.c b/mlx/src/font/mlx_font.c new file mode 100644 index 0000000..8c92b60 --- /dev/null +++ b/mlx/src/font/mlx_font.c @@ -0,0 +1,80 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_font.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/02/22 12:01:37 by W2Wizard #+# #+# */ +/* Updated: 2022/06/27 19:53:36 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "font.h" +#include "MLX42/MLX42_Int.h" + +//= Private =// + +/** + * Does the actual copying of pixels form the atlas buffer to the + * image buffer. + * + * Skips any non-printable characters. + * + * @param image The image to draw on. + * @param texture The font_atlas. + * @param texoffset The character texture X offset. + * @param imgoffset The image X offset. + */ +static void mlx_draw_char(mlx_image_t* image, int32_t texoffset, int32_t imgoffset) +{ + if (texoffset < 0) + return; + + uint8_t* pixelx; + uint8_t* pixeli; + for (uint32_t y = 0; y < FONT_HEIGHT; y++) + { + pixelx = &font_atlas.pixels[(y * font_atlas.width + texoffset) * BPP]; + pixeli = image->pixels + ((y * image->width + imgoffset) * BPP); + memcpy(pixeli, pixelx, FONT_WIDTH * BPP); + } +} + +//= Public =// + +const mlx_texture_t* mlx_get_font(void) +{ + return ((const mlx_texture_t*)&font_atlas); +} + +int32_t mlx_get_texoffset(char c) +{ + const bool _isprint = isprint(c); + + // NOTE: Cheesy branchless operation :D + // +2 To skip line separator in texture + return (-1 * !_isprint + ((FONT_WIDTH + 2) * (c - 32)) * _isprint); +} + +mlx_image_t* mlx_put_string(mlx_t* mlx, const char* str, int32_t x, int32_t y) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(str); + + mlx_image_t* strimage; + const size_t len = strlen(str); + if (len > MLX_MAX_STRING) + return ((void*)mlx_error(MLX_STRTOBIG)); + if (!(strimage = mlx_new_image(mlx, len * FONT_WIDTH, FONT_HEIGHT))) + return (NULL); + + // Draw the text itself + int32_t imgoffset = 0; + for (size_t i = 0; i < len; i++, imgoffset += FONT_WIDTH) + mlx_draw_char(strimage, mlx_get_texoffset(str[i]), imgoffset); + + if (mlx_image_to_window(mlx, strimage, x, y) == -1) + return (mlx_delete_image(mlx, strimage), NULL); + return (strimage); +} diff --git a/mlx/src/mlx_cursor.c b/mlx/src/mlx_cursor.c new file mode 100644 index 0000000..428c5a3 --- /dev/null +++ b/mlx/src/mlx_cursor.c @@ -0,0 +1,50 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_cursor.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/01/18 20:10:54 by W2Wizard #+# #+# */ +/* Updated: 2022/11/22 08:58:23 by jvan-hal ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Public =// + +void* mlx_create_std_cursor(cursor_t type) +{ + MLX_ASSERT(type >= MLX_CURSOR_ARROW && type < MLX_CURSOR_VRESIZE, "Invalid standard cursor type"); + + GLFWcursor* cursor; + if ((cursor = glfwCreateStandardCursor(type))) + return (cursor); + return ((void *)mlx_error(MLX_MEMFAIL)); +} + +void* mlx_create_cursor(mlx_texture_t* texture) +{ + MLX_NONNULL(texture); + + GLFWcursor* cursor; + if ((cursor = glfwCreateCursor((GLFWimage*)texture, 0, 0))) + return (cursor); + return ((void *)mlx_error(MLX_MEMFAIL)); +} + +void mlx_set_cursor(mlx_t* mlx, void* cursor) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(cursor); + + glfwSetCursor(mlx->window, cursor); +} + +void mlx_set_cursor_mode(mlx_t* mlx, mouse_mode_t mode) +{ + MLX_NONNULL(mlx); + + glfwSetInputMode(mlx->window, GLFW_CURSOR, mode); +} diff --git a/mlx/src/mlx_exit.c b/mlx/src/mlx_exit.c new file mode 100644 index 0000000..34c43dc --- /dev/null +++ b/mlx/src/mlx_exit.c @@ -0,0 +1,47 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_exit.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 02:43:22 by W2Wizard #+# #+# */ +/* Updated: 2022/11/26 14:23:55 by jvan-hal ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +static void mlx_free_image(void* content) +{ + mlx_image_t* img = content; + + mlx_freen(4, img->context, img->pixels, img->instances, img); +} + +//= Public =// + +void mlx_close_window(mlx_t* mlx) +{ + MLX_NONNULL(mlx); + glfwSetWindowShouldClose(mlx->window, true); +} + +/** + * All of glfw & glads resources are cleaned up by the terminate function. + * Now it's time to cleanup our own mess. + */ +void mlx_terminate(mlx_t* mlx) +{ + MLX_NONNULL(mlx); + + mlx_ctx_t *const mlxctx = mlx->context; + + glfwTerminate(); + mlx_lstclear((mlx_list_t**)(&mlxctx->hooks), &free); + mlx_lstclear((mlx_list_t**)(&mlxctx->render_queue), &free); + mlx_lstclear((mlx_list_t**)(&mlxctx->images), &mlx_free_image); + mlx_freen(2, mlxctx, mlx); +} diff --git a/mlx/src/mlx_images.c b/mlx/src/mlx_images.c new file mode 100644 index 0000000..79cc726 --- /dev/null +++ b/mlx/src/mlx_images.c @@ -0,0 +1,241 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_images.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/01/21 15:34:45 by W2Wizard #+# #+# */ +/* Updated: 2022/07/28 18:26:59 by sbos ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +void mlx_flush_batch(mlx_ctx_t* mlx) +{ + if (mlx->batch_size <= 0) + return; + + glBindBuffer(GL_ARRAY_BUFFER, mlx->vbo); + glBufferData(GL_ARRAY_BUFFER, mlx->batch_size * sizeof(vertex_t), mlx->batch_vertices, GL_STATIC_DRAW); + glDrawArrays(GL_TRIANGLES, 0, mlx->batch_size); + + mlx->batch_size = 0; + memset(mlx->bound_textures, 0, sizeof(mlx->bound_textures)); +} + +static int8_t mlx_bind_texture(mlx_ctx_t* mlx, mlx_image_t* img) +{ + const GLint handle = (GLint)((mlx_image_ctx_t*)img->context)->texture; + + // Attempt to bind the texture, or obtain the index if it is already bound. + for (int8_t i = 0; i < 16; i++) + { + if (mlx->bound_textures[i] == handle) + return (i); + + if (mlx->bound_textures[i] == 0) + { + mlx->bound_textures[i] = handle; + + glActiveTexture(GL_TEXTURE0 + i); + glBindTexture(GL_TEXTURE_2D, handle); + return (i); + } + } + + // If no free slot was found, flush the batch and assign the texture to the first available slot + mlx_flush_batch(mlx); + + mlx->bound_textures[0] = handle; + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, handle); + return (0); +} + +/** + * Internal function to draw a single instance of an image + * to the screen. + */ +void mlx_draw_instance(mlx_ctx_t* mlx, mlx_image_t* img, mlx_instance_t* instance) +{ + float w = (float) img->width; + float h = (float) img->height; + float x = (float) instance->x; + float y = (float) instance->y; + float z = (float) instance->z; + int8_t tex = mlx_bind_texture(mlx, img); + + vertex_t vertices[6] = { + (vertex_t){x, y, z, 0.f, 0.f, tex}, + (vertex_t){x + w, y + h, z, 1.f, 1.f, tex}, + (vertex_t){x + w, y, z, 1.f, 0.f, tex}, + (vertex_t){x, y, z, 0.f, 0.f, tex}, + (vertex_t){x, y + h, z, 0.f, 1.f, tex}, + (vertex_t){x + w, y + h, z, 1.f, 1.f, tex}, + }; + memmove(mlx->batch_vertices + mlx->batch_size, vertices, sizeof(vertices)); + mlx->batch_size += 6; + + if (mlx->batch_size >= MLX_BATCH_SIZE) + mlx_flush_batch(mlx); +} + +mlx_instance_t* mlx_grow_instances(mlx_image_t* img, bool* did_realloc) +{ + mlx_image_ctx_t* const ctx = img->context; + if (img->count >= ctx->instances_capacity) + { + if (ctx->instances_capacity == 0) + ctx->instances_capacity = img->count; + else + ctx->instances_capacity *= 2; + *did_realloc = true; + return realloc(img->instances, ctx->instances_capacity * sizeof(mlx_instance_t)); + } + *did_realloc = false; + return img->instances; +} + +//= Public =// + +void mlx_set_instance_depth(mlx_instance_t* instance, int32_t zdepth) +{ + MLX_NONNULL(instance); + + if (instance->z == zdepth) + return; + instance->z = zdepth; + + /** + * NOTE: The reason why we don't sort directly is that + * the user might call this function multiple times in a row and we don't + * want to sort for every change. Pre-loop wise that is. + */ + sort_queue = true; +} + +int32_t mlx_image_to_window(mlx_t* mlx, mlx_image_t* img, int32_t x, int32_t y) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(img); + + // Allocate buffers... + img->count++; + bool did_realloc; + mlx_instance_t* instances = mlx_grow_instances(img, &did_realloc); + draw_queue_t* queue = calloc(1, sizeof(draw_queue_t)); + if (!instances || !queue) + { + if (did_realloc) + free(instances); + return (free(queue), mlx_error(MLX_MEMFAIL), -1); + } + + // Set data... + queue->image = img; + int32_t index = queue->instanceid = img->count - 1; + img->instances = instances; + img->instances[index].x = x; + img->instances[index].y = y; + + // NOTE: We keep updating the Z for the convenience of the user. + // Always update Z depth to prevent overlapping images by default. + img->instances[index].z = ((mlx_ctx_t*)mlx->context)->zdepth++; + img->instances[index].enabled = true; + + // Add draw call... + sort_queue = true; + mlx_list_t* templst; + if ((templst = mlx_lstnew(queue))) + { + mlx_lstadd_front(&((mlx_ctx_t*)mlx->context)->render_queue, templst); + return (index); + } + return (mlx_freen(2, instances, queue), mlx_error(MLX_MEMFAIL), -1); +} + +mlx_image_t* mlx_new_image(mlx_t* mlx, uint32_t width, uint32_t height) +{ + MLX_NONNULL(mlx); + + if (!width || !height || width > INT16_MAX || height > INT16_MAX) + return ((void*)mlx_error(MLX_INVDIM)); + + const mlx_ctx_t* mlxctx = mlx->context; + mlx_image_t* newimg = calloc(1, sizeof(mlx_image_t)); + mlx_image_ctx_t* newctx = calloc(1, sizeof(mlx_image_ctx_t)); + if (!newimg || !newctx) + { + mlx_freen(2, newimg, newctx); + return ((void *)mlx_error(MLX_MEMFAIL)); + } + newimg->enabled = true; + newimg->context = newctx; + (*(uint32_t*)&newimg->width) = width; + (*(uint32_t*)&newimg->height) = height; + if (!(newimg->pixels = calloc(width * height, sizeof(int32_t)))) + { + mlx_freen(2, newimg, newctx); + return ((void *)mlx_error(MLX_MEMFAIL)); + } + + mlx_list_t* newentry; + if (!(newentry = mlx_lstnew(newimg))) + { + mlx_freen(3, newimg->pixels, newimg->context, newimg); + return ((void *)mlx_error(MLX_MEMFAIL)); + } + + // Generate OpenGL texture + glGenTextures(1, &newctx->texture); + glBindTexture(GL_TEXTURE_2D, newctx->texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + mlx_lstadd_front((mlx_list_t**)(&mlxctx->images), newentry); + return (newimg); +} + +void mlx_delete_image(mlx_t* mlx, mlx_image_t* image) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(image); + + mlx_ctx_t* mlxctx = mlx->context; + + // Delete all instances in the render queue + mlx_list_t* quelst; + while ((quelst = mlx_lstremove(&mlxctx->render_queue, image, &mlx_equal_inst))) + mlx_freen(2, quelst->content, quelst); + + mlx_list_t* imglst; + if ((imglst = mlx_lstremove(&mlxctx->images, image, &mlx_equal_image))) + { + glDeleteTextures(1, &((mlx_image_ctx_t*)image->context)->texture); + mlx_freen(5, image->pixels, image->instances, image->context, imglst, image); + } +} + +bool mlx_resize_image(mlx_image_t* img, uint32_t nwidth, uint32_t nheight) +{ + MLX_NONNULL(img); + + if (!nwidth || !nheight || nwidth > INT16_MAX || nheight > INT16_MAX) + return (mlx_error(MLX_INVDIM)); + if (nwidth != img->width || nheight != img->height) + { + uint8_t* tempbuff = realloc(img->pixels, (nwidth * nheight) * BPP); + if (!tempbuff) + return (mlx_error(MLX_MEMFAIL)); + img->pixels = tempbuff; + (*(uint32_t*)&img->width) = nwidth; + (*(uint32_t*)&img->height) = nheight; + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, nwidth, nheight, 0, GL_RGBA, GL_UNSIGNED_BYTE, img->pixels); + } + return (true); +} diff --git a/mlx/src/mlx_init.c b/mlx/src/mlx_init.c new file mode 100644 index 0000000..de73356 --- /dev/null +++ b/mlx/src/mlx_init.c @@ -0,0 +1,195 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_init.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 00:24:30 by W2Wizard #+# #+# */ +/* Updated: 2022/08/10 13:00:53 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +static void framebuffer_callback(GLFWwindow *window, int width, int height) +{ + (void)window; + glViewport(0, 0, width, height); +} + +static bool mlx_create_buffers(mlx_t* mlx) +{ + mlx_ctx_t* mlxctx = mlx->context; + + mlxctx->zdepth = 0; + glActiveTexture(GL_TEXTURE0); + glGenVertexArrays(1, &(mlxctx->vao)); + glGenBuffers(1, &(mlxctx->vbo)); + glBindVertexArray(mlxctx->vao); + glBindBuffer(GL_ARRAY_BUFFER, mlxctx->vbo); + + // Vertex XYZ coordinates + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(vertex_t), NULL); + glEnableVertexAttribArray(0); + + // UV Coordinates + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(vertex_t), (void *)(sizeof(float) * 3)); + glEnableVertexAttribArray(1); + + // Texture index + glVertexAttribIPointer(2, 1, GL_BYTE, sizeof(vertex_t), (void *)(sizeof(float) * 5)); + glEnableVertexAttribArray(2); + + glEnable(GL_BLEND); + glEnable(GL_DEPTH_TEST); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture0"), 0); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture1"), 1); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture2"), 2); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture3"), 3); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture4"), 4); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture5"), 5); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture6"), 6); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture7"), 7); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture8"), 8); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture9"), 9); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture10"), 10); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture11"), 11); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture12"), 12); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture13"), 13); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture14"), 14); + glUniform1i(glGetUniformLocation(mlxctx->shaderprogram, "Texture15"), 15); + + return (true); +} + +/** + * Compiles the given shader source code, of a given shader type. + * Returns shader object via param. + * + * @param code The shader source code. + * @param Type GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, GL_GEOMETRY_SHADER, ... + * @return Non-zero on success, else 0. + */ +static uint32_t mlx_compile_shader(const char* code, int32_t type) +{ + GLuint shader; + int32_t success; + char infolog[512] = {0}; + + if (!code || (shader = glCreateShader(type)) == 0) + return (0); + + GLint len = strlen(code); + glShaderSource(shader, 1, &code, &len); + glCompileShader(shader); + glGetShaderiv(shader, GL_COMPILE_STATUS, &success); + if (!success) + { + glGetShaderInfoLog(shader, sizeof(infolog), NULL, infolog); + fprintf(stderr, "%s", infolog); + return (0); + } + return (shader); +} + +static bool mlx_init_render(mlx_t* mlx) +{ + uint32_t vshader = 0; + uint32_t fshader = 0; + char infolog[512] = {0}; + mlx_ctx_t* mlxctx = mlx->context; + + glfwMakeContextCurrent(mlx->window); + glfwSetFramebufferSizeCallback(mlx->window, framebuffer_callback); + glfwSetWindowUserPointer(mlx->window, mlx); + glfwSwapInterval(MLX_SWAP_INTERVAL); + + // Load all OpenGL function pointers + if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) + return (mlx_error(MLX_GLADFAIL)); + + if (!(vshader = mlx_compile_shader(vert_shader, GL_VERTEX_SHADER))) + return (mlx_error(MLX_VERTFAIL)); + if (!(fshader = mlx_compile_shader(frag_shader, GL_FRAGMENT_SHADER))) + return (mlx_error(MLX_FRAGFAIL)); + if (!(mlxctx->shaderprogram = glCreateProgram())) + return (mlx_error(MLX_SHDRFAIL)); + glAttachShader(mlxctx->shaderprogram, vshader); + glAttachShader(mlxctx->shaderprogram, fshader); + glLinkProgram(mlxctx->shaderprogram); + + int32_t success; + glGetProgramiv(mlxctx->shaderprogram, GL_LINK_STATUS, &success); + if (!success) + { + glGetProgramInfoLog(mlxctx->shaderprogram, sizeof(infolog), NULL, infolog); + fprintf(stderr, "%s", infolog); + return (mlx_error(MLX_SHDRFAIL)); + } + glDeleteShader(vshader); + glDeleteShader(fshader); + glUseProgram(mlxctx->shaderprogram); + + for (size_t i = 0; i < 16; i++) + mlxctx->bound_textures[i] = 0; + + return (true); +} + +//= Public =// + +// NOTE: https://www.glfw.org/docs/3.3/group__window.html + +// Default settings +int32_t mlx_settings[MLX_SETTINGS_MAX] = {false, false, false, true, false}; +mlx_errno_t mlx_errno = MLX_SUCCESS; +bool sort_queue = false; + +mlx_t* mlx_init(int32_t width, int32_t height, const char* title, bool resize) +{ + MLX_ASSERT(width > 0, "Window width must be positive"); + MLX_ASSERT(height > 0, "Window height must be positive"); + MLX_ASSERT(title, "Window title can't be null"); + + bool init; + mlx_t* mlx; + if (!(init = glfwInit())) + return ((void*)mlx_error(MLX_GLFWFAIL)); + if (!(mlx = calloc(1, sizeof(mlx_t)))) + return ((void*)mlx_error(MLX_MEMFAIL)); + if (!(mlx->context = calloc(1, sizeof(mlx_ctx_t)))) + return (free(mlx), (void*)mlx_error(MLX_MEMFAIL)); + + mlx_ctx_t* const mlxctx = mlx->context; + mlx->width = width; + mlx->height = height; + mlxctx->initialWidth = width; + mlxctx->initialHeight = height; + + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_MAXIMIZED, mlx_settings[MLX_MAXIMIZED]); + glfwWindowHint(GLFW_DECORATED, mlx_settings[MLX_DECORATED]); + glfwWindowHint(GLFW_VISIBLE, !mlx_settings[MLX_HEADLESS]); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); +#ifdef __APPLE__ + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); +#endif + glfwWindowHint(GLFW_RESIZABLE, resize); + if (!(mlx->window = glfwCreateWindow(width, height, title, mlx_settings[MLX_FULLSCREEN] ? glfwGetPrimaryMonitor() : NULL, NULL))) + return (mlx_terminate(mlx), (void*)mlx_error(MLX_WINFAIL)); + if (!mlx_init_render(mlx) || !mlx_create_buffers(mlx)) + return (mlx_terminate(mlx), NULL); + return (mlx); +} + +void mlx_set_setting(mlx_settings_t setting, int32_t value) +{ + MLX_ASSERT(setting >= 0 && setting < MLX_SETTINGS_MAX, "Invalid settings value"); + mlx_settings[setting] = value; +} diff --git a/mlx/src/mlx_keys.c b/mlx/src/mlx_keys.c new file mode 100644 index 0000000..62a7509 --- /dev/null +++ b/mlx/src/mlx_keys.c @@ -0,0 +1,49 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_keys.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/01/01 21:06:45 by W2Wizard #+# #+# */ +/* Updated: 2022/06/27 14:28:01 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +static void mlx_key_callback(GLFWwindow* window, int32_t key, int32_t scancode, int32_t action, int32_t mods) +{ + const mlx_t* mlx = glfwGetWindowUserPointer(window); + const mlx_key_t key_hook = ((mlx_ctx_t*)mlx->context)->key_hook; + const mlx_key_data_t callback_data = { + key, + action, + scancode, + mods, + }; + + key_hook.func(callback_data, key_hook.param); +} + +//= Public =// + +void mlx_key_hook(mlx_t* mlx, mlx_keyfunc func, void* param) +{ + MLX_ASSERT(mlx, "Parameter can't be null"); + MLX_ASSERT(func, "Parameter can't be null"); + + mlx_ctx_t* mlxctx = mlx->context; + mlxctx->key_hook.func = func; + mlxctx->key_hook.param = param; + glfwSetKeyCallback(mlx->window, mlx_key_callback); +} + +bool mlx_is_key_down(mlx_t* mlx, keys_t key) +{ + MLX_ASSERT(mlx, "Parameter can't be null"); + + return (glfwGetKey(mlx->window, key) == GLFW_PRESS); +} diff --git a/mlx/src/mlx_loop.c b/mlx/src/mlx_loop.c new file mode 100644 index 0000000..cf0d531 --- /dev/null +++ b/mlx/src/mlx_loop.c @@ -0,0 +1,115 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_loop.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 01:24:36 by W2Wizard #+# #+# */ +/* Updated: 2022/06/27 18:07:04 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +static void mlx_exec_loop_hooks(mlx_t* mlx) +{ + const mlx_ctx_t* mlxctx = mlx->context; + + mlx_list_t* lstcpy = mlxctx->hooks; + while (lstcpy && !glfwWindowShouldClose(mlx->window)) + { + mlx_hook_t* hook = ((mlx_hook_t*)lstcpy->content); + hook->func(hook->param); + lstcpy = lstcpy->next; + } +} + +static void mlx_render_images(mlx_t* mlx) +{ + mlx_ctx_t* mlxctx = mlx->context; + mlx_list_t* imglst = mlxctx->images; + + if (sort_queue) + { + sort_queue = false; + mlx_sort_renderqueue(&mlxctx->render_queue); + } + + // Upload image textures to GPU + while (imglst) + { + mlx_image_t* image; + if (!(image = imglst->content)) + return ((void)mlx_error(MLX_INVIMG)); + glBindTexture(GL_TEXTURE_2D, ((mlx_image_ctx_t*)image->context)->texture); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image->width, image->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, image->pixels); + imglst = imglst->next; + } + + // Execute draw calls + mlx_list_t* render_queue = mlxctx->render_queue; + while (render_queue) + { + draw_queue_t* drawcall = render_queue->content; + mlx_instance_t* instance = &drawcall->image->instances[drawcall->instanceid]; + + if (drawcall && drawcall->image->enabled && instance->enabled) + mlx_draw_instance(mlx->context, drawcall->image, instance); + render_queue = render_queue->next; + } +} + +//= Public =// + +bool mlx_loop_hook(mlx_t* mlx, void (*f)(void*), void* param) +{ + MLX_ASSERT(mlx, "Parameter can't be null"); + MLX_ASSERT(f, "Parameter can't be null"); + + mlx_hook_t* hook; + if (!(hook = malloc(sizeof(mlx_hook_t)))) + return (mlx_error(MLX_MEMFAIL)); + + mlx_list_t* lst; + if (!(lst = mlx_lstnew(hook))) + { + free(hook); + return (mlx_error(MLX_MEMFAIL)); + } + hook->func = f; + hook->param = param; + const mlx_ctx_t *mlxctx = mlx->context; + mlx_lstadd_back((mlx_list_t**)(&mlxctx->hooks), lst); + return (true); +} + +// glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); +void mlx_loop(mlx_t* mlx) +{ + MLX_ASSERT(mlx, "Parameter can't be null"); + + double start, oldstart = 0; + while (!glfwWindowShouldClose(mlx->window)) + { + start = glfwGetTime(); + mlx->delta_time = start - oldstart; + oldstart = start; + + glClearColor(0.2f, 0.2f, 0.2f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glfwGetWindowSize(mlx->window, &(mlx->width), &(mlx->height)); + + if ((mlx->width > 1 || mlx->height > 1)) + mlx_update_matrix(mlx, mlx->width, mlx->height); + + mlx_exec_loop_hooks(mlx); + mlx_render_images(mlx); + mlx_flush_batch(mlx->context); + + glfwSwapBuffers(mlx->window); + glfwPollEvents(); + } +} diff --git a/mlx/src/mlx_monitor.c b/mlx/src/mlx_monitor.c new file mode 100644 index 0000000..873b41f --- /dev/null +++ b/mlx/src/mlx_monitor.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_monitor.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/01/19 17:18:59 by W2Wizard #+# #+# */ +/* Updated: 2022/06/27 20:02:38 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Public =// + +void mlx_get_monitor_size(int32_t index, int32_t* width, int32_t* height) +{ + MLX_ASSERT(index >= 0, "Index out of bounds"); + MLX_NONNULL(width); + MLX_NONNULL(height); + + *width = 0; + *height = 0; + + int32_t monitor_count; + GLFWmonitor** monitors = glfwGetMonitors(&monitor_count); + if (index > monitor_count || !monitors) + return; + + const GLFWvidmode* vidmode; + if ((vidmode = glfwGetVideoMode(monitors[index]))) + { + *width = vidmode->width; + *height = vidmode->height; + } +} diff --git a/mlx/src/mlx_mouse.c b/mlx/src/mlx_mouse.c new file mode 100644 index 0000000..ab59922 --- /dev/null +++ b/mlx/src/mlx_mouse.c @@ -0,0 +1,100 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_mouse.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/01/01 23:20:13 by W2Wizard #+# #+# */ +/* Updated: 2022/06/29 15:34:25 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +static void mlx_scroll_cb(GLFWwindow* window, double xoffset, double yoffset) +{ + const mlx_t* mlx = glfwGetWindowUserPointer(window); + const mlx_scroll_t scroll_hook = ((mlx_ctx_t*)mlx->context)->scroll_hook; + + scroll_hook.func(xoffset, yoffset, scroll_hook.param); +} + +static void mlx_mouse_cb(GLFWwindow* window, int32_t button, int32_t action, int32_t mods) +{ + const mlx_t* mlx = glfwGetWindowUserPointer(window); + const mlx_mouse_t mouse_hook = ((mlx_ctx_t*)mlx->context)->mouse_hook; + + mouse_hook.func(button, action, mods, mouse_hook.param); +} + +static void mlx_cursor_cb(GLFWwindow* window, double xpos, double ypos) +{ + const mlx_t* mlx = glfwGetWindowUserPointer(window); + const mlx_cursor_t cursor_hook = ((mlx_ctx_t*)mlx->context)->cursor_hook; + + cursor_hook.func(xpos, ypos, cursor_hook.param); +} + +//= Public =// + +void mlx_scroll_hook(mlx_t* mlx, mlx_scrollfunc func, void* param) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(func); + + mlx_ctx_t* const mlxctx = mlx->context; + mlxctx->scroll_hook.func = func; + mlxctx->scroll_hook.param = param; + glfwSetScrollCallback(mlx->window, mlx_scroll_cb); +} + +void mlx_mouse_hook(mlx_t* mlx, mlx_mousefunc func, void* param) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(func); + + mlx_ctx_t* const mlxctx = mlx->context; + mlxctx->mouse_hook.func = func; + mlxctx->mouse_hook.param = param; + glfwSetMouseButtonCallback(mlx->window, mlx_mouse_cb); +} + +void mlx_cursor_hook(mlx_t* mlx, mlx_cursorfunc func, void* param) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(func); + + mlx_ctx_t* const mlxctx = mlx->context; + mlxctx->cursor_hook.func = func; + mlxctx->cursor_hook.param = param; + glfwSetCursorPosCallback(mlx->window, mlx_cursor_cb); +} + +bool mlx_is_mouse_down(mlx_t* mlx, mouse_key_t key) +{ + MLX_NONNULL(mlx); + + return (glfwGetMouseButton(mlx->window, key) == GLFW_PRESS); +} + +void mlx_set_mouse_pos(mlx_t* mlx, int32_t x, int32_t y) +{ + MLX_NONNULL(mlx); + + glfwSetCursorPos(mlx->window, (double)x, (double)y); +} + +void mlx_get_mouse_pos(mlx_t* mlx, int32_t* x, int32_t* y) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(x); + MLX_NONNULL(y); + + double xd, yd; + glfwGetCursorPos(mlx->window, &xd, &yd); + *x = (int32_t)xd; + *y = (int32_t)yd; +} diff --git a/mlx/src/mlx_put_pixel.c b/mlx/src/mlx_put_pixel.c new file mode 100644 index 0000000..f322d69 --- /dev/null +++ b/mlx/src/mlx_put_pixel.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_put_pixel.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 03:30:13 by W2Wizard #+# #+# */ +/* Updated: 2022/06/29 16:00:30 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +// BUG: Linux may experience a red hue instead due to endiannes +void mlx_draw_pixel(uint8_t* pixel, uint32_t color) +{ + *(pixel++) = (uint8_t)(color >> 24); + *(pixel++) = (uint8_t)(color >> 16); + *(pixel++) = (uint8_t)(color >> 8); + *(pixel++) = (uint8_t)(color & 0xFF); +} + +//= Public =// + +void mlx_put_pixel(mlx_image_t* image, uint32_t x, uint32_t y, uint32_t color) +{ + MLX_NONNULL(image); + MLX_ASSERT(x < image->width, "Pixel is out of bounds"); + MLX_ASSERT(y < image->height, "Pixel is out of bounds"); + + uint8_t* pixelstart = &image->pixels[(y * image->width + x) * BPP]; + mlx_draw_pixel(pixelstart, color); +} diff --git a/mlx/src/mlx_window.c b/mlx/src/mlx_window.c new file mode 100644 index 0000000..f37c88b --- /dev/null +++ b/mlx/src/mlx_window.c @@ -0,0 +1,131 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_window.c :+: :+: */ +/* +:+ */ +/* By: W2wizard +#+ */ +/* +#+ */ +/* Created: 2022/02/08 01:14:59 by W2wizard #+# #+# */ +/* Updated: 2022/11/22 09:06:54 by jvan-hal ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +/** + * Recalculate the view projection matrix, used by images for screen pos + * Reference: https://bit.ly/3KuHOu1 (Matrix View Projection) + */ +void mlx_update_matrix(const mlx_t* mlx, int32_t width, int32_t height) +{ + const mlx_ctx_t* mlxctx = mlx->context; + const float depth = mlxctx->zdepth; + + /** + * In case the setting to stretch the image is set, we maintain the width and height but not + * the depth. + */ + width = mlx_settings[MLX_STRETCH_IMAGE] ? mlxctx->initialWidth : mlx->width; + height = mlx_settings[MLX_STRETCH_IMAGE] ? mlxctx->initialHeight : mlx->height; + + const float matrix[16] = { + 2.f / width, 0, 0, 0, + 0, 2.f / -(height), 0, 0, + 0, 0, -2.f / (depth - -depth), 0, + -1, -(height / -height), + -((depth + -depth) / (depth - -depth)), 1 + }; + + glUniformMatrix4fv(glGetUniformLocation(mlxctx->shaderprogram, "ProjMatrix"), 1, GL_FALSE, matrix); +} + +static void mlx_resize_callback(GLFWwindow* window, int32_t width, int32_t height) +{ + const mlx_t* mlx = glfwGetWindowUserPointer(window); + const mlx_ctx_t* mlxctx = mlx->context; + + if (mlxctx->resize_hook.func) + mlxctx->resize_hook.func(width, height, mlxctx->resize_hook.param); +} + +static void mlx_close_callback(GLFWwindow* window) +{ + const mlx_t* mlx = glfwGetWindowUserPointer(window); + const mlx_close_t close_hook = ((mlx_ctx_t*)mlx->context)->close_hook; + + close_hook.func(close_hook.param); +} + +//= Public =// + +void mlx_close_hook(mlx_t* mlx, mlx_closefunc func, void* param) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(func); + + mlx_ctx_t* mlxctx = mlx->context; + mlxctx->close_hook.func = func; + mlxctx->close_hook.param = param; + glfwSetWindowCloseCallback(mlx->window, mlx_close_callback); +} + +void mlx_resize_hook(mlx_t* mlx, mlx_resizefunc func, void* param) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(func); + + mlx_ctx_t* mlxctx = mlx->context; + mlxctx->resize_hook.func = func; + mlxctx->resize_hook.param = param; + glfwSetWindowSizeCallback(mlx->window, mlx_resize_callback); +} + +void mlx_set_icon(mlx_t* mlx, mlx_texture_t* image) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(image); + + glfwSetWindowIcon(mlx->window, 1, (const GLFWimage*)image); +} + +void mlx_set_window_pos(mlx_t* mlx, int32_t xpos, int32_t ypos) +{ + MLX_NONNULL(mlx); + + glfwSetWindowPos(mlx->window, xpos, ypos); +} + +void mlx_get_window_pos(mlx_t* mlx, int32_t* xpos, int32_t* ypos) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(xpos); + MLX_NONNULL(ypos); + + glfwGetWindowPos(mlx->window, xpos, ypos); +} + +void mlx_set_window_size(mlx_t* mlx, int32_t new_width, int32_t new_height) +{ + MLX_NONNULL(mlx); + + mlx->width = new_width; + mlx->height = new_height; + glfwSetWindowSize(mlx->window, new_width, new_height); +} + +void mlx_set_window_limit(mlx_t* mlx, int32_t min_w, int32_t min_h, int32_t max_w, int32_t max_h) +{ + MLX_NONNULL(mlx); + + glfwSetWindowSizeLimits(mlx->window, min_w, min_h, max_w, max_h); +} + +void mlx_set_window_title(mlx_t* mlx, const char* title) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(title); + + glfwSetWindowTitle(mlx->window, title); +} diff --git a/mlx/src/textures/mlx_png.c b/mlx/src/textures/mlx_png.c new file mode 100644 index 0000000..dbbba65 --- /dev/null +++ b/mlx/src/textures/mlx_png.c @@ -0,0 +1,35 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_png.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/02/16 23:11:29 by W2Wizard #+# #+# */ +/* Updated: 2022/06/27 19:55:06 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Public =// + +mlx_texture_t* mlx_load_png(const char* path) +{ + MLX_NONNULL(path); + + mlx_texture_t* image; + if (!(image = malloc(sizeof(mlx_texture_t)))) + return ((void*)mlx_error(MLX_MEMFAIL)); + + uint32_t error; + image->bytes_per_pixel = BPP; + if ((error = lodepng_decode32_file(&image->pixels, &image->width, &image->height, path))) + { + free(image); + // Explicitly print error on purpose + fprintf(stderr, "MLX42: LodePNG: %s\n", lodepng_error_text(error)); + return ((void*)mlx_error(MLX_INVPNG)); + } + return (image); +} diff --git a/mlx/src/textures/mlx_texture.c b/mlx/src/textures/mlx_texture.c new file mode 100644 index 0000000..2a3c1bf --- /dev/null +++ b/mlx/src/textures/mlx_texture.c @@ -0,0 +1,84 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_texture.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/02/17 01:02:24 by W2Wizard #+# #+# */ +/* Updated: 2022/06/29 15:34:25 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Public =// + +mlx_image_t* mlx_texture_area_to_image(mlx_t* mlx, mlx_texture_t* texture, uint32_t xy[2], uint32_t wh[2]) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(texture); + MLX_NONNULL(xy); + MLX_NONNULL(wh); + + if (wh[0] > texture->width || wh[1] > texture->height) + return ((void*)mlx_error(MLX_INVDIM)); + if (xy[0] > texture->width || xy[1] > texture->height) + return ((void*)mlx_error(MLX_INVPOS)); + + mlx_image_t* image; + if (!(image = mlx_new_image(mlx, wh[0], wh[1]))) + return ((void*)mlx_error(MLX_MEMFAIL)); + + uint8_t* pixelx; + uint8_t* pixeli; + for (uint32_t y = 0; y < wh[1]; y++) + { + pixelx = &texture->pixels[((xy[1] + y) * texture->width + xy[0]) * BPP]; + pixeli = &image->pixels[y * wh[0] * BPP]; + memmove(pixeli, pixelx, wh[0] * BPP); + } + return (image); +} + +mlx_image_t* mlx_texture_to_image(mlx_t* mlx, mlx_texture_t* texture) +{ + MLX_NONNULL(mlx); + MLX_NONNULL(texture); + + mlx_image_t* img; + const int32_t xy[] = {0, 0}; + const uint32_t wh[] = {texture->width, texture->height}; + + if (!(img = mlx_texture_area_to_image(mlx, texture, (uint32_t*)xy, (uint32_t*)wh))) + return (NULL); + return (img); +} + +bool mlx_draw_texture(mlx_image_t* image, mlx_texture_t* texture, uint32_t x, uint32_t y) +{ + MLX_NONNULL(image); + MLX_NONNULL(texture); + + if (texture->width > image->width || texture->height > image->height) + return (mlx_error(MLX_INVDIM)); + if (x > image->width || y > image->height) + return (mlx_error(MLX_INVPOS)); + + uint8_t* pixelx; + uint8_t* pixeli; + for (uint32_t i = 0; i < texture->height; i++) + { + pixelx = &texture->pixels[(i * texture->width) * texture->bytes_per_pixel]; + pixeli = &image->pixels[((i + y) * image->width + x) * texture->bytes_per_pixel]; + memmove(pixeli, pixelx, texture->width * texture->bytes_per_pixel); + } + return (true); +} + +void mlx_delete_texture(mlx_texture_t* texture) +{ + MLX_NONNULL(texture); + + mlx_freen(2, texture->pixels, texture); +} diff --git a/mlx/src/textures/mlx_xpm42.c b/mlx/src/textures/mlx_xpm42.c new file mode 100644 index 0000000..2d8cb13 --- /dev/null +++ b/mlx/src/textures/mlx_xpm42.c @@ -0,0 +1,208 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_xpm42.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 03:42:29 by W2Wizard #+# #+# */ +/* Updated: 2022/06/27 19:58:33 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +/** + * XPM is an obscure image format which can't seem to make up its mind + * wether it wants to be written in C code or not. + * + * https://en.wikipedia.org/wiki/X_PixMap + * + * This might anger some but instead I decided to write my own + * image format, very similar to XPM2, which seems to be the better + * option between the 3 versions. The only difference is in the + * header which carries the file type, width, height, color count + * and finally color type aka 'c' for RGBA8 or 'm' for monochrome + * output. + * + * The changes, in my opinion, very much simplify the XPM format + * into something literally anybody can use without much guessing + * as to what does what. + * + * Additionally with the C style format, the idea is that you simply include + * it directly into the compilation of the program (since its just c). + * + * As convenient as this is, I just find it hideous especially the XPM3 variant. + * By sticking to the XPM style format, conversion should be very easy and + * straight forward to this format however. + */ + +//= Private =// + +/** + * Parses HEX color channel e.g: "0F" + * + * @param channel The 2 character string to parse. + * @return Int value of the channel. + */ +static uint8_t mlx_parse_hex_channel(char* channel) +{ + char temp_chan[] = {channel[0], channel[1], '\0'}; + return (strtol(temp_chan, NULL, 16)); +} + +/** + * Parses the XPM color value entry e.g: ".X #00FF00FF" + * into the color table while also verifying the format. + * + * @param xpm The XPM. + * @param line The line to parse. + * @param ctable The color hash table. + * @param s Size of the hash table + * @return True or false depending on if it sucessfully parsed the line. + */ +static bool mlx_insert_xpm_entry(xpm_t* xpm, char* line, uint32_t* ctable, size_t s) +{ + // NOTE: uintptr because windows likes to complain... + // Verify the length of the Pixel string by checking backwards for the first + // occurence of a space and then check the distance by comparing with cpp. + if (((uintptr_t)strrchr(line, ' ') - (uintptr_t)line) != (uint64_t)xpm->cpp) + return (false); + if (!isspace(line[xpm->cpp]) || line[xpm->cpp + 1] != '#' || !isalnum(line[xpm->cpp + 2])) + return (false); + + uint32_t color = 0; + size_t start_offset = xpm->cpp + 2; + color |= mlx_parse_hex_channel(line + start_offset) << 24; + color |= mlx_parse_hex_channel(line + start_offset + 2) << 16; + color |= mlx_parse_hex_channel(line + start_offset + 4) << 8; + color |= mlx_parse_hex_channel(line + start_offset + 6); + + int32_t index = mlx_fnv_hash(line, xpm->cpp) % s; + ctable[index] = xpm->mode == 'm' ? mlx_rgba_to_mono(color) : color; + return (true); +} + +/** + * Retrieves the pixel data line by line and then processes each pixel + * by hashing the characters and looking it up from the color table. + * + * @param xpm The XPM. + * @param file The filepath to the XPM42 file. + * @param ctable The color hash table. + * @param s Size of the hash table. + * @return True or false depending on if it sucessfully parsed the line. + */ +static bool mlx_read_data(xpm_t* xpm, FILE* file, uint32_t* ctable, size_t s) +{ + size_t line_len; + char* line = NULL; + + for (int64_t y_xpm = 0; y_xpm < xpm->texture.height; y_xpm++) + { + if (!mlx_getline(&line, &line_len, file)) + return (free(line), false); + if (line[line_len - 1] == '\n') + line_len--; + if (line_len != xpm->texture.width * xpm->cpp) + return (free(line), false); + + // NOTE: Copy pixel by pixel as we need to retrieve the hash table. + for (int64_t x_xpm = 0, x_line = 0; x_xpm < xpm->texture.width; x_xpm++, x_line += xpm->cpp) + { + uint8_t* pixelstart = &xpm->texture.pixels[(y_xpm * xpm->texture.width + x_xpm) * BPP]; + mlx_draw_pixel(pixelstart, ctable[mlx_fnv_hash(&line[x_line], xpm->cpp) % s]); + } + } + free(line); + return (true); +} + +/** + * For quick lookups we basically create a stack allocated lookup + * table with every ascii character in it. This should help avoid a O(n) + * case and give us a O(1) for very fast look ups. + * + * Downside is we still need to iterate of each pixel to solve its color. + * So I hope this makes it atleast a bit faster. + * + * TODO: This buffer might be way to big! Do actual collision checks, + * for now just straight up raw dog this. + */ +static bool mlx_read_table(xpm_t* xpm, FILE* file) +{ + char* line = NULL; + size_t line_len; + uint32_t ctable[UINT16_MAX] = {0}; + + for (int32_t i = 0; i < xpm->color_count; i++) + { + if (!mlx_getline(&line, &line_len, file)) + return (free(line), false); + if (!mlx_insert_xpm_entry(xpm, line, ctable, (sizeof(ctable) / BPP))) + return (free(line), false); + } + free(line); + return (mlx_read_data(xpm, file, ctable, (sizeof(ctable) / BPP))); +} + +/** + * Reads the XPM42 file header which usually consists of a + * file type declaration of "!XPM42" followed by the next line + * containing image information such as width, height, unique color + * count and finally the color mode. Which is either c for Color or + * m for Monochrome. + */ +static bool mlx_read_xpm_header(xpm_t* xpm, FILE *file) +{ + int32_t flagc; + char buffer[64] = {0}; + + // Check file type dec... + if (!fgets(buffer, sizeof(buffer), file)) + return (false); + if (strncmp(buffer, "!XPM42\n", sizeof(buffer)) != 0) + return (false); + + // Get header info ... + if (!fgets(buffer, sizeof(buffer), file)) + return (false); + flagc = sscanf(buffer, "%i %i %i %i %c\n", &xpm->texture.width, &xpm->texture.height, &xpm->color_count, &xpm->cpp, &xpm->mode); + if (flagc < 4 || xpm->texture.width > INT16_MAX || xpm->texture.height > INT16_MAX || \ + !(xpm->mode == 'c' || xpm->mode == 'm') || xpm->cpp > 10) + return (false); + xpm->texture.bytes_per_pixel = BPP; + xpm->texture.pixels = calloc(xpm->texture.width * xpm->texture.height, sizeof(int32_t)); + return (xpm->texture.pixels != NULL ? mlx_read_table(xpm, file) : false); +} + +//= Public =// + +xpm_t* mlx_load_xpm42(const char* path) +{ + FILE* file; + xpm_t* xpm = NULL; + + MLX_NONNULL(path); + if (!strstr(path, ".xpm42")) + return ((void*)mlx_error(MLX_INVEXT)); + if (!(file = fopen(path, "r"))) + return ((void*)mlx_error(MLX_INVFILE)); + if (!(xpm = calloc(1, sizeof(xpm_t)))) + return ((void*)mlx_error(MLX_MEMFAIL)); + if (!mlx_read_xpm_header(xpm, file)) + { + mlx_freen(2, xpm->texture.pixels, xpm); + mlx_error(MLX_INVXPM); + xpm = NULL; + } + fclose(file); + return (xpm); +} + +void mlx_delete_xpm42(xpm_t* xpm) +{ + MLX_NONNULL(xpm); + free(xpm->texture.pixels); + free(xpm); +} diff --git a/mlx/src/utils/mlx_error.c b/mlx/src/utils/mlx_error.c new file mode 100644 index 0000000..f2f200e --- /dev/null +++ b/mlx/src/utils/mlx_error.c @@ -0,0 +1,64 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_error.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 02:51:54 by W2Wizard #+# #+# */ +/* Updated: 2022/11/22 08:50:15 by jvan-hal ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +// English description of the error codes. +static const char* mlx_errors[MLX_ERRMAX] = { + "No Errors", + "File has invalid extension", + "Failed to open the file", + "PNG file is invalid or corrupted", + "XPM42 file is invalid or corrupted", + "The specified X or Y positions are out of bounds", + "The specified Width or Height dimensions are out of bounds", + "The provided image is invalid, might indicate mismanagement of images", + "Failed to compile the vertex shader.", + "Failed to compile the fragment shader.", + "Failed to compile the shaders.", + "Failed to allocate memory", + "Failed to initialize GLAD", + "Failed to initialize GLFW", + "Failed to create window", + "String is too big to be drawn", +}; + +/** + * Functions to set the error number, simply for convenience. + * + * @param val The error value. + * @return Always false + */ +bool mlx_error(mlx_errno_t val) +{ + mlx_errno = val; +#ifndef NDEBUG +# ifdef _WIN32 + fprintf(stderr, "MLX42: %s", mlx_strerror(mlx_errno)); +# else + warnx("MLX42: %s", mlx_strerror(mlx_errno)); +# endif +#endif + return (false); +} + +//= Public =// + +const char* mlx_strerror(mlx_errno_t val) +{ + MLX_ASSERT(val >= 0, "Index must be positive"); + MLX_ASSERT(val < MLX_ERRMAX, "Index out of bounds"); + + return (mlx_errors[val]); +} diff --git a/mlx/src/utils/mlx_list.c b/mlx/src/utils/mlx_list.c new file mode 100644 index 0000000..0cb2ede --- /dev/null +++ b/mlx/src/utils/mlx_list.c @@ -0,0 +1,196 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_list.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2021/12/28 01:53:51 by W2Wizard #+# #+# */ +/* Updated: 2022/11/26 14:26:23 by jvan-hal ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +int32_t mlx_lstsize(mlx_list_t* lst) +{ + int32_t i = 0; + + while (lst) + { + i++; + lst = lst->next; + } + return (i); +} + +static void mlx_lstdelone(mlx_list_t* lst, void (*del)(void *)) +{ + if (del != NULL) + del(lst->content); + free(lst); +} + +void mlx_lstclear(mlx_list_t** lst, void (*del)(void*)) +{ + mlx_list_t* next_lst; + + while (*lst != NULL) + { + next_lst = (*lst)->next; + mlx_lstdelone(*lst, del); + *lst = next_lst; + } +} + +mlx_list_t* mlx_lstnew(void* content) +{ + mlx_list_t* out = NULL; + + if ((out = malloc(sizeof(mlx_list_t)))) + { + out->content = content; + out->next = NULL; + out->prev = NULL; + } + return (out); +} + +mlx_list_t* mlx_lstlast(mlx_list_t* lst) +{ + if (!lst) + return (NULL); + while (lst->next) + lst = lst->next; + return (lst); +} + +void mlx_lstadd_back(mlx_list_t** lst, mlx_list_t* new) +{ + if (!lst || !new) + return; + if (!*lst) + *lst = new; + else + { + mlx_list_t* temp = mlx_lstlast(*lst); + new->prev = temp; + temp->next = new; + } +} + +void mlx_lstadd_front(mlx_list_t** lst, mlx_list_t* new) +{ + if (!lst || !new) + return; + if ((*lst) != NULL) + (*lst)->prev = new; + new->next = *lst; + new->prev = NULL; + *lst = new; +} + +// TODO: Move this somewhere else... +bool mlx_equal_image(void* lstcontent, void* value) +{ + const mlx_image_t* lcontent = lstcontent; + const mlx_image_t* lvalue = value; + + return (lcontent == lvalue); +} + +bool mlx_equal_inst(void* lstcontent, void* value) +{ + const draw_queue_t* lcontent = lstcontent; + const mlx_image_t* lvalue = value; + + return (lcontent->image == lvalue); +} + +/** + * Removes the specified content from the list, if found. + * Also fixes any relinking that might be needed. + * + * @param[in] lst The list + * @param[in] comp Function to check if the content and value are the same. + * @returns The removed element, clean up as you wish. + */ +mlx_list_t* mlx_lstremove(mlx_list_t** lst, void* value, bool (*comp)(void*, void*)) +{ + mlx_list_t* lstcpy = *lst; + + while (lstcpy && !comp(lstcpy->content, value)) + lstcpy = lstcpy->next; + if (lstcpy == NULL) + return (NULL); + if (lstcpy == *lst) + *lst = lstcpy->next; + if (lstcpy->next != NULL) + lstcpy->next->prev = lstcpy->prev; + if (lstcpy->prev != NULL) + lstcpy->prev->next = lstcpy->next; + return (lstcpy); +} + +// Retrieve Z value from queue. +static int32_t mlx_getzdata(mlx_list_t* entry) +{ + const draw_queue_t* queue = entry->content; + + return (queue->image->instances[queue->instanceid].z); +} + +// Insert the entry back into head sorted. +static void mlx_insertsort(mlx_list_t** head, mlx_list_t* new) +{ + mlx_list_t* current; + + if (*head == NULL) + *head = new; + else if (mlx_getzdata(*head) >= mlx_getzdata(new)) + { + new->next = *head; + new->next->prev = new; + *head = new; + } + else + { + current = *head; + + // Find insertion location. + while (current->next != NULL && mlx_getzdata(current->next) < mlx_getzdata(new)) + current = current->next; + new->next = current->next; + + // Insert at the end + if (current->next != NULL) + new->next->prev = new; + current->next = new; + new->prev = current; + } +} + +/** + * Okay-ish sorting algorithm to sort the render queue / doubly linked list. + * We need to do this to fix transparency. + * + * @param lst The render queue. + */ +void mlx_sort_renderqueue(mlx_list_t** lst) +{ + mlx_list_t* sorted = NULL; + mlx_list_t* lstcpy = *lst; + + while (lstcpy != NULL) + { + mlx_list_t* next = lstcpy->next; + + // Separate entry out of list and insert it back but sorted. + lstcpy->prev = lstcpy->next = NULL; + mlx_insertsort(&sorted, lstcpy); + lstcpy = next; + } + *lst = sorted; +} diff --git a/mlx/src/utils/mlx_utils.c b/mlx/src/utils/mlx_utils.c new file mode 100644 index 0000000..21ace73 --- /dev/null +++ b/mlx/src/utils/mlx_utils.c @@ -0,0 +1,131 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* mlx_utils.c :+: :+: */ +/* +:+ */ +/* By: W2Wizard +#+ */ +/* +#+ */ +/* Created: 2022/01/03 20:13:17 by W2Wizard #+# #+# */ +/* Updated: 2022/11/22 10:56:09 by jvan-hal ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "MLX42/MLX42_Int.h" + +//= Private =// + +/** + * Function to read a file stream line by line, reusing the same output pointer. + * Since the same output pointer is reused it should only be freed once, either on success or failure. + * This function is made to be somewhat similar to getline. + * Getline can't be used directly since its not standard and therefore not available on all platforms. + * + * @param out Pointer to store output string. + * @param out_size Pointer to store output strings length. + * @param file File stream to read from. + * @return True if line was read, false if EOF was reached or an error ocurred. + */ +bool mlx_getline(char** out, size_t* out_size, FILE* file) +{ + MLX_NONNULL(out); + MLX_NONNULL(out_size); + MLX_NONNULL(file); + + size_t size = 0; + char* temp = NULL; + static char BUFF[GETLINE_BUFF + 1]; // Add space for '\0' + + if (*out) *out[0] = '\0'; + + while (fgets(BUFF, sizeof(BUFF), file)) + { + size += strlen(BUFF); + if (!(temp = realloc(*out, sizeof(char) * size + 1))) + return (false); + if (*out == NULL) + memset(temp, '\0', size); + temp[size] = '\0'; + + *out = temp; + *out_size = size; + + strncat(*out, BUFF, size); + if (strrchr(BUFF, '\n')) + return (true); + memset(BUFF, '\0', sizeof(BUFF)); + } + return (size); +} + +/** + * String hashing algorithm using FNV-1a. + * Source: https://bit.ly/3JcRGHa + * + * @param str The string to hash + * @param len The length of the string. + * @return The hashed output. + */ +uint64_t mlx_fnv_hash(char* str, size_t len) +{ + const uint64_t fnv_prime = 0x100000001b3; + const uint64_t fnv_offset = 0xcbf29ce484222325; + uint64_t hash = fnv_offset; + + for (size_t i = 0; i < len; i++) + { + hash ^= str[i]; + hash *= fnv_prime; + } + return (hash); +} + +/** + * Utility function that lets you free x amount of pointers. + * + * @param count The amount of args provided. + * @param ... Any form of pointer. + * @return False, this is simply for convenience when necessary. + */ +bool mlx_freen(int32_t count, ...) +{ + va_list args; + + va_start(args, count); + for (int32_t i = 0; i < count; i++) + free(va_arg(args, void*)); + va_end(args); + return (false); +} + +/** + * Converts an RGBA value to a monochrome/grayscale value. + * It does so using specific weights for each channel. + * + * @see https://goodcalculators.com/rgb-to-grayscale-conversion-calculator/ + * + * @param color The input RGBA value. + * @return The rgba value converted to a grayscale color. + */ +uint32_t mlx_rgba_to_mono(uint32_t color) +{ + const uint8_t r = 0.299f * ((color >> 24) & 0xFF); + const uint8_t g = 0.587f * ((color >> 16) & 0xFF); + const uint8_t b = 0.114f * ((color >> 8) & 0xFF); + const uint8_t y = r + g + b; + + return (y << 24 | y << 16 | y << 8 | (color & 0xFF)); +} + +//= Public =// + +double mlx_get_time(void) +{ + return (glfwGetTime()); +} + +void mlx_focus(mlx_t* mlx) +{ + MLX_NONNULL(mlx); + + glfwFocusWindow(mlx->window); +} diff --git a/mlx/test/Makefile b/mlx/test/Makefile new file mode 100644 index 0000000..8f5c5d8 --- /dev/null +++ b/mlx/test/Makefile @@ -0,0 +1,62 @@ +# **************************************************************************** # +# # +# :::::::: # +# Makefile :+: :+: # +# +:+ # +# By: lde-la-h +#+ # +# +#+ # +# Created: 2022/07/19 08:43:31 by lde-la-h #+# #+# # +# Updated: 2022/07/21 10:34:17 by lde-la-h ######## odam.nl # +# # +# **************************************************************************** # + +#//= Variables =//# + +rwildcard = $(subst \,/,$(sort $(foreach d,$(wildcard $1/*),$(call rwildcard,$d,$2) $(wildcard $1/$2)))) + +#//= Colors =//# + +BOLD := \033[1m +BLACK := \033[30;1m +RED := \033[31;1m +GREEN := \033[32;1m +YELLOW := \033[33;1m +BLUE := \033[34;1m +MAGENTA := \033[35;1m +CYAN := \033[36;1m +WHITE := \033[37;1m +RESET := \033[0m + +NAME := test +SRC_DIR := . +SRCS := $(call rwildcard,$(SRC_DIR),*.c) +OBJS := $(sort $(patsubst %.c,%.o,$(SRCS))) +CFLAGS := -Wextra -Wall -Wunreachable-code -Wno-char-subscripts -Wno-unused-variable + +ifeq ($(OS), Windows_NT) + $(error Not supported) +else + UNAME_S := $(shell uname -s) + ifeq ($(UNAME_S), Linux) + MLX_FLAGS := -ldl -lglfw -pthread -lm + else ifeq ($(UNAME_S), Darwin) + MLX_FLAGS := -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit + endif +endif + +#//= Recipes =//# +# TODO: Check if any failed and only at the end error! + +all: # Redirect to run target + @$(MAKE) -si run + +run: mlx $(OBJS) + +mlx: + @echo "\033[30;1m[Running tests]\033[0m" + @$(MAKE) -s re DEBUG=1 -C ../ + @echo "\n" + +%.o: %.c + @gcc $^ -o $(NAME) ../libmlx42.a -I . -I ../include $(MLX_FLAGS) $(CFLAGS) && ./$(NAME) + @rm -rf $(NAME) diff --git a/mlx/test/Tester.h b/mlx/test/Tester.h new file mode 100644 index 0000000..42872b1 --- /dev/null +++ b/mlx/test/Tester.h @@ -0,0 +1,114 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* Tester.h :+: :+: */ +/* +:+ */ +/* By: lde-la-h +#+ */ +/* +#+ */ +/* Created: 2022/07/18 12:41:32 by lde-la-h #+# #+# */ +/* Updated: 2022/07/21 10:41:26 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#ifndef TESTER_H +#define TESTER_H +# include +# include +# include +# include +# include +# include +# include +# include +# include + +# define READ 0 +# define WRITE 1 + +# define PASS 0 +# define FAIL 1 + +////////////////////////////////////////////////////////////////////////////////// + +// TODO: Clean this up ... + +static int32_t _fds[2]; +static int32_t _expected; +static int32_t _result = -1; +static bool _normalExit; +static const char* _name; + +static void printError(void) +{ + printf("\r\033[35C\033[31;1m[ERROR] %s\033[0m\n", strerror(errno)); +} + +static int32_t resolveExitCode(void) +{ + return (_result == _expected ? EXIT_SUCCESS : EXIT_FAILURE); +} + +void handle(void) +{ + static char buff[256] = {0}; + + // Check result + if (_result != _expected) + { + if (_normalExit) + _result = FAIL; + } + else + _result = PASS; + + // If we failed and exit was abnormal + if (_result == FAIL && !_normalExit) + { + ssize_t bread; + if ((bread = read(_fds[READ], buff, sizeof(buff))) < 0) + { + printError(); + return; + } + } + + // Print result + printf("\r\033[35C%s\n", _result == PASS ? "\033[32;1m[OK]\033[0m" : "\033[31;1m[FAIL]\033[0m"); + printf("\033[31;1m%s\033[0m", buff); +} + +#define TEST_EXPECT(expect) \ + { _expected = expect; } \ + +#define TEST_EXIT(code) \ + { _result = code; _normalExit = true; exit(resolveExitCode()); } \ + +void sighandle(int32_t sig) +{ + (void)sig; + + _result = (_expected == PASS ? EXIT_FAILURE : EXIT_SUCCESS); + _normalExit = false; + exit(resolveExitCode()); +} + +// Initialize the function as a test. +#define TEST_DECLARE(Name) \ + _name = Name; \ + printf("Testing: %s", _name); \ + if (pipe(_fds) < 0) { \ + printError(); \ + exit(EXIT_FAILURE); \ + } \ + dup2(_fds[WRITE], STDERR_FILENO); \ + /* Now redirect the signals! */ \ + atexit(handle); \ + signal(SIGABRT, sighandle); \ + signal(SIGSEGV, sighandle); \ + signal(SIGILL, sighandle); \ + signal(SIGTERM, sighandle); \ + signal(SIGBUS, sighandle); \ + +#endif + +////////////////////////////////////////////////////////////////////////////////// diff --git a/mlx/test/src/img_del_test.c b/mlx/test/src/img_del_test.c new file mode 100644 index 0000000..b466dfd --- /dev/null +++ b/mlx/test/src/img_del_test.c @@ -0,0 +1,42 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* img_del_test.c :+: :+: */ +/* +:+ */ +/* By: lde-la-h +#+ */ +/* +#+ */ +/* Created: 2022/08/03 09:30:25 by lde-la-h #+# #+# */ +/* Updated: 2022/08/03 10:28:27 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "Tester.h" +#include "MLX42/MLX42.h" + +int32_t main(void) +{ + TEST_DECLARE("img_del"); + TEST_EXPECT(PASS); + + mlx_set_setting(MLX_HEADLESS, true); + mlx_t* mlx = mlx_init(32, 32, "TEST", false); + assert(mlx); + + mlx_image_t* img = mlx_new_image(mlx, 32, 32); + assert(img); + mlx_image_t* img2 = mlx_new_image(mlx, 32, 32); + assert(img2); + + // Display then delete + mlx_image_to_window(mlx, img, 0, 0); + mlx_delete_image(mlx, img); + + // Delete + mlx_delete_image(mlx, img2); + + // Check errno just to make absolutely sure + assert(mlx_errno == MLX_SUCCESS); + + mlx_terminate(mlx); + TEST_EXIT(EXIT_SUCCESS); +} diff --git a/mlx/test/src/init_test.c b/mlx/test/src/init_test.c new file mode 100644 index 0000000..25d6f4a --- /dev/null +++ b/mlx/test/src/init_test.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* init_test.c :+: :+: */ +/* +:+ */ +/* By: lde-la-h +#+ */ +/* +#+ */ +/* Created: 2022/07/18 10:19:40 by lde-la-h #+# #+# */ +/* Updated: 2022/08/03 10:28:20 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "Tester.h" +#include "MLX42/MLX42.h" + +int32_t main(void) +{ + TEST_DECLARE("mlx_init"); + TEST_EXPECT(PASS); + + mlx_set_setting(MLX_HEADLESS, true); + mlx_t* mlx = mlx_init(32, 32, "TEST", false); + assert(mlx); + assert(mlx_errno == MLX_SUCCESS); + mlx_terminate(mlx); + TEST_EXIT(EXIT_SUCCESS); +} diff --git a/mlx/test/src/prim_str_draw.c b/mlx/test/src/prim_str_draw.c new file mode 100644 index 0000000..0dd83bb --- /dev/null +++ b/mlx/test/src/prim_str_draw.c @@ -0,0 +1,80 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* prim_str_draw.c :+: :+: */ +/* +:+ */ +/* By: lde-la-h +#+ */ +/* +#+ */ +/* Created: 2022/08/03 09:43:26 by lde-la-h #+# #+# */ +/* Updated: 2022/08/03 10:30:23 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "Tester.h" +#include "MLX42/MLX42.h" + +bool once = false; +void function(mlx_t* mlx) +{ + if (once == false) + { + mlx_image_t* img2 = mlx_new_image(mlx, 64, 24); + memset(img2->pixels, 255, img2->width * img2->height * sizeof(int32_t)); + mlx_image_to_window(mlx, img2, 64, 32); + mlx_delete_image(mlx, img2); + } + once = true; +} + +// Primitive method of updating a string +void ft_draw(void* param) +{ + static char buf[256]; + static int32_t count = 0; + static mlx_image_t* img = NULL; + mlx_t *const mlx = param; + //mlx_ctx_t *const mlxctx = mlx->context; + + if (img) + mlx_delete_image(mlx, img); + // Cheap itoa + memset(buf, '\0', sizeof(buf)); + sprintf(buf, "%d", count); + img = mlx_put_string(mlx, buf, 0, 0); + count++; + + // Some function modifies the render queue and image list + function(mlx); + if (count >= 420) + mlx_close_window(mlx); + assert(mlx_errno == MLX_SUCCESS); +} + +int32_t main(void) +{ + TEST_DECLARE("prim_str_draw"); + TEST_EXPECT(PASS); + + mlx_set_setting(MLX_HEADLESS, true); + mlx_t* mlx = mlx_init(128, 64, "TEST", false); + assert(mlx); + + // Just because we want to do something messed up + mlx_image_t* img2 = mlx_new_image(mlx , 24, 24); + memset(img2->pixels, 255, img2->width * img2->height * sizeof(int32_t)); + mlx_image_to_window(mlx, img2, 32, 18); + + mlx_image_t* img3 = mlx_new_image(mlx , 24, 24); + memset(img3->pixels, 255, img3->width * img3->height * sizeof(int32_t)); + mlx_image_to_window(mlx, img3, 48, 32); + + mlx_image_t* img4 = mlx_new_image(mlx , 24, 24); + memset(img4->pixels, 255, img4->width * img4->height * sizeof(int32_t)); + mlx_image_to_window(mlx, img4, 32, 48); + + mlx_delete_image(mlx, img3); + mlx_loop_hook(mlx, ft_draw, mlx); + mlx_loop(mlx); + assert(mlx_errno == MLX_SUCCESS); + TEST_EXIT(EXIT_SUCCESS); +} diff --git a/mlx/test/src/put_pixel_test.c b/mlx/test/src/put_pixel_test.c new file mode 100644 index 0000000..1e7aaa0 --- /dev/null +++ b/mlx/test/src/put_pixel_test.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* put_pixel_test.c :+: :+: */ +/* +:+ */ +/* By: lde-la-h +#+ */ +/* +#+ */ +/* Created: 2022/07/18 10:19:40 by lde-la-h #+# #+# */ +/* Updated: 2022/08/03 10:28:45 by lde-la-h ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#include "Tester.h" +#include "MLX42/MLX42.h" + +int32_t main(void) +{ + TEST_DECLARE("put_pixel"); + + mlx_set_setting(MLX_HEADLESS, true); + mlx_t* mlx = mlx_init(32, 32, "TEST", false); + mlx_image_t* img = mlx_new_image(mlx, 32, 32); + + assert(mlx_errno == MLX_SUCCESS); + + // Test within bounds. + TEST_EXPECT(PASS); + mlx_put_pixel(img, 0, 0, 0xFFFFFFFF); + + // Test out of bounds. + TEST_EXPECT(FAIL); + mlx_put_pixel(img, 69, 69, 0xFFFFFFFF); + + // Put pixel passed when it should have failed... + mlx_terminate(mlx); + TEST_EXIT(EXIT_FAILURE); +} diff --git a/mlx/tools/compile_shader.bat b/mlx/tools/compile_shader.bat new file mode 100644 index 0000000..4df0ec6 --- /dev/null +++ b/mlx/tools/compile_shader.bat @@ -0,0 +1,61 @@ +:: ************************************************************************** :: +:: :: +:: :::::::: :: +:: compile_shader.bat :+: :+: :: +:: +:+ :: +:: By: fbes +#+ :: +:: +#+ :: +:: Created: 2022/03/07 16:24:06 by fbes #+# #+# :: +:: Updated: 2022/03/07 18:12:51 by fbes ######## odam.nl :: +:: :: +:: ************************************************************************** :: + +@echo off +SETLOCAL DisableDelayedExpansion + +:: go to usage function if no arguments have been given to the script +IF [%1]==[] GOTO usage + +:: check if input file exists before continuing +IF NOT EXIST %1 GOTO fnotfound + +SET SHADERTYPE=%~x1 +SET SHADERTYPE=%SHADERTYPE:~1% + +echo /* ************************************************************************** */ +echo /* */ +echo /* :::::::: */ +echo /* lol.c :+: :+: */ +echo /* +:+ */ +echo /* By: W2wizard ^ +#+ */ +echo /* +#+ */ +echo /* Created: 2022/02/17 22:34:59 by W2wizard #+# #+# */ +echo /* Updated: 2022/02/17 22:34:59 by W2wizard ######## odam.nl */ +echo /* */ +echo /* ************************************************************************** */ +echo. +echo // If you wish to modify this file edit the .vert or .frag file! +echo. +echo #include "MLX42/MLX42_Int.h" +echo. + +FOR /F "delims=" %%A IN (%1) DO IF NOT DEFINED VERSIONLINE set "VERSIONLINE=%%A" +echo const char* %SHADERTYPE%_shader = "%VERSIONLINE%\n" +FOR /F "skip=1 delims=" %%A IN (%1) DO ( + IF "%%A" == "}" (echo "%%A";) ELSE (echo "%%A") +) + +ENDLOCAL +EXIT /B 0 + +:: usage function exits the script with exit code 3 (path not found) +:usage +echo ERROR: missing arguments, use as follows: %0 ^ 1>&2 +ENDLOCAL +EXIT /B 3 + +:: fnotfound function exits the script with exit code 2 (file not found) +:fnotfound +echo ERROR: shader file not found: %1 1>&2 +ENDLOCAL +EXIT /B 2 diff --git a/mlx/tools/compile_shader.sh b/mlx/tools/compile_shader.sh new file mode 100644 index 0000000..d2887aa --- /dev/null +++ b/mlx/tools/compile_shader.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# **************************************************************************** # +# # +# :::::::: # +# compile_shader.sh :+: :+: # +# +:+ # +# By: fbes +#+ # +# +#+ # +# Created: 2022/03/03 02:38:19 by fbes #+# #+# # +# Updated: 2022/03/15 20:34:51 by lde-la-h ######## odam.nl # +# # +# **************************************************************************** # + +# If no arguments have been given, exit with error code 1 +if [ "$#" -ne 1 ]; then + echo "ERROR: missing arguments, use as follows: $0 " 1>&2 + exit 1 +fi + +# If file cannot be found, exit with error code 2 +if [ ! -f "$1" ]; then + echo "ERROR: shader file not found: $1" 1>&2 + exit 2 +fi + +SHADERTYPE="${1##*.}" + +echo "/* ************************************************************************** */" +echo "/* */" +echo "/* :::::::: */" +echo "/* lol.c :+: :+: */" +echo "/* +:+ */" +echo "/* By: W2wizard +#+ */" +echo "/* +#+ */" +echo "/* Created: 2022/02/17 22:34:59 by W2wizard #+# #+# */" +echo "/* Updated: 2022/02/17 22:34:59 by W2wizard ######## odam.nl */" +echo "/* */" +echo "/* ************************************************************************** */" +echo "" +echo "// If you wish to modify this file edit the .vert or .frag file!" +echo "" +echo "#include \"MLX42/MLX42_Int.h\"" +echo "" +echo "const char* ${SHADERTYPE}_shader = \"$(sed -n '1{p;q;}' $1)\\n\"" +{ + # Skip over first line + read + while IFS= read -r LINE; do + if [ ! "${LINE}" = "" ]; then + if [ "${LINE}" = "}" ]; then + echo " \"${LINE}\";" + else + echo " \"${LINE}\"" + fi + fi + done +} < "$1" +exit 0 diff --git a/mlx/tools/xpm3_conv.py b/mlx/tools/xpm3_conv.py new file mode 100644 index 0000000..0a0252f --- /dev/null +++ b/mlx/tools/xpm3_conv.py @@ -0,0 +1,816 @@ +# **************************************************************************** # +# # +# :::::::: # +# xpm3_conv.py :+: :+: # +# +:+ # +# By: pvan-dij +#+ # +# +#+ # +# Created: 2022/02/09 21:04:31 by pvan-dij #+# #+# # +# Updated: 2022/02/23 16:48:19 by lde-la-h ######## odam.nl # +# # +# **************************************************************************** # + +import sys + +# This script takes an XPM3 as argument and outputs it to XPM42. + +# This is a generated dictionary from the XFree86 distribution. +colours = { + "snow":"fffafa", + "ghost white":"f8f8ff", + "ghostwhite":"f8f8ff", + "white smoke":"f5f5f5", + "whitesmoke":"f5f5f5", + "gainsboro":"dcdcdc", + "floral white":"fffaf0", + "floralwhite":"fffaf0", + "old lace":"fdf5e6", + "oldlace":"fdf5e6", + "linen":"faf0e6", + "antique white":"faebd7", + "antiquewhite":"faebd7", + "papaya whip":"ffefd5", + "papayawhip":"ffefd5", + "blanched almond":"ffebcd", + "blanchedalmond":"ffebcd", + "bisque":"ffe4c4", + "peach puff":"ffdab9", + "peachpuff":"ffdab9", + "navajo white":"ffdead", + "navajowhite":"ffdead", + "moccasin":"ffe4b5", + "cornsilk":"fff8dc", + "ivory":"fffff0", + "lemon chiffon":"fffacd", + "lemonchiffon":"fffacd", + "seashell":"fff5ee", + "honeydew":"f0fff0", + "mint cream":"f5fffa", + "mintcream":"f5fffa", + "azure":"f0ffff", + "alice blue":"f0f8ff", + "aliceblue":"f0f8ff", + "lavender":"e6e6fa", + "lavender blush":"fff0f5", + "lavenderblush":"fff0f5", + "misty rose":"ffe4e1", + "mistyrose":"ffe4e1", + "white":"ffffff", + "black":"000000", + "dark slate":"2f4f4f", + "darkslategray":"2f4f4f", + "dark slate":"2f4f4f", + "darkslategrey":"2f4f4f", + "dim gray":"696969", + "dimgray":"696969", + "dim grey":"696969", + "dimgrey":"696969", + "slate gray":"708090", + "slategray":"708090", + "slate grey":"708090", + "slategrey":"708090", + "light slate":"778899", + "lightslategray":"778899", + "light slate":"778899", + "lightslategrey":"778899", + "gray":"bebebe", + "grey":"bebebe", + "light grey":"d3d3d3", + "lightgrey":"d3d3d3", + "light gray":"d3d3d3", + "lightgray":"d3d3d3", + "midnight blue":"191970", + "midnightblue":"191970", + "navy":"000080", + "navy blue":"000080", + "navyblue":"000080", + "cornflower blue":"6495ed", + "cornflowerblue":"6495ed", + "dark slate":"483d8b", + "darkslateblue":"483d8b", + "slate blue":"6a5acd", + "slateblue":"6a5acd", + "medium slate":"7b68ee", + "mediumslateblue":"7b68ee", + "light slate":"8470ff", + "lightslateblue":"8470ff", + "medium blue":"0000cd", + "mediumblue":"0000cd", + "royal blue":"4169e1", + "royalblue":"4169e1", + "blue":"0000ff", + "dodger blue":"1e90ff", + "dodgerblue":"1e90ff", + "deep sky":"bfff", + "deepskyblue":"bfff", + "sky blue":"87ceeb", + "skyblue":"87ceeb", + "light sky":"87cefa", + "lightskyblue":"87cefa", + "steel blue":"4682b4", + "steelblue":"4682b4", + "light steel":"b0c4de", + "lightsteelblue":"b0c4de", + "light blue":"add8e6", + "lightblue":"add8e6", + "powder blue":"b0e0e6", + "powderblue":"b0e0e6", + "pale turquoise":"afeeee", + "paleturquoise":"afeeee", + "dark turquoise":"ced1", + "darkturquoise":"ced1", + "medium turquoise":"48d1cc", + "mediumturquoise":"48d1cc", + "turquoise":"40e0d0", + "cyan":"00ffff", + "light cyan":"e0ffff", + "lightcyan":"e0ffff", + "cadet blue":"5f9ea0", + "cadetblue":"5f9ea0", + "medium aquamarine":"66cdaa", + "mediumaquamarine":"66cdaa", + "aquamarine":"7fffd4", + "dark green":"006400", + "darkgreen":"006400", + "dark olive":"556b2f", + "darkolivegreen":"556b2f", + "dark sea":"8fbc8f", + "darkseagreen":"8fbc8f", + "sea green":"2e8b57", + "seagreen":"2e8b57", + "medium sea":"3cb371", + "mediumseagreen":"3cb371", + "light sea":"20b2aa", + "lightseagreen":"20b2aa", + "pale green":"98fb98", + "palegreen":"98fb98", + "spring green":"00ff7f", + "springgreen":"00ff7f", + "lawn green":"7cfc00", + "lawngreen":"7cfc00", + "green":"00ff00", + "chartreuse":"7fff00", + "medium spring":"00fa9a", + "mediumspringgreen":"00fa9a", + "green yellow":"adff2f", + "greenyellow":"adff2f", + "lime green":"32cd32", + "limegreen":"32cd32", + "yellow green":"9acd32", + "yellowgreen":"9acd32", + "forest green":"228b22", + "forestgreen":"228b22", + "olive drab":"6b8e23", + "olivedrab":"6b8e23", + "dark khaki":"bdb76b", + "darkkhaki":"bdb76b", + "khaki":"f0e68c", + "pale goldenrod":"eee8aa", + "palegoldenrod":"eee8aa", + "light goldenrod":"fafad2", + "lightgoldenrodyellow":"fafad2", + "light yellow":"ffffe0", + "lightyellow":"ffffe0", + "yellow":"ffff00", + "gold":"ffd700", + "light goldenrod":"eedd82", + "lightgoldenrod":"eedd82", + "goldenrod":"daa520", + "dark goldenrod":"b8860b", + "darkgoldenrod":"b8860b", + "rosy brown":"bc8f8f", + "rosybrown":"bc8f8f", + "indian red":"cd5c5c", + "indianred":"cd5c5c", + "saddle brown":"8b4513", + "saddlebrown":"8b4513", + "sienna":"a0522d", + "peru":"cd853f", + "burlywood":"deb887", + "beige":"f5f5dc", + "wheat":"f5deb3", + "sandy brown":"f4a460", + "sandybrown":"f4a460", + "tan":"d2b48c", + "chocolate":"d2691e", + "firebrick":"b22222", + "brown":"a52a2a", + "dark salmon":"e9967a", + "darksalmon":"e9967a", + "salmon":"fa8072", + "light salmon":"ffa07a", + "lightsalmon":"ffa07a", + "orange":"ffa500", + "dark orange":"ff8c00", + "darkorange":"ff8c00", + "coral":"ff7f50", + "light coral":"f08080", + "lightcoral":"f08080", + "tomato":"ff6347", + "orange red":"ff4500", + "orangered":"ff4500", + "red":"ff0000", + "hot pink":"ff69b4", + "hotpink":"ff69b4", + "deep pink":"ff1493", + "deeppink":"ff1493", + "pink":"ffc0cb", + "light pink":"ffb6c1", + "lightpink":"ffb6c1", + "pale violet":"db7093", + "palevioletred":"db7093", + "maroon":"b03060", + "medium violet":"c71585", + "mediumvioletred":"c71585", + "violet red":"d02090", + "violetred":"d02090", + "magenta":"ff00ff", + "violet":"ee82ee", + "plum":"dda0dd", + "orchid":"da70d6", + "medium orchid":"ba55d3", + "mediumorchid":"ba55d3", + "dark orchid":"9932cc", + "darkorchid":"9932cc", + "dark violet":"9400d3", + "darkviolet":"9400d3", + "blue violet":"8a2be2", + "blueviolet":"8a2be2", + "purple":"a020f0", + "medium purple":"9370db", + "mediumpurple":"9370db", + "thistle":"d8bfd8", + "snow1":"fffafa", + "snow2":"eee9e9", + "snow3":"cdc9c9", + "snow4":"8b8989", + "seashell1":"fff5ee", + "seashell2":"eee5de", + "seashell3":"cdc5bf", + "seashell4":"8b8682", + "antiquewhite1":"ffefdb", + "antiquewhite2":"eedfcc", + "antiquewhite3":"cdc0b0", + "antiquewhite4":"8b8378", + "bisque1":"ffe4c4", + "bisque2":"eed5b7", + "bisque3":"cdb79e", + "bisque4":"8b7d6b", + "peachpuff1":"ffdab9", + "peachpuff2":"eecbad", + "peachpuff3":"cdaf95", + "peachpuff4":"8b7765", + "navajowhite1":"ffdead", + "navajowhite2":"eecfa1", + "navajowhite3":"cdb38b", + "navajowhite4":"8b795e", + "lemonchiffon1":"fffacd", + "lemonchiffon2":"eee9bf", + "lemonchiffon3":"cdc9a5", + "lemonchiffon4":"8b8970", + "cornsilk1":"fff8dc", + "cornsilk2":"eee8cd", + "cornsilk3":"cdc8b1", + "cornsilk4":"8b8878", + "ivory1":"fffff0", + "ivory2":"eeeee0", + "ivory3":"cdcdc1", + "ivory4":"8b8b83", + "honeydew1":"f0fff0", + "honeydew2":"e0eee0", + "honeydew3":"c1cdc1", + "honeydew4":"838b83", + "lavenderblush1":"fff0f5", + "lavenderblush2":"eee0e5", + "lavenderblush3":"cdc1c5", + "lavenderblush4":"8b8386", + "mistyrose1":"ffe4e1", + "mistyrose2":"eed5d2", + "mistyrose3":"cdb7b5", + "mistyrose4":"8b7d7b", + "azure1":"f0ffff", + "azure2":"e0eeee", + "azure3":"c1cdcd", + "azure4":"838b8b", + "slateblue1":"836fff", + "slateblue2":"7a67ee", + "slateblue3":"6959cd", + "slateblue4":"473c8b", + "royalblue1":"4876ff", + "royalblue2":"436eee", + "royalblue3":"3a5fcd", + "royalblue4":"27408b", + "blue1":"0000ff", + "blue2":"0000ee", + "blue3":"0000cd", + "blue4":"00008b", + "dodgerblue1":"1e90ff", + "dodgerblue2":"1c86ee", + "dodgerblue3":"1874cd", + "dodgerblue4":"104e8b", + "steelblue1":"63b8ff", + "steelblue2":"5cacee", + "steelblue3":"4f94cd", + "steelblue4":"36648b", + "deepskyblue1":"bfff", + "deepskyblue2":"b2ee", + "deepskyblue3":"9acd", + "deepskyblue4":"688b", + "skyblue1":"87ceff", + "skyblue2":"7ec0ee", + "skyblue3":"6ca6cd", + "skyblue4":"4a708b", + "lightskyblue1":"b0e2ff", + "lightskyblue2":"a4d3ee", + "lightskyblue3":"8db6cd", + "lightskyblue4":"607b8b", + "slategray1":"c6e2ff", + "slategray2":"b9d3ee", + "slategray3":"9fb6cd", + "slategray4":"6c7b8b", + "lightsteelblue1":"cae1ff", + "lightsteelblue2":"bcd2ee", + "lightsteelblue3":"a2b5cd", + "lightsteelblue4":"6e7b8b", + "lightblue1":"bfefff", + "lightblue2":"b2dfee", + "lightblue3":"9ac0cd", + "lightblue4":"68838b", + "lightcyan1":"e0ffff", + "lightcyan2":"d1eeee", + "lightcyan3":"b4cdcd", + "lightcyan4":"7a8b8b", + "paleturquoise1":"bbffff", + "paleturquoise2":"aeeeee", + "paleturquoise3":"96cdcd", + "paleturquoise4":"668b8b", + "cadetblue1":"98f5ff", + "cadetblue2":"8ee5ee", + "cadetblue3":"7ac5cd", + "cadetblue4":"53868b", + "turquoise1":"f5ff", + "turquoise2":"e5ee", + "turquoise3":"c5cd", + "turquoise4":"868b", + "cyan1":"ffff", + "cyan2":"eeee", + "cyan3":"cdcd", + "cyan4":"8b8b", + "darkslategray1":"97ffff", + "darkslategray2":"8deeee", + "darkslategray3":"79cdcd", + "darkslategray4":"528b8b", + "aquamarine1":"7fffd4", + "aquamarine2":"76eec6", + "aquamarine3":"66cdaa", + "aquamarine4":"458b74", + "darkseagreen1":"c1ffc1", + "darkseagreen2":"b4eeb4", + "darkseagreen3":"9bcd9b", + "darkseagreen4":"698b69", + "seagreen1":"54ff9f", + "seagreen2":"4eee94", + "seagreen3":"43cd80", + "seagreen4":"2e8b57", + "palegreen1":"9aff9a", + "palegreen2":"90ee90", + "palegreen3":"7ccd7c", + "palegreen4":"548b54", + "springgreen1":"ff7f", + "springgreen2":"ee76", + "springgreen3":"cd66", + "springgreen4":"8b45", + "green1":"ff00", + "green2":"ee00", + "green3":"cd00", + "green4":"8b00", + "chartreuse1":"7fff00", + "chartreuse2":"76ee00", + "chartreuse3":"66cd00", + "chartreuse4":"458b00", + "olivedrab1":"c0ff3e", + "olivedrab2":"b3ee3a", + "olivedrab3":"9acd32", + "olivedrab4":"698b22", + "darkolivegreen1":"caff70", + "darkolivegreen2":"bcee68", + "darkolivegreen3":"a2cd5a", + "darkolivegreen4":"6e8b3d", + "khaki1":"fff68f", + "khaki2":"eee685", + "khaki3":"cdc673", + "khaki4":"8b864e", + "lightgoldenrod1":"ffec8b", + "lightgoldenrod2":"eedc82", + "lightgoldenrod3":"cdbe70", + "lightgoldenrod4":"8b814c", + "lightyellow1":"ffffe0", + "lightyellow2":"eeeed1", + "lightyellow3":"cdcdb4", + "lightyellow4":"8b8b7a", + "yellow1":"ffff00", + "yellow2":"eeee00", + "yellow3":"cdcd00", + "yellow4":"8b8b00", + "gold1":"ffd700", + "gold2":"eec900", + "gold3":"cdad00", + "gold4":"8b7500", + "goldenrod1":"ffc125", + "goldenrod2":"eeb422", + "goldenrod3":"cd9b1d", + "goldenrod4":"8b6914", + "darkgoldenrod1":"ffb90f", + "darkgoldenrod2":"eead0e", + "darkgoldenrod3":"cd950c", + "darkgoldenrod4":"8b6508", + "rosybrown1":"ffc1c1", + "rosybrown2":"eeb4b4", + "rosybrown3":"cd9b9b", + "rosybrown4":"8b6969", + "indianred1":"ff6a6a", + "indianred2":"ee6363", + "indianred3":"cd5555", + "indianred4":"8b3a3a", + "sienna1":"ff8247", + "sienna2":"ee7942", + "sienna3":"cd6839", + "sienna4":"8b4726", + "burlywood1":"ffd39b", + "burlywood2":"eec591", + "burlywood3":"cdaa7d", + "burlywood4":"8b7355", + "wheat1":"ffe7ba", + "wheat2":"eed8ae", + "wheat3":"cdba96", + "wheat4":"8b7e66", + "tan1":"ffa54f", + "tan2":"ee9a49", + "tan3":"cd853f", + "tan4":"8b5a2b", + "chocolate1":"ff7f24", + "chocolate2":"ee7621", + "chocolate3":"cd661d", + "chocolate4":"8b4513", + "firebrick1":"ff3030", + "firebrick2":"ee2c2c", + "firebrick3":"cd2626", + "firebrick4":"8b1a1a", + "brown1":"ff4040", + "brown2":"ee3b3b", + "brown3":"cd3333", + "brown4":"8b2323", + "salmon1":"ff8c69", + "salmon2":"ee8262", + "salmon3":"cd7054", + "salmon4":"8b4c39", + "lightsalmon1":"ffa07a", + "lightsalmon2":"ee9572", + "lightsalmon3":"cd8162", + "lightsalmon4":"8b5742", + "orange1":"ffa500", + "orange2":"ee9a00", + "orange3":"cd8500", + "orange4":"8b5a00", + "darkorange1":"ff7f00", + "darkorange2":"ee7600", + "darkorange3":"cd6600", + "darkorange4":"8b4500", + "coral1":"ff7256", + "coral2":"ee6a50", + "coral3":"cd5b45", + "coral4":"8b3e2f", + "tomato1":"ff6347", + "tomato2":"ee5c42", + "tomato3":"cd4f39", + "tomato4":"8b3626", + "orangered1":"ff4500", + "orangered2":"ee4000", + "orangered3":"cd3700", + "orangered4":"8b2500", + "red1":"ff0000", + "red2":"ee0000", + "red3":"cd0000", + "red4":"8b0000", + "deeppink1":"ff1493", + "deeppink2":"ee1289", + "deeppink3":"cd1076", + "deeppink4":"8b0a50", + "hotpink1":"ff6eb4", + "hotpink2":"ee6aa7", + "hotpink3":"cd6090", + "hotpink4":"8b3a62", + "pink1":"ffb5c5", + "pink2":"eea9b8", + "pink3":"cd919e", + "pink4":"8b636c", + "lightpink1":"ffaeb9", + "lightpink2":"eea2ad", + "lightpink3":"cd8c95", + "lightpink4":"8b5f65", + "palevioletred1":"ff82ab", + "palevioletred2":"ee799f", + "palevioletred3":"cd6889", + "palevioletred4":"8b475d", + "maroon1":"ff34b3", + "maroon2":"ee30a7", + "maroon3":"cd2990", + "maroon4":"8b1c62", + "violetred1":"ff3e96", + "violetred2":"ee3a8c", + "violetred3":"cd3278", + "violetred4":"8b2252", + "magenta1":"ff00ff", + "magenta2":"ee00ee", + "magenta3":"cd00cd", + "magenta4":"8b008b", + "orchid1":"ff83fa", + "orchid2":"ee7ae9", + "orchid3":"cd69c9", + "orchid4":"8b4789", + "plum1":"ffbbff", + "plum2":"eeaeee", + "plum3":"cd96cd", + "plum4":"8b668b", + "mediumorchid1":"e066ff", + "mediumorchid2":"d15fee", + "mediumorchid3":"b452cd", + "mediumorchid4":"7a378b", + "darkorchid1":"bf3eff", + "darkorchid2":"b23aee", + "darkorchid3":"9a32cd", + "darkorchid4":"68228b", + "purple1":"9b30ff", + "purple2":"912cee", + "purple3":"7d26cd", + "purple4":"551a8b", + "mediumpurple1":"ab82ff", + "mediumpurple2":"9f79ee", + "mediumpurple3":"8968cd", + "mediumpurple4":"5d478b", + "thistle1":"ffe1ff", + "thistle2":"eed2ee", + "thistle3":"cdb5cd", + "thistle4":"8b7b8b", + "gray0":"000000", + "grey0":"000000", + "gray1":"30303", + "grey1":"30303", + "gray2":"50505", + "grey2":"50505", + "gray3":"80808", + "grey3":"80808", + "gray4":"a0a0a", + "grey4":"a0a0a", + "gray5":"d0d0d", + "grey5":"d0d0d", + "gray6":"f0f0f", + "grey6":"f0f0f", + "gray7":"121212", + "grey7":"121212", + "gray8":"141414", + "grey8":"141414", + "gray9":"171717", + "grey9":"171717", + "gray10":"1a1a1a", + "grey10":"1a1a1a", + "gray11":"1c1c1c", + "grey11":"1c1c1c", + "gray12":"1f1f1f", + "grey12":"1f1f1f", + "gray13":"212121", + "grey13":"212121", + "gray14":"242424", + "grey14":"242424", + "gray15":"262626", + "grey15":"262626", + "gray16":"292929", + "grey16":"292929", + "gray17":"2b2b2b", + "grey17":"2b2b2b", + "gray18":"2e2e2e", + "grey18":"2e2e2e", + "gray19":"303030", + "grey19":"303030", + "gray20":"333333", + "grey20":"333333", + "gray21":"363636", + "grey21":"363636", + "gray22":"383838", + "grey22":"383838", + "gray23":"3b3b3b", + "grey23":"3b3b3b", + "gray24":"3d3d3d", + "grey24":"3d3d3d", + "gray25":"404040", + "grey25":"404040", + "gray26":"424242", + "grey26":"424242", + "gray27":"454545", + "grey27":"454545", + "gray28":"474747", + "grey28":"474747", + "gray29":"4a4a4a", + "grey29":"4a4a4a", + "gray30":"4d4d4d", + "grey30":"4d4d4d", + "gray31":"4f4f4f", + "grey31":"4f4f4f", + "gray32":"525252", + "grey32":"525252", + "gray33":"545454", + "grey33":"545454", + "gray34":"575757", + "grey34":"575757", + "gray35":"595959", + "grey35":"595959", + "gray36":"5c5c5c", + "grey36":"5c5c5c", + "gray37":"5e5e5e", + "grey37":"5e5e5e", + "gray38":"616161", + "grey38":"616161", + "gray39":"636363", + "grey39":"636363", + "gray40":"666666", + "grey40":"666666", + "gray41":"696969", + "grey41":"696969", + "gray42":"6b6b6b", + "grey42":"6b6b6b", + "gray43":"6e6e6e", + "grey43":"6e6e6e", + "gray44":"707070", + "grey44":"707070", + "gray45":"737373", + "grey45":"737373", + "gray46":"757575", + "grey46":"757575", + "gray47":"787878", + "grey47":"787878", + "gray48":"7a7a7a", + "grey48":"7a7a7a", + "gray49":"7d7d7d", + "grey49":"7d7d7d", + "gray50":"7f7f7f", + "grey50":"7f7f7f", + "gray51":"828282", + "grey51":"828282", + "gray52":"858585", + "grey52":"858585", + "gray53":"878787", + "grey53":"878787", + "gray54":"8a8a8a", + "grey54":"8a8a8a", + "gray55":"8c8c8c", + "grey55":"8c8c8c", + "gray56":"8f8f8f", + "grey56":"8f8f8f", + "gray57":"919191", + "grey57":"919191", + "gray58":"949494", + "grey58":"949494", + "gray59":"969696", + "grey59":"969696", + "gray60":"999999", + "grey60":"999999", + "gray61":"9c9c9c", + "grey61":"9c9c9c", + "gray62":"9e9e9e", + "grey62":"9e9e9e", + "gray63":"a1a1a1", + "grey63":"a1a1a1", + "gray64":"a3a3a3", + "grey64":"a3a3a3", + "gray65":"a6a6a6", + "grey65":"a6a6a6", + "gray66":"a8a8a8", + "grey66":"a8a8a8", + "gray67":"ababab", + "grey67":"ababab", + "gray68":"adadad", + "grey68":"adadad", + "gray69":"b0b0b0", + "grey69":"b0b0b0", + "gray70":"b3b3b3", + "grey70":"b3b3b3", + "gray71":"b5b5b5", + "grey71":"b5b5b5", + "gray72":"b8b8b8", + "grey72":"b8b8b8", + "gray73":"bababa", + "grey73":"bababa", + "gray74":"bdbdbd", + "grey74":"bdbdbd", + "gray75":"bfbfbf", + "grey75":"bfbfbf", + "gray76":"c2c2c2", + "grey76":"c2c2c2", + "gray77":"c4c4c4", + "grey77":"c4c4c4", + "gray78":"c7c7c7", + "grey78":"c7c7c7", + "gray79":"c9c9c9", + "grey79":"c9c9c9", + "gray80":"cccccc", + "grey80":"cccccc", + "gray81":"cfcfcf", + "grey81":"cfcfcf", + "gray82":"d1d1d1", + "grey82":"d1d1d1", + "gray83":"d4d4d4", + "grey83":"d4d4d4", + "gray84":"d6d6d6", + "grey84":"d6d6d6", + "gray85":"d9d9d9", + "grey85":"d9d9d9", + "gray86":"dbdbdb", + "grey86":"dbdbdb", + "gray87":"dedede", + "grey87":"dedede", + "gray88":"e0e0e0", + "grey88":"e0e0e0", + "gray89":"e3e3e3", + "grey89":"e3e3e3", + "gray90":"e5e5e5", + "grey90":"e5e5e5", + "gray91":"e8e8e8", + "grey91":"e8e8e8", + "gray92":"ebebeb", + "grey92":"ebebeb", + "gray93":"ededed", + "grey93":"ededed", + "gray94":"f0f0f0", + "grey94":"f0f0f0", + "gray95":"f2f2f2", + "grey95":"f2f2f2", + "gray96":"f5f5f5", + "grey96":"f5f5f5", + "gray97":"f7f7f7", + "grey97":"f7f7f7", + "gray98":"fafafa", + "grey98":"fafafa", + "gray99":"fcfcfc", + "grey99":"fcfcfc", + "gray100":"ffffff", + "grey100":"ffffff", + "dark grey":"a9a9a9", + "darkgrey":"a9a9a9", + "dark gray":"a9a9a9", + "darkgray":"a9a9a9", + "dark blue":"00008b", + "darkblue":"00008b", + "dark cyan":"008b8b", + "darkcyan":"008b8b", + "dark magenta":"8b008b", + "darkmagenta":"8b008b", + "dark red":"8b0000", + "darkred":"8b0000", + "light green":"90ee90", + "lightgreen":"90ee90", + "none":"000000" +} + +def main(): + if len(sys.argv) != 2: + print("Use: py xpmconv.py |filename.xpm|") + exit(1) + if ".xpm" not in sys.argv[1]: + print("not an xpm file") + exit(1) + with open(sys.argv[1], "r") as f: + oldxpm = f.readlines()[3:] + fname = (sys.argv[1])[:-3] + "xpm42" + newxpm42 = open(fname, "w") + newxpm42.write("!XPM42\n") + cpp = int(oldxpm[0].split()[3]) + newxpm42.write(oldxpm[0][1:-3] + "c\n") + oldxpm.pop(0) + prev = 0 + for l in oldxpm: + if "/* pixels */" in l: + break + temp = l[1:-3] + "FF" + "\n" + out = temp[:cpp] + out = out + temp[(cpp+2):] + if "#" not in out[2:]: + repcol = out[cpp+1:] + temp = repcol[:-3].lower() + repcol = colours[repcol[:-3].lower()] + out = out[:cpp+1] + "#" + repcol.upper() + "FF\n" + if temp == "none": + out = out[:-3] + "00\n" + newxpm42.write(out) + prev += 1 + oldxpm = oldxpm[prev + 1:] + for i, l in enumerate(oldxpm): + if "};" in oldxpm[i + 1]: + temp = l[1:-2] + "\n" + newxpm42.write(temp) + break + temp = l[1:-3] + "\n" + newxpm42.write(temp) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/colors.c b/src/colors.c new file mode 100644 index 0000000..f3ed406 --- /dev/null +++ b/src/colors.c @@ -0,0 +1,135 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* colors.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/13 07:43:28 by houtworm #+# #+# */ +/* Updated: 2022/12/26 01:37:41 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void rainbowscale2(t_varlist *vl, int r, int g, int b) +{ + while (g - vl->cscale + 1 >= 0) + { + g = g - vl->cscale + 1; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } + while (r + vl->cscale - 1 <= 255) + { + r = r + vl->cscale - 1; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } + while (b - vl->cscale + 1 >= 0) + { + b = b - vl->cscale + 1; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } +} + +void rainbowscale(t_varlist *vl, int r, int g, int b) +{ + while (g + vl->cscale - 1 <= 255) + { + g = g + vl->cscale - 1; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } + while (r - vl->cscale + 1 >= 0) + { + r = r - vl->cscale + 1; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } + while (b + vl->cscale - 1 <= 255) + { + b = b + vl->cscale - 1; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } + rainbowscale2(vl, r, g, b); +} + +void rgbscale(t_varlist *vl, int red, int green, int blue) +{ + int r; + int g; + int b; + + r = 1; + g = 1; + b = 1; + while (r + red <= 255 && g + green <= 255 && b + blue <= 255) + { + r = r + red; + g = g + green; + b = b + blue; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } + while (r != 1 || b != 1 || g != 1) + { + r = r - red; + g = g - green; + b = b - blue; + vl->colors[vl->csha] = (r << 24 | g << 16 | b << 8 | 255); + vl->csha++; + } +} + +void colorschemestring(t_varlist *vl) +{ + vl->cschemeid = vl->cschemeid % 8; + if (vl->cschemeid == 0) + vl->cscheme = "Rainbow"; + if (vl->cschemeid == 1) + vl->cscheme = "Red"; + if (vl->cschemeid == 2) + vl->cscheme = "Green"; + if (vl->cschemeid == 3) + vl->cscheme = "Blue"; + if (vl->cschemeid == 4) + vl->cscheme = "Cyan"; + if (vl->cschemeid == 5) + vl->cscheme = "Magenta"; + if (vl->cschemeid == 6) + vl->cscheme = "Yellow"; + if (vl->cschemeid == 7) + vl->cscheme = "Greyscale"; +} + +void setcolorscheme(t_varlist *vl) +{ + int r; + int g; + int b; + + r = 255; + g = 0; + b = 0; + vl->csha = 0; + colorschemestring(vl); + if (vl->cschemeid == 0) + rainbowscale(vl, r, g, b); + else if (vl->cschemeid == 1) + rgbscale(vl, vl->cscale, 0, 0); + else if (vl->cschemeid == 2) + rgbscale(vl, 0, vl->cscale, 0); + else if (vl->cschemeid == 3) + rgbscale(vl, 0, 0, vl->cscale); + else if (vl->cschemeid == 4) + rgbscale(vl, 0, vl->cscale, vl->cscale); + else if (vl->cschemeid == 5) + rgbscale(vl, vl->cscale, 0, vl->cscale); + else if (vl->cschemeid == 6) + rgbscale(vl, vl->cscale, vl->cscale, 0); + else if (vl->cschemeid == 7) + rgbscale(vl, vl->cscale, vl->cscale, vl->cscale); +} diff --git a/src/error.c b/src/error.c new file mode 100644 index 0000000..d1dc845 --- /dev/null +++ b/src/error.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* .--. _ */ +/* error.c |o_o || | */ +/* |:_/ || |_ _ ___ __ */ +/* By: djonker // \ \ __| | | \ \/ / */ +/* (| | )|_| |_| |> < */ +/* Created: 2022/12/29 03:26:26 by djonker /'\_ _/`\__|\__,_/_/\_\ */ +/* Updated: 2022/12/29 06:23:51 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void ft_error(int r) +{ + if (r == 1) + ft_putstr_fd("mlx is not happy\n", 2); + if (r == 3) + ft_putstr_fd("pthread error\n", 2); + else if (r == 2) + { + ft_putstr_fd("No or Incorrect parameters\n", 1); + ft_putstr_fd("\nUsage:\n./fract-ol FRACTAL_NAME [ITERATIONS] ", 1); + ft_putstr_fd("[COLORSCHEME]\n", 1); + ft_putstr_fd("\nExamples:\n./fract-ol mandelbrot\n./fract-ol ", 1); + ft_putstr_fd("julia 200\n./fract-ol burningship 300 1\n", 1); + ft_putstr_fd("\nOptions:\nmandelbrot\nmandelcloud\n", 1); + ft_putstr_fd("mandelfeather\nmandelpower\njulia\nburningship\n", 1); + ft_putstr_fd("tricorn\nrorschach\npowerflower\n", 1); + ft_putstr_fd("\nHotkeys:\nKey\t\tAction\nH\t\tShow Help\nScroll\t", 1); + ft_putstr_fd("\tZoom\nArrows\t\tMove\nA/Z\t\t+/- Iterations\n", 1); + ft_putstr_fd("S\t\tShift Colors by 1\nX\t\tNext Colorscheme\n", 1); + ft_putstr_fd("D/C\t\t+/- Colorshades\nI\t\tShow info\nP\t\t", 1); + ft_putstr_fd("Psychedelic Mode\nR\t\tReset Fractal\n1 - 9\t\t", 1); + ft_putstr_fd("Select Fractal\nF/V\t\tChange C value on X axis\n", 1); + ft_putstr_fd("G/B\t\tChange C value on Y axis\nClick\t\tSet C ", 1); + ft_putstr_fd("value on X and Y axis\nN\t\tIncrease Power by 1\n", 1); + } + exit(EXIT_FAILURE); +} diff --git a/src/fractal.c b/src/fractal.c new file mode 100644 index 0000000..72b29e6 --- /dev/null +++ b/src/fractal.c @@ -0,0 +1,129 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* fractal.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/13 08:03:26 by houtworm #+# #+# */ +/* Updated: 2022/12/29 19:42:56 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void setfractalname(t_varlist *vl) +{ + if (vl->fractalid == 1) + vl->fractal = "mandelbrot"; + else if (vl->fractalid == 2) + vl->fractal = "mandelcloud"; + else if (vl->fractalid == 3) + vl->fractal = "mandelfeather"; + else if (vl->fractalid == 4) + vl->fractal = "julia"; + else if (vl->fractalid == 5) + vl->fractal = "mandelpower"; + else if (vl->fractalid == 6) + vl->fractal = "burningship"; + else if (vl->fractalid == 7) + vl->fractal = "tricorn"; + else if (vl->fractalid == 8) + vl->fractal = "rorschach"; + else if (vl->fractalid == 11) + vl->fractal = "powerflower"; +} + +void selectfractal(t_varlist *vl, int x, int y, t_cnbr c) +{ + setfractalname(vl); + if (vl->fractalid == 1) + mandelbrot(vl, x, y, c); + else if (vl->fractalid == 2) + mandelcloud(vl, x, y, c); + else if (vl->fractalid == 3) + mandelfeather(vl, x, y, c); + else if (vl->fractalid == 4) + julia(vl, x, y, c); + else if (vl->fractalid == 5) + mandelpower(vl, x, y, c); + else if (vl->fractalid == 6) + burningship(vl, x, y, c); + else if (vl->fractalid == 7) + tricorn(vl, x, y, c); + else if (vl->fractalid == 8) + rorschach(vl, x, y, c); + else if (vl->fractalid == 9) + powerflower(vl, x, y, c); + else + ft_error(2); +} + +void fractal(t_varlist *vl) +{ + int y; + int x; + t_cnbr c; + + y = 1; + while (vl->h > y) + { + x = 1; + while (vl->w > x) + { + c.re = vl->xmin + (long double)x * (vl->xmax - vl->xmin) / vl->w; + c.im = vl->ymin + (long double)y * (vl->ymax - vl->ymin) / vl->h; + selectfractal(vl, x, y, c); + x++; + } + y++; + } +} + +void redrawimage(t_varlist *vl) +{ + vl->redraw = 0; + while (vl->fontnbr > 0) + { + mlx_delete_image(vl->mlx, vl->font[vl->fontnbr - 1]); + vl->fontnbr--; + } + mlx_delete_image(vl->mlx, vl->img); + vl->calc = 0; + vl->img = mlx_new_image(vl->mlx, vl->w, vl->h); + fractal(vl); + if (!vl->img || (mlx_image_to_window(vl->mlx, vl->img, 0, 0) < 0)) + ft_error(1); + if (vl->info % 2) + showinfo(vl); + if (vl->help % 2) + showhelp(vl); +} + +void resetfractal(t_varlist *vl) +{ + vl->xmin = -4; + vl->ymin = -4; + vl->xmax = 4; + vl->ymax = 4; + if (vl->w > vl->h) + { + vl->ymax = vl->ymin + (vl->xmax - vl->xmin) * vl->h / vl->w; + vl->ymin = vl->ymin + (vl->w / vl->h); + vl->ymax = vl->ymax + (vl->w / vl->h); + } + if (vl->w < vl->h) + { + vl->xmax = vl->xmin + (vl->ymax - vl->ymin) * vl->w / vl->h; + vl->xmin = vl->xmin + (vl->h / vl->w); + vl->xmax = vl->xmax + (vl->h / vl->w); + } + vl->psycho = 0; + vl->cshi = 0; + vl->iter = 128; + vl->xscale = 8; + vl->yscale = 8; + vl->julre = 0; + vl->julim = 0; + vl->power = 1; +} diff --git a/src/fractals1.c b/src/fractals1.c new file mode 100644 index 0000000..b3719cf --- /dev/null +++ b/src/fractals1.c @@ -0,0 +1,124 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* fractals1.c |o_o || | */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/13 08:03:09 by houtworm #+# #+# */ +/* Updated: 2022/12/29 06:51:10 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void mandelfeather(t_varlist *vl, int x, int y, t_cnbr c) +{ + t_cnbr z; + t_cnbr t; + int i; + + i = 0; + z = c; + while (vl->iter > i && ((z.re < 2 && z.re > -2) || (z.im < 2 && z.im > -2))) + { + t.re = z.re * z.re - z.im * z.im + c.re; + t.im = 2 * z.im * z.re + c.im; + z = t; + i++; + } + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} + +void mandelcloud(t_varlist *vl, int x, int y, t_cnbr c) +{ + t_cnbr z; + t_cnbr t; + int i; + + i = 0; + z = c; + while (vl->iter > i && ((z.re < 2 && z.re > -2) && (z.im < 2 && z.im > -2))) + { + t.re = z.re * z.re - z.im * z.im + c.re; + t.im = 2 * z.im * z.re + c.im; + z = t; + i++; + } + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} + +void mandelbrot(t_varlist *vl, int x, int y, t_cnbr c) +{ + t_cnbr z; + t_cnbr t; + int i; + + i = 0; + z = c; + while (vl->iter > i && (z.re * z.re + z.im * z.im < 100)) + { + t.re = z.re * z.re - z.im * z.im + c.re; + t.im = 2 * z.im * z.re + c.im; + z = t; + i++; + vl->calc++; + } + vl->calc++; + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} + +void julia(t_varlist *vl, int x, int y, t_cnbr z) +{ + t_cnbr t; + int i; + + i = 0; + while (vl->iter > i && (z.re * z.re + z.im * z.im < 100)) + { + t.re = z.re * z.re - z.im * z.im; + z.im = 2 * z.im * z.re + vl->julim; + z.re = t.re + vl->julre; + i++; + vl->calc++; + } + vl->calc++; + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} + +void burningship(t_varlist *vl, int x, int y, t_cnbr c) +{ + t_cnbr t; + t_cnbr z; + int i; + + i = 0; + z = c; + while (vl->iter > i && (z.re * z.re + z.im * z.im < 100)) + { + t.re = z.re * z.re - z.im * z.im + c.re; + t.im = fabs(2 * (double)z.im * (double)z.re) + c.im; + if (t.im < 0) + t.im = t.im * -1; + z = t; + i++; + vl->calc++; + } + vl->calc++; + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} diff --git a/src/fractals2.c b/src/fractals2.c new file mode 100644 index 0000000..f8ca365 --- /dev/null +++ b/src/fractals2.c @@ -0,0 +1,113 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* fractals2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/26 22:05:33 by houtworm #+# #+# */ +/* Updated: 2022/12/29 18:38:12 by houtworm ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void mandelpower(t_varlist *vl, int x, int y, t_cnbr c) +{ + t_cnbr z; + t_cnbr t; + t_cnbr r; + int i; + + i = 0; + z = c; + while (vl->iter > i && (z.re * z.re + z.im * z.im < 100)) + { + r.re = sqrt(z.re * z.re + z.im * z.im); + r.im = atan2(z.im, z.re); + r.re = powl(r.re, vl->power); + r.im = vl->power * r.im; + t.re = r.re * cos(r.im) + c.re; + t.im = r.re * sin(r.im) + c.im; + z = t; + i++; + vl->calc++; + } + vl->calc++; + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} + +void tricorn(t_varlist *vl, int x, int y, t_cnbr c) +{ + t_cnbr z; + t_cnbr t; + int i; + + i = 0; + z = c; + while (vl->iter > i && (z.re * z.re + z.im * z.im < 100)) + { + t.re = z.re * z.re - z.im * z.im + c.re; + t.im = -2 * z.re * z.im + c.im; + z = t; + i++; + vl->calc++; + } + vl->calc++; + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} + +void rorschach(t_varlist *vl, int x, int y, t_cnbr c) +{ + t_cnbr z; + t_cnbr t; + int i; + + i = 0; + z = c; + while (vl->iter > i && (z.re * z.re + z.im * z.im < 100)) + { + t.re = fabsl(z.re); + z.re = z.re * z.re - z.im * z.im - c.re; + z.im = 2 * z.im * t.re - c.im; + i++; + vl->calc++; + } + vl->calc++; + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} + +void powerflower(t_varlist *vl, int x, int y, t_cnbr z) +{ + t_cnbr t; + t_cnbr r; + int i; + + i = 0; + while (vl->iter > i && (z.re * z.re + z.im * z.im < 100)) + { + r.re = sqrt(z.re * z.re + z.im * z.im); + r.im = atan2(z.im, z.re); + r.re = powl(r.re, vl->power); + r.im = vl->power * r.im; + t.re = (r.re + vl->julre) * cos(r.im); + t.im = (r.re + vl->julim) * sin(r.im); + z = t; + i++; + vl->calc++; + } + vl->calc++; + if (vl->iter == i) + mlx_put_pixel(vl->img, x, y, 0x000000FF); + else + mlx_put_pixel(vl->img, x, y, vl->colors[(i + vl->cshi) % vl->csha]); +} diff --git a/src/keyhooks.c b/src/keyhooks.c new file mode 100644 index 0000000..b11673a --- /dev/null +++ b/src/keyhooks.c @@ -0,0 +1,146 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* keyhooks.c |o_o || | */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/13 08:32:24 by houtworm #+# #+# */ +/* Updated: 2022/12/29 03:51:56 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void keyhookmove(void *param) +{ + t_varlist *vl; + + vl = param; + if (mlx_is_key_down(vl->mlx, MLX_KEY_LEFT) && vl->xmin > -32) + { + justmove(vl, 'l'); + vl->redraw = 1; + } + if (mlx_is_key_down(vl->mlx, MLX_KEY_RIGHT) && vl->xmax < 32) + { + justmove(vl, 'r'); + vl->redraw = 1; + } + if (mlx_is_key_down(vl->mlx, MLX_KEY_UP) && vl->ymin > -32) + { + justmove(vl, 'u'); + vl->redraw = 1; + } + if (mlx_is_key_down(vl->mlx, MLX_KEY_DOWN) && vl->ymax < 32) + { + justmove(vl, 'd'); + vl->redraw = 1; + } +} + +void keyhook(mlx_key_data_t kd, void *param) +{ + t_varlist *vl; + + vl = param; + if (kd.key == MLX_KEY_S && kd.action == MLX_PRESS) + vl->cshi++; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_R)) + resetfractal(vl); + else if (kd.key == MLX_KEY_P && kd.action == MLX_PRESS) + vl->psycho++; + else if (kd.key == MLX_KEY_I && kd.action == MLX_PRESS) + vl->info++; + else if (kd.key == MLX_KEY_H && kd.action == MLX_PRESS) + vl->help++; + else if (kd.key == MLX_KEY_X && kd.action == MLX_PRESS) + vl->cschemeid++; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_N)) + vl->power = vl->power + 1; + else if (kd.key == MLX_KEY_C && kd.action == MLX_PRESS && vl->cscale != 128) + vl->cscale = (vl->cscale) * 2; + else if (kd.key == MLX_KEY_D && kd.action == MLX_PRESS && vl->cscale != 2) + vl->cscale = (vl->cscale) / 2; + else + return ; + setcolorscheme(vl); + redrawimage(vl); +} + +void resizehook(int x, int y, void *param) +{ + t_varlist *vl; + + vl = param; + vl->h = y; + vl->w = x; + vl->mlx->height = y; + vl->mlx->width = x; + if (vl->w > vl->h) + { + vl->xmax = vl->xmin + (vl->ymax - vl->ymin) * vl->w / vl->h; + } + else + { + vl->ymax = vl->ymin + (vl->xmax - vl->xmin) * vl->h / vl->w; + } + redrawimage(vl); +} + +void keyhookfractal(void *param) +{ + t_varlist *vl; + + vl = param; + if (mlx_is_key_down(vl->mlx, MLX_KEY_1)) + vl->fractalid = 1; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_2)) + vl->fractalid = 2; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_3)) + vl->fractalid = 3; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_4)) + vl->fractalid = 4; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_5)) + vl->fractalid = 5; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_6)) + vl->fractalid = 6; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_7)) + vl->fractalid = 7; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_8)) + vl->fractalid = 8; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_9)) + vl->fractalid = 9; + else + return ; + redrawimage(vl); +} + +void keyhookextra(void *param) +{ + t_varlist *vl; + + vl = param; + if (mlx_is_key_down(vl->mlx, MLX_KEY_ESCAPE)) + { + mlx_close_window(vl->mlx); + return ; + } + else if (mlx_is_key_down(vl->mlx, MLX_KEY_A)) + vl->iter++; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_Z) && vl->iter > 0) + vl->iter--; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_F) && vl->julre < 4) + vl->julre = vl->julre + 0.01; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_V) && vl->julre > -4) + vl->julre = vl->julre - 0.01; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_G) && vl->julim < 4) + vl->julim = vl->julim + 0.01; + else if (mlx_is_key_down(vl->mlx, MLX_KEY_B) && vl->julim > -4) + vl->julim = vl->julim - 0.01; + else if (vl->psycho % 2) + vl->cshi++; + else if (vl->redraw == 0) + return ; + redrawimage(vl); +} diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..79954ce --- /dev/null +++ b/src/main.c @@ -0,0 +1,118 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c |o_o || | */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/13 08:03:00 by houtworm #+# #+# */ +/* Updated: 2022/12/29 06:35:31 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +int charactercheck(char *argument) +{ + int i; + + i = 0; + while (argument[i] != '\0') + { + if (argument[i] < '0' || argument[i] > '9') + return (1); + i++; + if (i > 7) + return (1); + } + return (0); +} + +void parseargs2(t_varlist *vl, char **argv) +{ + if (argv[2] != NULL) + { + if (charactercheck(argv[2])) + ft_error(2); + else + vl->iter = ft_atol(argv[2]); + if (argv[3] != NULL) + { + if (charactercheck(argv[3])) + ft_error(2); + else + vl->cschemeid = ft_atol(argv[3]); + } + } +} + +void parseargs(t_varlist *vl, char **argv) +{ + if (ft_strncmp("mandelbrot", vl->fractal, 10) == 0) + vl->fractalid = 1; + if (ft_strncmp("mandelcloud", vl->fractal, 11) == 0) + vl->fractalid = 2; + if (ft_strncmp("mandelfeather", vl->fractal, 13) == 0) + vl->fractalid = 3; + if (ft_strncmp("julia", vl->fractal, 5) == 0) + vl->fractalid = 4; + if (ft_strncmp("mandelpower", vl->fractal, 11) == 0) + vl->fractalid = 5; + if (ft_strncmp("burningship", vl->fractal, 11) == 0) + vl->fractalid = 6; + if (ft_strncmp("tricorn", vl->fractal, 7) == 0) + vl->fractalid = 7; + if (ft_strncmp("rorschach", vl->fractal, 9) == 0) + vl->fractalid = 8; + if (ft_strncmp("powerjulia", vl->fractal, 10) == 0) + vl->fractalid = 9; + parseargs2(vl, argv); +} + +t_varlist initvarlist(char **argv) +{ + t_varlist vl; + char *title; + + vl.fontnbr = 0; + vl.w = 600; + vl.h = 600; + vl.cschemeid = 0; + vl.fractal = argv[1]; + resetfractal(&vl); + parseargs(&vl, argv); + title = "Fractol - "; + title = ft_strjoin(title, argv[1]); + vl.mlx = mlx_init(vl.w, vl.h, title, true); + if (!vl.mlx) + ft_error(1); + vl.img = mlx_new_image(vl.mlx, vl.w, vl.h); + vl.cscale = 16; + free (title); + return (vl); +} + +int32_t main(int argc, char **argv) +{ + t_varlist vl; + + if (argc > 4 || argc < 2) + ft_error(2); + vl = initvarlist(argv); + setcolorscheme(&vl); + fractal(&vl); + if (!vl.img || (mlx_image_to_window(vl.mlx, vl.img, 0, 0) < 0)) + ft_error(1); + showhelp(&vl); + mlx_key_hook(vl.mlx, &keyhook, &vl); + mlx_scroll_hook(vl.mlx, &scrollhook, &vl); + mlx_resize_hook(vl.mlx, &resizehook, &vl); + mlx_loop_hook(vl.mlx, &mousehook, &vl); + mlx_loop_hook(vl.mlx, &keyhookmove, &vl); + mlx_loop_hook(vl.mlx, &keyhookextra, &vl); + mlx_loop_hook(vl.mlx, &keyhookfractal, &vl); + mlx_loop(vl.mlx); + mlx_delete_image(vl.mlx, vl.img); + mlx_terminate(vl.mlx); + exit (EXIT_SUCCESS); +} diff --git a/src/mousehooks.c b/src/mousehooks.c new file mode 100644 index 0000000..9bab00f --- /dev/null +++ b/src/mousehooks.c @@ -0,0 +1,44 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* mousehooks.c |o_o || | */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/25 10:29:26 by houtworm #+# #+# */ +/* Updated: 2022/12/29 00:02:44 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void scrollhook(double xdelta, double ydelta, void *param) +{ + t_varlist *vl; + + vl = param; + xdelta++; + if (ydelta > 0) + if (vl->xscale > 0.00000000000000001) + if (vl->yscale > 0.00000000000000001) + zoomtomouse(vl); + if (ydelta < 0 && vl->xscale < 32) + zoomfrommouse(vl); + redrawimage(vl); +} + +void mousehook(void *param) +{ + t_varlist *vl; + int32_t x; + int32_t y; + + vl = param; + if (mlx_is_mouse_down(vl->mlx, MLX_MOUSE_BUTTON_LEFT)) + { + mlx_get_mouse_pos(vl->mlx, &x, &y); + vl->julre = vl->xmin + (long double)x * (vl->xmax - vl->xmin) / vl->w; + vl->julim = vl->ymin + (long double)y * (vl->ymax - vl->ymin) / vl->h; + vl->redraw = 1; + } +} diff --git a/src/print.c b/src/print.c new file mode 100644 index 0000000..15c2f29 --- /dev/null +++ b/src/print.c @@ -0,0 +1,124 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* print.c |o_o || | */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/13 08:03:05 by houtworm #+# #+# */ +/* Updated: 2022/12/29 06:15:16 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void freeprint(t_varlist *vl, char *s, int y, int f) +{ + vl->fontnbr++; + vl->font[vl->fontnbr - 1] = mlx_put_string(vl->mlx, s, 10, y); + if (f == 1) + free(s); +} + +void showinfo3(t_varlist *vl, char *temp, char *print) +{ + if (vl->fractalid == 4 || vl->fractalid == 9) + { + temp = ft_lftoa(vl->julre); + print = ft_strjoin("CX value: ", temp); + freeprint(vl, print, 190, 1); + free(temp); + temp = ft_lftoa(vl->julim); + print = ft_strjoin("CY value: ", temp); + freeprint(vl, print, 210, 1); + free(temp); + } + if (vl->fractalid == 5) + { + temp = ft_itoa(vl->power); + print = ft_strjoin("Power: ", temp); + freeprint(vl, print, 190, 1); + free(temp); + } + if (vl->fractalid == 9) + { + temp = ft_itoa(vl->power); + print = ft_strjoin("Power: ", temp); + freeprint(vl, print, 230, 1); + free(temp); + } +} + +void showinfo2(t_varlist *vl, char *temp, char *print) +{ + temp = ft_itoa(vl->csha); + if (vl->cschemeid == 0) + print = ft_strjoin("Colors: ", temp); + if (vl->cschemeid > 0) + print = ft_strjoin("Shades: ", temp); + freeprint(vl, print, 110, 1); + free(temp); + temp = ft_itoa(vl->w); + print = ft_strjoin("Width: ", temp); + freeprint(vl, print, 130, 1); + free(temp); + temp = ft_itoa(vl->h); + print = ft_strjoin("Height: ", temp); + freeprint(vl, print, 150, 1); + free(temp); + print = ft_strjoin("Fractal: ", vl->fractal); + freeprint(vl, print, 170, 1); + showinfo3(vl, "empty", "empty"); +} + +void showinfo(t_varlist *vl) +{ + char *print; + char *temp; + + temp = ft_lftoa(vl->xscale); + print = ft_strjoin("X Scale: ", temp); + freeprint(vl, print, 10, 1); + free(temp); + temp = ft_lftoa(vl->yscale); + print = ft_strjoin("Y Scale: ", temp); + freeprint(vl, print, 30, 1); + free(temp); + temp = ft_ltoa(vl->calc); + print = ft_strjoin("Calculations: ", temp); + freeprint(vl, print, 50, 1); + free(temp); + temp = ft_itoa(vl->iter); + print = ft_strjoin("Iterations: ", temp); + freeprint(vl, print, 70, 1); + free(temp); + print = ft_strjoin("Scheme: ", vl->cscheme); + freeprint(vl, print, 90, 1); + showinfo2(vl, "empty", "empty"); +} + +void showhelp(t_varlist *vl) +{ + if (vl->fractalid == 4 || vl->fractalid == 9) + { + freeprint(vl, "F/V +/- C on the X axis", vl->h - 310, 0); + freeprint(vl, "G/B +/- C on the Y axis", vl->h - 290, 0); + freeprint(vl, "Click Set C on the X and Y axis", vl->h - 270, 0); + } + if (vl->fractalid == 5) + freeprint(vl, "N Increase Power by 1", vl->h - 270, 0); + if (vl->fractalid == 9) + freeprint(vl, "N Increase Power by 1", vl->h - 330, 0); + freeprint(vl, "Scroll Zoom in/out", vl->h - 250, 0); + freeprint(vl, "Arrows Move Around", vl->h - 230, 0); + freeprint(vl, "A/Z +/- Iterations", vl->h - 210, 0); + freeprint(vl, "X Next Color Scheme", vl->h - 190, 0); + freeprint(vl, "S Shift Colors by 1", vl->h - 170, 0); + freeprint(vl, "D/C Change Colorscale", vl->h - 150, 0); + freeprint(vl, "P Psychedelic Mode", vl->h - 130, 0); + freeprint(vl, "H Show Help Screen", vl->h - 110, 0); + freeprint(vl, "I Show Info Screen", vl->h - 90, 0); + freeprint(vl, "1 - 9 Select Fractal", vl->h - 70, 0); + freeprint(vl, "R Reset Fractal", vl->h - 50, 0); + freeprint(vl, "Esc Quit Program", vl->h - 30, 0); +} diff --git a/src/zoommove.c b/src/zoommove.c new file mode 100644 index 0000000..39e611d --- /dev/null +++ b/src/zoommove.c @@ -0,0 +1,131 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* zoommove.c |o_o || | */ +/* +:+ +:+ +:+ */ +/* By: houtworm +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/12/25 11:14:13 by houtworm #+# #+# */ +/* Updated: 2022/12/28 23:57:56 by djonker \___)=(___/ */ +/* */ +/* ************************************************************************** */ + +#include "../fractol.h" + +void justmove(t_varlist *vl, char dir) +{ + if (dir == 'l') + { + vl->xmin = vl->xmin + vl->xscale * -1 / 100; + vl->xmax = vl->xmax + vl->xscale * -1 / 100; + } + if (dir == 'r') + { + vl->xmin = vl->xmin - vl->xscale * -1 / 100; + vl->xmax = vl->xmax - vl->xscale * -1 / 100; + } + if (dir == 'u') + { + vl->ymin = vl->ymin + vl->yscale * -1 / 100; + vl->ymax = vl->ymax + vl->yscale * -1 / 100; + } + if (dir == 'd') + { + vl->ymin = vl->ymin - vl->yscale * -1 / 100; + vl->ymax = vl->ymax - vl->yscale * -1 / 100; + } +} + +void moveout(t_varlist *vl, long double zoomx, long double zoomy) +{ + if (vl->xcur < 0) + { + vl->xmin = vl->xmin + zoomx * ((long double)vl->xcur * -1 / vl->w); + vl->xmax = vl->xmax + zoomx * ((long double)vl->xcur * -1 / vl->w); + } + else + { + vl->xmin = vl->xmin - zoomx * ((long double)vl->xcur / vl->w); + vl->xmax = vl->xmax - zoomx * ((long double)vl->xcur / vl->w); + } + if (vl->ycur < 0) + { + vl->ymin = vl->ymin + zoomy * ((long double)vl->ycur * -1 / vl->w); + vl->ymax = vl->ymax + zoomy * ((long double)vl->ycur * -1 / vl->w); + } + else + { + vl->ymin = vl->ymin - zoomy * ((long double)vl->ycur / vl->w); + vl->ymax = vl->ymax - zoomy * ((long double)vl->ycur / vl->w); + } +} + +void movein(t_varlist *vl, long double zoomx, long double zoomy) +{ + if (vl->xcur < 0) + { + vl->xmin = vl->xmin - zoomx * ((long double)vl->xcur * -1 / vl->w); + vl->xmax = vl->xmax - zoomx * ((long double)vl->xcur * -1 / vl->w); + } + else + { + vl->xmin = vl->xmin + zoomx * ((long double)vl->xcur / vl->w); + vl->xmax = vl->xmax + zoomx * ((long double)vl->xcur / vl->w); + } + if (vl->ycur < 0) + { + vl->ymin = vl->ymin - zoomy * ((long double)vl->ycur * -1 / vl->w); + vl->ymax = vl->ymax - zoomy * ((long double)vl->ycur * -1 / vl->w); + } + else + { + vl->ymin = vl->ymin + zoomy * ((long double)vl->ycur / vl->w); + vl->ymax = vl->ymax + zoomy * ((long double)vl->ycur / vl->w); + } +} + +void zoomtomouse(t_varlist *vl) +{ + long double zoomx; + long double zoomy; + + vl->xscale = vl->xmin - vl->xmax; + vl->yscale = vl->ymax - vl->ymin; + zoomx = 0.9 * vl->xscale; + zoomy = 0.9 * vl->yscale; + vl->xmax = vl->xmax + (vl->xscale - zoomx) / 2; + vl->xmin = vl->xmax + zoomx; + vl->ymin = vl->ymin + (vl->yscale - zoomy) / 2; + vl->ymax = vl->ymin + zoomy; + mlx_get_mouse_pos(vl->mlx, &vl->xcur, &vl->ycur); + vl->xcur = vl->xcur - (vl->w / 2); + vl->ycur = vl->ycur - (vl->h / 2); + vl->xscale = vl->xmax - vl->xmin; + vl->yscale = vl->ymax - vl->ymin; + zoomx = 0.1111111111111111111111111111111111111111 * vl->xscale; + zoomy = 0.1111111111111111111111111111111111111111 * vl->yscale; + movein(vl, zoomx, zoomy); +} + +void zoomfrommouse(t_varlist *vl) +{ + long double zoomx; + long double zoomy; + + vl->xscale = vl->xmin - vl->xmax; + vl->yscale = vl->ymax - vl->ymin; + zoomx = 1.1 * vl->xscale; + zoomy = 1.1 * vl->yscale; + vl->xmax = vl->xmax + (vl->xscale - zoomx) / 2; + vl->xmin = vl->xmax + zoomx; + vl->ymin = vl->ymin + (vl->yscale - zoomy) / 2; + vl->ymax = vl->ymin + zoomy; + mlx_get_mouse_pos(vl->mlx, &vl->xcur, &vl->ycur); + vl->xcur = vl->xcur - vl->w / 2; + vl->ycur = vl->ycur - vl->h / 2; + vl->xscale = vl->xmax - vl->xmin; + vl->yscale = vl->ymax - vl->ymin; + zoomx = 0.0909090909090909090909090909090909090909 * vl->xscale; + zoomy = 0.0909090909090909090909090909090909090909 * vl->yscale; + moveout(vl, zoomx, zoomy); +}

      w>~3I1=ei5Kl!UCx>{ZAeb( z-lF@@%*Fz3=7n8;*!EazvLAgr7r!U}FdZ7)HaVU*zVUT_`wKM5P(|6eYIHq89z|NgJ* z!cLEKjrT28p-H$*-MkE?RaU`WkjgfEB*% z2>m1>?Jk5~d-qwPT;{W7T>4%We$%8#(q(W}%= z_RORmobn(u*VR$j>;LguL+B*5598Ag`sKewN%`SWz&GD5e@SY-&x;$o3W9!O7X@`n zG$cQlQs1Z1rFhmg=Ea(w9o@k6J9W|a%Lp>06i&A%X@0mw2`_XtT^!mbs=the;~w!1 z-3G$~=~(Y#U7mRwcKiwz?dw^g#O~sh>ijvYTjTw!Vzw+$g|x_yvP>1)s`|uwSJmf- zs!!7oB~_R&Q>T!ce!2K_O40i_3EqS=Y5YLOPA# z=+3`~=d5q-H!xWnzPp8=FVCm&AAAer0@p>CZG!15%#*kXzMVS<*M!%>sH}U?Ab~Dn ztig(4cvXDRrE#>MLWgNob!)Zp!>_D9+YR98YrU7;KdrmSD$Q4~aNJ`t8FJEGyygFP z=fS00U_FiIpbNCDAEFVdNyS#^;>l&p?kuAHAWHzzk^QV#&yqs`1%0GO=)9&~OT3>j zT|21g@UBliqQ8A$g}=^V=h9+yvNmmu+4xoQ@t(R)b!MThb#T;xFUg0#JgZc~_Duq; z^Cp}Aw(jkC12fa#Hi0>a$i{8d4fcmz(sJpkvZj37_)R@YaY9fjj^Jf$zg+(h*Ammo z)!HTQMPaS!QtoI*IUDcG$sAY{$sAA6-CbU_`rvQdHx@Fr6F<|iezQ0fA- zPD-9%kXju$$B{lrXy?tO^ zCqsQ5wo<}mX8DpS-`kz;WE~V6e)-IOu;$Pe&Tz zTckVHc&fBBgYT6^?3tF7$|5Ir)c&X=a{t}CrAQU*qg*gm+U#H3Kgrtkj-^X~)C=~{ z1~Pc80Sw59&u#z#+btu+RdV-IH8Ja2Wk$Z6z)^@&R5gMWpdx<8eGSndNtr0UPngY9~>(Y8G*6%(6{?b>`3--l6hj0yq2&8>|aGY_u zi>=J)I^B|>sOmrFu8by|M^%=_kZ)Q3VkSO2H5~nbZp=|YUm6KK6b=!nWnH|OT0hbg z7{Yr<*t+-+Vnd+&8hjBp=CBaz#S@?10v&|w=mj-V8Aat}qROM(kWTMl#c{ePzk(x! z>G&WuDY9XZsUN8vLJW`owS|Y~&f}&NxkfsP+>lKyC(DL(`&p5kDrOp)PursL?Io6k zT&1@~+g?6CAq0#lNwCgOXdNm5gtcs#51^nh8I3IG;Z7!CDJB(ce&>n`&+CwEVI`9)Ti=;abfZuYc!XgH6h2$e#GuPN}L3CbO>klrCcmg2SbqEKNiV z(3Akd;gS*N+9IhTM!i@#eaWFNf0NDB7-74el4B&9d2P&jiQn$i^_sR*C7#uFnFl>< z&E0KA-H(zX^B|H4ABnsL;p&PR$^XXl%6vNdS%Iy@zFT=0g->u^QFIJ7``432wJgK1wBV!m!g?Gve;9JzdX+jGeLmNEsEZoA&3BD| z``Y?Ex}Cq7{(cjw8#dN-sAD_PtVKSJR-~qPy_mTBIMgso@8;=eBJ#ta21xah61c!x z-llg|!&dJ@XL}m@oWDAE;2&3+cR=&}v@)tmR4r}eB=V%k#*KTVc=nDeDBEq(B=Hy6D+I4haS=THDJrC+Fkh&8`SgPp9Wv;a)y=k;AH$A-M=M zhg8-gddNz!L58&v;F-U_{6HNdBC0q*%iUtxd$N4X1Dv)QO$i-6s5p0+uuGLQd1Ly* zyu|*SV{VKaIXdR)s_QsT;k=5k(YE1RKGbcyzDZYy7(XCRAGlz8MT>{$_k=u2{D|bJ zV&GtX6K}D~tyFK1k(qv1Vu-ecsOE83Bb;GLk!qbm`h&{+1Tps#iCVX*Sf`p3XB1(* zRp^XblEs7M{08Onl(Gk}=|RL2UXj~n$C0!_>j3xwewi}!zs_3mR?379_5kq%r~bkV z@#6#28`c8u?!McQ9TM+m+BigUUzc%d#8|hrR)4fG&FSq@oxHB&VT$~uuH~BdLMK|8 zO>Oa^mp-qG^(4FH;U%K7Ewx)~NoGHVR92WZr7O*s^c%Ar4p`(}c;J73@s_X>A{H9t9mzM0il+k;Wo6Hs_+6@d^=y?A} zWg1Q@$6H@f^`R@d&(`s~;oLFJ)`N;|rfy|^L*An=+GCjy0!37{`k}`TB4HS?$jtLr zs`mR7)-L_P;zY#dBs2i&Re8+v*#MBT<>(euG0hmcv?xW|`WULSsj|OOjVxWN)T7vA zNrtzxi>dR-hIErVPPt-9Ql28t*rndtNo_aA6Z0IHzf$l|b4}v{N^>WjW?Bq4=2km2 z`YSV=YnPt)I24S8Ns8`QbA;42s~}(3H^;EdJ+Rd2LweK& z22P4c+)Z)bZDhnaUW`r{%$Pr+@3Y~aUhbj;ob0z2A7dyo<+=9I+?k8L6djAoTxrtx z?^t-uZe7?r`HHOs(?f4VuOp^RX!Hxg^m(&hVXwkU@556ABZq!MvAxD-jY|mvI=Lkt zWnQZFPBjhb&h7b!M=MLFJY&r)dQ7Aq(%TQcAa{~*BWE6`HAZF&c)i~hqdnmsRrfX| z`${mY%Ja;+>ztz-omK1Ci<$*zc9)VquOjIa9BN-vcJ%n-N|@Ol{`?V)j~dNfzuhkG z^(H7uTkN6d`d0Gi44-e&*%*2Pr@Ghg@!0T_)`}BrHde-4XC1xILOO{uJ3@$!ltHJQ ziJTyx+cNMlp^bA6&QY^qT?mRN;&c80Fk)cFtEyN@^xP9GPXtOf*p=uZ-m3$!^mn^R~8q zqcS6oZd%XPQA?BeNX;M-2}sIvuzC;erikN}Drc*Pyb56No0kIg{&2oMTYq?A;|5+J zZd_cu@4WOwgqHKVfVGwN=T(D=2~JhB1UCgyui1&^yW~z!4mlFT4c|tl_g|fl z8I5$#o?NqT^!h%z-y5)&F$V^NiDz8|M~2uVOjnJ*HE`Kd&lp=rU^OJloV! z*{L*|Z?Lg7@E1o}G){!_2xbv~?GN&OT`4nJDHG&{?$9V~oCjZc9em+yjm52Kn8Iuy z4;9FIYDe5P57uM~D=ucRq6de>+(+itc$)93>zlT0ZINGR(9d(o&7*E`ilDaswbJoX z+RKA`Ip#M$x?nubG?vdNCy8C>aXVH+G0c?;2#3KWz(`KBXM8*4NCY=Pnq*THdo($r zw<~8IoNv!zGMj&cr8Q8_0_m^_WMb96|Iye4XLDLSF!Lana%ZgGtLA9|n-bk%?_xaZ zshZQK^s&yk5h#C7ADqC!ezA#=1{}4N)@=z zR=u!#A3WZ3_Y@fIe6*-t7tV_*`w9TBkCF*(2Jnr>J|9NW z!x?%TCZR&-di}dUuxa>q2^xq9q5?t3f6gXn$QowZ4J|w_RXGq~+j7k4wLSs2p`h3K z7t;*!OHCa!Pc@ZDX?A^3?tS}h%;ok;bG@#yvWFu_qPJ~5dcSHBVj>@K|*e~rzC??Tk!S~ zzk-E!tsb;P+Dn6m4-ZBbTL11#6J)@yGO)^how;ntb;sH&$7m_s&cndg3e(}xvL?DY>1LaO^@ckXbRz%7Dq>*-jo1DY+bk<66pVj-E@gB~}9;xxAuytDk ziAENwq0~Yn*t>A0^-|;^0jnD$*oYc_2C{?dez37F^VYSIFBA8g$*;3_H|X}>(tYals?MBE0=G*K4o*`tQ2sK`+1l#ggYAmeY_Mvg%ni4l@AO7(g>UQ`W*0fks1`bylGctea^cxb%b+- zkTs|n>Sx2dN#h|2NSbKCC~XPqbrf;i&#RJ%ol&JFZ|kQWuJ6`0$=Y(wb9>DkD>tj- z^D1TX10FH#d zE8_V%k$g8sjul zmrS~O33_3%`%eM-E$zXa3z8hjO>l$r?JAI%?d`exMnv6++((;kG+dA!B_?$ivj?^@ zX@VnBp68wYa6i*yygZJY;wpLRnM8mIl(s=y_BXLDH+VPSFtp*e9+FE^axck{m!P&< zu)6C6u6H?AR}3L7c9zcGesk8%M>C}V_Ta#BAe0KOkvGF2PWd4p#Ua(HBa2(RA_$hQInThQgpVr zeVDdijOMZseNRh?hcRbP=rQTH3}@Aan>lCDw-&xWuUze3rkz+8$$E1iPD29V0ACFN zjv%a&Z64Sd5qxrvSI#;N+US?_zJVE0=jTBK&kScyS<$SZ!nxhu^M6~svUvLlrF zYkDNN0{-8EMR|4|;9#+0x8W|f`ZYKu*~H8WeAiNaF*8uY1<0%z$M@&dR?8@!8k^MC z&B1@J#{n%Bf>Zg+@@3Sre$P2N_(b6_F z;h=~BCkRwvh&@uFk69AzA>KW8T>#gh-!vLc!Ru$@aD?qIo(`*uBv1>L@>EsIIv%{fFp+(tz(dCxfcN4{Nr&@e=w4acGia!|;@6Q=OlyZ72 zo#!M76uIATO|-n)K0K0c?>aLg$#kScoQ>4=I0RYf7`(hrzd zwgS8n+yK5A*$h8FbVF!;YSK+!-nFOmbEFlVoT2 z(TLdZsFzYw-r9FrT6%{o3}+K&Ty?64-$fM4JCc=&ZWlXF=qrX+g2Jxln<_33O)8+c z(`R1f2Wy+w3WSdONafhXEW|RKvzuy(1xgerUHgx31GmY-q7XV^h4 zW28m>MAN7i@7SIQW!qkXksm2{%RnB>KuPU{TBhTnQ2=3~ma311ch51cw5! z2z`fEq>03dJOyMglljK0Pn{A_wG_C?x$IgUtHS#-O{ZEbY2xnpKN|e&$#8=8 z{t^#)M~ks|nqt{mM;s-uWY{gE`r?C}=@Cj=3Lc`!r}HseQehs9XVszhi-9 zs9$)2b;{GW4=1Nw63bJt%QthjyZXFP=q##r1)?jxx#9*43k?r5C1AD+3Nk^?0aIr& zg0?)y%{SKa7#Zql4M}9B@QOLm%R-FQvMc$QIJJYyIAd@&0DU+LK>p=79EX(fEC<}!K>uSb!pU&ow%5xeyaPdtP*#R&Q?EpYorOp0GCjBeQ&pV4vSzBe* zBAdhkmt<4Pl-wkGX1k}rzD&2FBGu=bi74-Ij{4}BW?#>F>#XGKI@F5SN*ZPE4TOcp zL{EdH3x!64=HcFxe$ESpp$>*br_ZZ!hVx@jW?nqK=KeY-9C`=efD{R=ID$@t5WZR< znjthjl?NBkvYF&^Mh`f>@ppFw?Ct0k)jFfOPG>m6x$kGLHjHR~tM%mVP91@zlyYMH zi4U=*X;H0(WK-rxr6%Z<*Foc?oSDKMVbVYCs(WicL#!=8b1{oDdx+9PG6^hyA6ru~ z28Rs*WWWm_zd|3sa>msz;y0+K!_j)}I#o3L(t7hV0={Ra*U>!%2(db^Tuk{QshmA~ zlZ&;xmcnH(dpkYvqIOw^+@4&buRUCrrmJp=FK=&E3h8*8nsZTmhr)5IrPWYT%8qP{ z5Pf6|0N@hKxdg#>f1fN~E+Ab%6PsY+_R?=+9N+zWnM{~-{D#lsi#imuofw(hxU_o7 zD(TJM+)T0B#SlpYlXmHnN8%QGjs}#WQf-2anAMp@XLNYmnm8~^n>?}@X5mBI zWKUW_*~DpZgb2DpDOjMKSek%szi2{OkRAXj+~6QfT~tK=R^rwFK}p%!Or8s1Ho{(kQrZBdE;T*gO@^Wh+nVg0kD4*7#JRu|{g5J?^z0lxaRMl1aHB2%*GCkK| z&D^VOiM6Ki%b+SDmwOP_*IUppSXo^u9NcHoA{K@X>5@q2;is z8=-utnJL>7?+9(Zs8u<%$i}u@QSv_P_TB1&<5<}!3Y3d{AUsBXY(NS6M1%laj2IH0Zys9p{UhnR-;)7#W z88e-}#=ly&d^pIw?N7TJJ40w+q&Z1aNL9v854;EF&5!t;P$D+I$$mFoN&D9YnyP)_ zF~tW-?cOmyLuSdb6nPn&63y6{5LaD;o&;rEsQ?~6TOuRHw0qFgyflP=OPRQ*?+5N8 z@k{L)AD_Y0?2&I*;p!saGIDJFnC7gag1c%y<>qLsQF4J^nh*7#*+2R1c9P+n*Ub^_ovl z`u=8ocXE5gh=9(NT?V7#s{h9ai)2s9pPLKZwYV~B7H?JcSj-KT*i9e!Bz5TpD4&je z`B1Byeq*$4Lw22Vs-?2si1E$AsNI*ArxuC}5q?2}=&SOvoxe=No<${QoC&e?ag zK`6-gcc^z~CoSGXmJkb#ki1qb!ve||_K0&Fy{Or>{(Q&?YEf1?gWA=u1_7>Z(|o?| zeqQ$ThY`o=&OzD*zV+&($%^x_uL!a67l)&*$|QfB?sqL{xsvk6b|_!Wz5OGPm>sL- zh``S1IZvNk_@~|>5$TcR`vT?u3S}sV1jB$A;F%bElT)=g83@hmQ=rQoYKss3fn`pj zPVhmmPiET~$akO8dK}DWl-NG{d6g_2oC?4?CKY_Ue<`Xp`(;ojVal@%@-jh}@Uu{y6LuVH zefXtMv9Rn`$%iNFN>Uw4LP`iK19pYVH!Lo>k<8=j%bveT&q$Z9xI#%P?v1Ig+qh{+ zXw5-tW4?Sr#ez6~(`e3vdu6r0W>%HcZkB{5lT@j@3~hnvnLuG>>q{5}j)H;t&P(b-P0IN#b?Xu-6gx}HFv&yJnZQWDD9AlDC` z7H%v#!drR!_PMGFtR4qi`Ul=c?V|S>T-+F%dponDC^F=2)xo(t9cs_hBaXx{3tTVf zs5~#OO#Wa7XDsg?ZjJ5HXk~tCi&{+2D72$$@2?1t?Qxr^$tdrx%JG-;?aDacwvX}w z3K2q~^cz$ZWsdf1zem#m7PD+LK~}IUN~TgZ9;AReltZ&@p^F@2zoY(x!spj>TqNY^ zM;f*y=oE(4B)7UtwAB|mFsvjAl#Ou=G1eMfvso!Y)`J`N#*kYMq}kQiOz&&=bsHWK zqxI?gy)Rb3IGU^Z_L>x^r%xW54E9P7GY3Y&)(4DvBm`Nho5Q|}`3*=8m>{ej;JAaZ zhvqd7ishAxbbN7C17}d=wCtj{Tc3Sg1>sz;&L_qZt&TH^A3m>&Hu#NlAue@tm_E0$ zdGETj;;}fcw%l??MzEmU@IJ#4-+7|DO$pDKN%ys634t+V) zh``^LlSv5Xcj3Hf7lKU8+5TBm$o z^}>oYThg6E8**J5cC)o|zrL|AX}z?n(2khGnu1uR{F#m`)QZtOJ<0xCnau$PnzTG&qwSV7zW_Swmd%bKTq;$yk?F383Az8+|)9bw~=7%zk+(`J3^2HHDCiWv9j}$+>%A~f1mlIFW z#T=w($ge0Y2IX{QKxt52X1k;tPt-Bn^m573GF(_TE97|zL|$DY`AV7iBcE3})|rX= z-B$er>XcAM2n-x>4knMS)sP=h;d`Gj{_Y($=?9g2yDz|HZL(ua*gBrq>5;Ng_}bM9 zxoIOt#b-nd*H1N*LUo@~&8XCbQ@Esbdrxn){-1Z&=IHKx0+o-V$CEu6Ou0*Ex@%ZgAJn)1ee8xH3ti=&uvUf%&*U{cAKZU~Q zmh~d{a_fRrvH6${j2JTP7EqN9V+O|g#Sqyz0Amhzsk~jr%QwFdXM$O!CWz4?OQWHnj9fSA?&$j`F z54s{7={)zN&v(2q@}$&NH+8jZQ*66vseRn9PeM0++90#V-mqVx)4}Ko&DV9}*Jqu@ z-6c^2OKzva`_3NseeREGrHlXK1}lh`KnGBY2w6!HKB|m&{tO)8@S42gmV~%w*>(B+ z$9MBhD?f3chnLe=CY}VLKnTIPSY1kz@?e0NDgNU8tN_sLd&R_GsL1wQZ=1DNTjEkjj9q;Ysvk?$;H^w_?k9y*Qqhn~X9mBMHZbPku5TjSw z^@g|S=Cl&D`c6g@v87g|q)<)7TLlZ_%TX{&02kqJ7hS62gmY%5j-Nbv@5h?I(K&r#$(GGzR z9nX|gcN>Mgm;~Yh!aNxgs^M5~tX4+o=O1l*r7$zqog9C;q0#fml<5M~%v>B+>kgFc zGH7hiaLC#!qG}2{3C;mq1cNz-ZKK$ngWY49LHQTvGUL={5NVi=Lu=H=)Z$o~hEZ5!|kAK_qdL9GT_fvrZ#QkK~eD-0T(RgrlBN>N<># zVa=vETre3cGQiR;{);f#8!&!@a)MU8RL)JeK{?A~*9F2T6E&aI1-_~+3f@Jl{fUtm z39bF1TkI1@$%-GcTLq1CIqVopffmFH5uyOrLYDg#HbB3cEHTQOQ^jk|ifMR83y~Z# zJwLzjuaZW?dd7TAZhMS>d>^T}Akx@bfKMro&T=Do=MnmgIVkGYOx3p+U+k$=)qjtn zCj_|ui@;Zre?cpWU_JOK7+-N!qmb-AV#EQ>LgBQ=Sn|kkM3ToFB}dUq&|Y^;^~Wq> zJB!M-GY1UY^G8KpMg)MS#Z4f71jkq)ekArZvGP)rRG?m?&aK>0*FKWpg(ccMr-n>h z+oYTeZG|19oeoje7Sx&6uB2n$?X~vC+9GXLgP?xHYAExt{vF_rPs&QLjiO$dUOD)k zU#Ai#yYH5K{7f&8@$NAp!_AZH^cQx$fHN%n+&0=`<1pfA0tV~0>k~9fzC4N!w186{ z{O zNXWA{GjUksYUtYx#Q*B#Be#7D^V-ai=-+bf zEwo#uB9^E)r>aKgf`Cog?fTh*^L>}g`Kb%Bt=rm6>}>oWh*YwDGdpLq{S!>2%2^Bv z&(5K_Y^HL0@4jGdd-I^+uZT{=P^|ybNZXT5EV04xO)73I@w`HpA4qxJsxaN1lUgW{ z#^^CBlW*rtyS@=h^zF6xo@&ylTpBfP9UGyf=HL}B;&!)hJN`J3e9{UQhhY+*qt%7A z7TB6F)NddbiACfpyi_R{YUWP)DIhLi`gx-g>*We`;16tXT^wO@D|M1zu9bS97(nW? zcg>8Qs<%H=%aYcuGKS3|_$J-Fc-!8Z7?p;mK|PaQFASWFr|df@J~wHG`39Ob&#vPk z2;U1v$+0r86@oI}!HqnjfOu~N?mHTRErJL}D+I~La88CEM9W(awC1z4K8blvcf+H>6M zPt^k!DQrGF#a0r~>ObHF#$zU-PiXXI&h?_k>YbLHA>FfQ3J4MXyKZI( z^?O?rx}QHgF9hna;*o*fFxjGDmY;>y;e^mA`C1HOdso}g9 zYu$3y`}3;4ph2^aPSf1h_+9%m`3n?gA{?V)`J-p}^68y9nTmqV4Me3L%XhwG#l4Zv z^;b&ziIDZ~(Isp&+up*ruyos~9yTHmR~oec=B*NS_wo50zLGY4ec4FlJBDLKYvVqs zfI^Oroe2ifK~W7zjcrD%>Qizs%5(Uj%b}Wws@f*4(K$W$cE6S_=FZKgx@(&y$N0(h z|0^kz=Im}goR}3&4@LO_0Rv|UZI&SOufD%Q4H#>C^~7PTwnl0t`350>LG-oxGs z<-|vuuA0zw)5e?{qc5cL4UUbpgnIW`#%iAW1z+2-`L=Lkre z_qUBbe@IIp7Pwi+rS7UBRY|Vf)QEgES_4H>g{bA-PNVlCQtDkEuK1dyW zcC02@UZC@-gM%zx_Ec!=il%|r-RwUE^=AOoK&w~|zHe`2U#>OJXFsgf$PQUHv!dE+ zCrPEd(v%{)Y04f$l&5|krr)?2yN3LjjP-1o>d)vS-;w%&fo z2-kMNws?u^eC$ITBQ-~H2H%!hF{ZED#F`x$e9+9WB0MU4YtbWeIgy?%3jFP-Y@V0W z@}y_)rcb9a6x+?+n|)*4-#iYKnZFMUJ1~pL2|(F;Xk*osgRgqXvcG)H5Nzgsju2tP~MpzH^maqTl6jVOtndn=y!N(VkbE+Jz6tdXuEfw zqhS16cZ&lPkj5{Gyp@k*}b;)7d zRrHWgii+T*>XWKNGL=6RRUJY*(_w=+vl@c2FvB9Tp3Cx-hmE@4)m09u?weA^A`P8p zKIL@ghIL6E?@(LZ(r)dhkrRG!Gvv|Ixqr#6V#VL9nQ;h?E2@6Q#Q7W1rv-44ngcg$ z*GuiaEa{(nW4h^dh23lN2k41@b!YuGAbzBrfR>q<4#JG`^YYrUnXUKRP+b%pmj%#@ zkbb`bssvvTWt(ZwLR{o4H-Nda@g~`w$?OR9eCALMO|6Z>i(;Q-iNa9| zJK-P<)gQBepEgk-p4SAN@dOvzUK>lc*2!J6F`S7hyK>ap{U>nlnwrKHi7=9IQhRoKXSZ6-{JryHbApCT{1vwnCOHVgG(t|0 z`+JG*_NQjMtKpmxXz>j#meD7FUd6=)9}F@_tPj%w%Y=EsbkeW%t&#S7O?L5fFKy;5kKqnv_SgdXI^M8(&ejphXSp+O%1@QA(9xms=K?(EJ+r*q`-WI8JnqE>XPaIW{x|d0bl^Jw<6ss81Qez=> zlzP2IueIi(rtDC@Tz2Nwd@X)lgbm55&QiDim<2B0cqy7TtZUx+&>`?OHl8H{%mA7N z6e2_TncyL~{~c^bS$Y<#1L_A8fwTa#1Qp7jqbNB7)F#E=p@s9WWF8WBuC1=2h#8n3AWZJ`i)FHA>9$FKrEL@eHP*RC!UQgj=sB_HiO z0iDMmE}28IZir*@^qcXY2bNBQ>WU{P~>^7bbV>?{(LB0iE)scRC zdeU4xZXI=FkDlRr#V%75kv6)Q zw<>KPFSjJJQjwt8>I&lr{Xp6RX%yt{Q93eP<79FSeGlB;R#Wx)Z zNf&vg_gSM6-`e>^^tn0QAQR*P0EdUY$}RUZh*v|9C7^i#FsM2Nmhkv;XzDU&EjUx7 zcT}h3P*jESdf~3o3b#VrS)0tRvYR1s+jR4Xw&v!wo{oCsa<*C~hxNk-m;2G{T%y-q zi53IFz^SQB)zWiS(5wsIc}4JbXoj+qH+ZeRHCcdT9C&Iu+}>6(^G_ z2({3E{9ewmgf1nU#|$r0xpeD?!%{Ti$>1ua-~W# zWN)l@n90}g3bMIKI>B$r^7g2lW|(d1Y+D*2`=*7oQ{6bYCbgBBqqtGG;|{*{w{|8Y z0jZgbh(3ooMIA?$j2HJa4)rG?|G=JCwxWWc=mmQJM9tddhcozCbAIom2{NqN_+b6) zH%?@~v2b#G8QyMr-QX72{CWW89JxC#p2~cS~Mt>0Om12ydhe&IaemNtVojJ_Fp?V z)K7vo^&(v5dM_l+#We-$RuPEKCcR+=%Bu+vJ@|ESY$I86eXYGlyW^O?c1@Cv`&jXz zv7$$@5z{+IUiZQ9#-T(Uz2AH3pRD|XV2}y>p;z$lIg4kfteQY_k9m;-FDvmg483^g zzkl6+!@TO!$j&O^J-%#~ajps}D7=k6*Ocg><=Lh8p&yXjN6)wX8{`EVgy_(KAQtZ) zSmedZX~3pYT(R!*4fx-^-)SDU)GVKYe+itW7tI`0l(T;$nS+`G3Lr`~hsF*zfWRH` z3nXG*F695F_J34cSUOylxhu#6{_Np$4(Tvb1h7R!24LEPP;U>=5qPU!^d{{0g7@(& zdKSVZ^IVfX%ZvQGve2l(fSE9uslSe8`Tw!MU~l>LC#ZLkOEl8MtG9koec#4Ja|DNu zXJSJ@mb+}dz-K`QU;iWaRLc*yJT3%$AV?S|2!SbxbvO7w)ZM^50R%6;tY8>UfTCf_ zW(~W}jvxR1e%K8mVW@il>&5N_gtn!u{0sOA{97Tcd4wJ`b$~)Etg`yc3u>A4e?Omw z@*32<$wzoX@Xn$-*3bOg-rmA@zH~`MeQbg`Hwwe{)&G70Hh=}cm)?vpZY^NZacw_@ z)aaYtYG8!_%LThT(SASnKgGH$!In$-!E%+>M# zfZWmLkF^UzjX+Rs`n*4tR*2nz#S!6|~;Z4?|Uit!!O_CxdVP=L@M3TaRGNE!vTTo(j|n zZNNSHSGD3oyF!J(gO*_aN5zGH5xAmQH5ZVjZ65i3n&=6M6VPhRFdQ1_qmJ?D7Qq@6 zK`Sum9R5G4mk1ywJO+9K>?xL23llSXfoWmyZbAe7`-M$N5XWvbgDcYlcC~CEXh-p1 z<_Fv5Dr~~>`i!w2Zihr`wME?V!Q91tQDMqz9xs{I?{wf?1UPjd1GVA*Ibt1lV;wy& zV-s}(+i;rz6UDy5|C7$iusH`j89d$gp91I41{gd5b z)w{4$V9O1T*G9&Ah8l9#t<5uhWo8dIhMbK*{XsX&hIUn>l$^SJqnlsqWjLn;z900?Ay?D7cBeteyE?R?F1LlaAfdKyWAFr=)#(p@l zU(r-zlZV;TvMC9zSkO1K2D`>>WHW_(4qf9)?>ELu0xHs zmT!cXe4<+t67~4dm;ZDnAy$;Dha5LIiIXJU3fYd zeifcBG+UjwP2WTh_I^WuKLnr96`4JwTV6)MIRP-Mm;Px+lfDCI2Ed6KCi`Xkx^>7G zgHQOUCuL728-KpQC7NOY7y#41)6w)lO2RwtN$xc{1gBvjQ^o9*ZLMIbTEa&Y z<+OzVtLw(hbJ<6%#k@8=UB3VOxnIV*#lQG=KN1OIbVAk|klA>3tBcLV*% z3-y=f(!(lpba^-8NVLt9$Jz8rIIQWB4%o7Jzv&gF>qu}h7-w~930kJRN{N>q~9Wnb0 z9_77~pL6xY1EaWeEvCl*_;M!+@geqw*!2o`SjMjZ24Nb@Sk2}~D~P@Prdi zpug*>v>D$Wdfn6IqMdX%K1v}qLH!eP*T?$savr+Rsfq6R)aF4~B?i-)VzSUZCF{^? z2`8-NNBvAjn*X1bAL;%Ht~>7I_R3Ai>u%T13R|G z|Kr4~sfB#MVhwB-f@Xh3*OwptZv+zdvaVhBUSE}dtr6NgZWwvSKu<%IJ7$V+imy4Q zg|CI%_?F7+#n?XAX#w3(Cp_K&zf{n9(4>Uy^mAucdsaF0zr@1^+|~ENoh^GbWbUYA z`8W6R2+cqtWanV!B4F}guB7ik#h0HLtR39bYeY@{;lk+GSA<9S4()DHG{*k&pF%SD znFwl-`{!Fy$bEG?x>aAcLRC2WheI+KZkrC^t1dj>DZjJeIB0- zq}d^BgH1RJv_73Pt*_8Uv?hLs$c>e$L;OH;H5V!vJ=0lB&*=$rpo?9PJ zkLf6umm}LTxxzzD=@QM)($$V#|L9Fp&(;04CAm+%$7LDfjkeL;d-i#4cK!Jb0*qD!?0fRme-528aA6*^h^iTtbFILa~2E~W4sb@tc z?w+!jwYNXa=fN2x;3F6YCf-Qs=$u!+liw&Akk{sCUG5aG-a%iyw;>_{ri zKYj_NznaZ)I7Z}nI3M`L6(70cAfQFWaRiK*z5GpA{`P}!hydmr{u8SOAMuT}{vsR5 z0<=Ot<33wJfD+uz_(nT=->?VuYU{8a^K?82k32G9*NiR$r^^8|v)y?0RsSW$08zp{vtuW&LQtWsA_)<-W<2ySgLf zQ=NbB`DxL6qLNglszO*&r(Gk(nbEF08hQ3kZi;lcmK_>!jmJAXd%Db{#VzmiDo^xV zetWYS=orv1ES`b`6Os5Jh9qDn32l3qL*{TWKY%89L9S@U7UksRVU2SfEyxcx)(uOhWhBM~d%Qh$5z36BuOkT0p z7;zE#z;@ki0U;@2F!jY}zk#J$Sgit6WD}D=N74V~PbdUY`_H}#LX&UPBHwx}%=nOG z`0g}nhC@CsSVUat1Wtp%gZ%Zyyr1m%@dZ&oud1?Xwj0x)HhAV0Q0;mo;5j99dsH`# zLiH%;pWAQMYw?N5dNj7(ePSkDw~tZ(uQ>lQ?Z&2t+=85rnez`WlIQPbNToqD4fbh$ zm{1`1(7YU!gZV*gKDPNGql4xoY|BdonBwDo_pTCHJKBBxHw5~pA7E&`9Dx2Q4E&cfD-M8MfH3d1kqu5HD^yu3M$#qm+J%hi+IF;k@sWVP9KXNn*!6yM0f{i73q^ zG9-FJaUCSpYP2Qxp^y&25Xj*r218%u@P*z0!GRqTu+|0k^S|H^vM$Vszuo=?#er$YpT&W+h5@aP-I`-?d$uEjX79PDV)lx^I>|_~7w&Ty01Z~5B_df7JI42Np zHuYNuSs*zZ!og4)MC6~NA_7!c@;_ZjKQQ(9)=95u!^+Qo1{V%#d+y~>7BPH3jMZxx zayLA%G#2HPiX^-Vu&9~h@ED1lYP9#Z3Y6L>*#Au60^ci-S02gmyZ;P#%gtZUWzEqw zaWqS1-vvu9Iwg*RPp2(yYAJ6@9$tLVyZ?dLz0%SC&#Qv(^p$5tpN1oL-=2&bA~R$e z`m`$^eavcn=vi3j)JP34&v_HAp-?a%{V%+BhXegw`Qz1BAjEG5^a2Q2?k7QklPi=vP|&9a@;d&c|TK0SI1y#7MBA$tlhJ z9ddHsW2A{rsSwgVE&J}kM*6TxdUOBin4Rl*p<3{-Bg~~Lsgvu^+)met)0&@F*SM$q zJz?BfXRYx~u>ub50hX^w8^hcAsob0 zye+gSUT>QdA!L)4?&^-@n3v2zykNg@nql&TZ2FmGUBh%KXR(P(hR%-7HPMtzhQg(1 z-Wn}YuoW(BAEr_djy8y#!hAO7l9qLj*`}|%3ld#XIWvoWy zf##ys1=bCgO*A2WU};_3wPRL8exeQ)(D=e~A^TJDY*KGcscLcxeqG8T>yabz8FY%a zd_b0A`mO$Ms&j(BvSV&j4_(07%3yWO6XvlD-}|={G~;Iy(gTvSvr~$V4a+Ylm{M|E zUUVk?@b)Z(ZmXZ}g98k9>xeYKX$D`Y5Mn|Qp@U#A;Q_T!*##VI_di_AZv9Ux2rc_T zyqFaK{<0E}{yiv;(tkB;2en1)va8-M`>d$Nsg+hk1SM=Xl`cRVci;} z5Pko>WX+iIdN82cR!8b(==xVUB!4uGlUjJt+kK)_wbL?m!J?v%F&4O_nF)2&mSS|r zky7KrVUebL)aDAuDM23hvXLc;S$uE(`sfp%0xB*3kJz;IZq~8;*hKW`{$u^#^{)jB zVnhAB0^V1MxyHG-dOiF^@}^D;u3GFl7UsJ2(yOdxZj%*t?qDshdq8($;O!%2R)?}- zjDS;X>Wovml=|X@Mr*km*SC-~r;OOX8z!*4<%j3YVH=rr)0uASvqBxtyS2ZWeb*KR z9dkdN+IqA>?yDuB5F4OXCLyS58qFD$_;CGCF6Xbv5%zD)AeJov>pb!8%Ss@PTDkm= zECDZ1m&eQfNVx3KLabEL?#D@&QWoS($DDhmXDXQm+heE7xTB`Hl`3K-aH;__9ZT9R zih6wGUc^5dK9%1pnYDVgxaR7|iZIWLos-h>)1f)-je|bt8#13mTB$TTWxOu+gKs3I z`&Ry3)wHK>{iSiiM+-fxn&?X!ql)*S1{=Gyr2Tbh5%a}cZiI=_w`#_;!urppN_(0gk za0h&$+CQ;Gc2NK4zygKv>_8rh2C&M3zrOq_tBd9JVrnGi;gFGGAztaK>Y2QS?C460 z^Zg?kyS6u7bH+`!rjTBCHn0MRNIL-J$AnPT7D<@bk6}OY)$AP9Q2CsHlZp#>0g|3pb;es5~qb1 zBs-72s<2e?(ym<6pJc)2>9HeMOQTP9_)xrtC|%QpXJRy+6L_BCti@ZMjB8b9>60_Z z+FP3D%5T@>maHF3PR9$)iIyw1ES@3=gocg~#!C!_27|nkH03(m3l6MLi_S^|cDX4sDM^ugQSn%8!FtDF*@@+hKHZks& z?`xk+llynaU!OE4^ixzeeR@?Qu;!JIb!mLn=T-KLp?UO0tJJw$S6@-~M^{`vsMz!4 z+}5`q`(@gL!vmV^-1wCVvGtD5*9#}cDp{cq$9yUXKKv6yz)+NCKd-v!1{KqbJxP=M z1g!DTC_Ybm-U#j?#HP%=D&I?Wb({13)pyQOaMzsilSy3p3^@sJ@OvpKr-AM`AwBb2 zo?%Km=@oyTVb*qRp))XtYc}d-foK?XT#)-4`lzdm+?L5kJl9VM&SU+%8~)4EGI$GM zEL&E5F1v@-N~R8FT+sPtShE>a4TC!1K#Oa3o&hV&Xk8{RhBopMMtCFp-*59 zm`sVea(n@cJh$ofqA4!)d``#6#Dt*d#(NdBP4!BrELV^DUOtlfWYSrdq1fG<)74$! zQ=i`2RiR^{JZaIQq$=anKHaU+60iKBkc8G4?3$h*`Cd>zw!8!Ta`0 zH2To&l&{_VX!LUxRaV__iKmCM7keRl`*3Wg6~8h z#n1q{T4MV7HCBM{cu_|DfMCa0^%VMR0R3fIdO1$I^Kv;sBaE0Z1c&HeUdCBT$$TTg zFW;iW;jq6)#Rgw;-kN2a`4{sz&s?v#?{E#gUq4OvJ~Qr@PxTSkRlUpVZxEu~cm49I zr+yxn9bnt#IJ0%0X7*mATzSE^&DBR{-glsE#->-WV3$e96zgDZ{Exn@UnW(=M%~34 zW@~#tuljL>(sRdsA^UMsR|e@t+OWIVt&80F>89Flg)q>nXgKQVP7a)^fZ^nyjW;Nq zmx_f78Yo`)O6k~#VXa67&Y407&B1y##La+;kmN^^BLT{IAG@#>RnrS_eha!C*0YdwkwT2v?+bZb+Q zzPn!%5LTT&wGA>0{$KzAWEeK4a>2n8-~g3$76_!M^(4n5ff@k~3I_AYs2Ak2LfPEL zD;MDUrQk?CVU;a}UxvFlL5-Y1@{U$^VzB?RZh`HLWlvX=c9M!G@dR=^i|y69b=E(J zFeK?^lUiQy=uz$??p8^ak|6Pf5W)-KzuNid#4Bd|3M(?qx+&=NE$;5j$SUtiFRc`R znWEJjZO?I1ir0K!UtAp+no&oC=AT6$zy{>5z_(312oe3L02oE^0ET_>o`mcp*kiD< zoBIpPJXP$^fne`KQAO|+&w0>|eysPvu1^PepI?FK4){*@BU&O?`2>_;3)ZstPOPv` z9Qd`fLzic9cU=*kIPM1pQ;Xu7Ps{9~?fG+6d z`gDx#M0dNBF!0=Gj$FKZBQAx(Cj7cH_kY*7QAgMBI8WRGu>&Mqp+N5x==XN0uJo`OC=im$Jc`bx1UX>%DMSC<#}OC!nYjn!p)gVnhl3zWN zSNWm31%Ke%4He*_SH28VXVA7&_Z^mh_$wst%8#f>zx4_H8Lq^EigAh(L1=osWvV1* zGGmP0WYs4;jKVP7b=tJ|Oq}(nxPo1I@=o(i*Nw+|`SL_9)*DD|uMsRjK0s=<>jFHN z=0$H_*F$CzpCIkJHk@7Mb)Crm^q$vKsR zmugN9;}zp%+jh)Oeo|mI{}8dLxyHzXI$xY;H!Wp9RpK!7X)t%^d!{kdeO<;Inm`i( zz=EKChnn^&k{}3Rfnbkb{kty)Jpqk~+z)UMbmoNIFvxA7ZvIvofI5If7gUb~YFCOi zkaJmqWoD=B9nEboBn_vWx}Gt-^s=YeLUVVko^frj;(O8iG7~QMm2`O9EjsUdzTzq; z?s+Y&a*3Pic>+Fv!nP)2H!^_;W z?75OkW_@ks0`IgaNFkfnYs;sdx#EqA^P{krqGlBNMi!C|_@K!N#VP2)fpyZs2g;3B96aj`ofCN++0Amk%!Py<{f~-EUavLZJ3kE%a0=R}_ z+l&3cEwb)$DXg6;h+)jhE$;2ods=DZGiR&6hPsmSVp#_ta`j=hVTzVR<;cuJf<|&m zVUJ1H1Bf&Kfiwj4w0i`KEDcl+urISOvs{%eDAq6USyb$)dBEw`YQEQf&maBhLM;Nh za+KotZauu5==GW+-`Vrjr+L^)!qazHMpM2x*@)z8z;14>%{9UNBtC7zI7F9b_Ksaj zgvCE-AOFdyQ5yUM2vmkl07N!ez^tiLGc;79H~gFp9RLh~E?OlTT#R-ZZ2r#D+fR2_ zRMli=+JI&+Z3~VDlLMD$t@XTQGAjH_8LU$$4rVhenQID~gF^!!f85No@(k^_{hhVN zM%zmR3w)ohZ+m_v5`swRsLysLMW?Vdy=&bG?-u2;;yX+LH6UNiizo);2KPcL*RN5QImNFtD%yg@D0;Dh<5QIZ2&5AUzmz zbZAW2%9GdMc>>CLz;w@Zpg?cu)7?3FHCg!qSBCpFb=_ybID~bd6$Aa0pDf*1C>--V zb1;)}nOR;Xr5>A77Ah+j^1cUYWMq(CnjbZ+XPn-}^1gi#+6rRU- zzR?}uP!Cu;SO6wKDN^77LtT4y_p9>jLXBPj=GsVGfCk6Z%*75MC~2S}vwE^Ep(eF3 z)+RL2`?RNgK@vLI#%|DV!Z+oLBea}Rao6D*WQ{RjXBBeUt zC&MA@73#952j8C)CcUp%dtQH4q|fHlHB~W)QQH;kJ|u@kk_1OZam9{=6XV0?`-l7| zuUCE;qpUdLnCmzyIt@!{`CkvwwGk14 z8aKdV0deA2i^Jiw8%zMY0&)ic6)#6_q`|>hv`7Gwn~oreTfcjRn-w6it=tBReT4IJ zcI*X}Zpt0*r$yd$W5}*%;)Y}&wR?Tj27MliZXH-+TauCJ#ko$T7MFSjhBsN*B5j|o z`3{#gt$YoXaB980>Qfo?srUvn^TN*+NoE(VG?ZQ9ynLmnWtxbA9_CSZP4meu*PR)o zB=^23D0;y{iNnM=ugPLwVi<@j)tJT-cZ@;xib7jmB{RDx2+m{&&?cT3hJ}LoCU04t z>IHIwZD%%yu&*!P>b6$BUDA$s85sfo;0+hZbOL3OP&&*5#u|bd0{(`bHz)3Lo zdn31d5~#}-H38c3QvnbF5JT8>xIiV!*BNt#{!nIiPt4t!^d`eLDF0>SHJsGAUSK1J zi;$u=5$|2vPh3X`x6jA~dxun~pmaYOuVOwCp7CF^v<bF z`glW)-V8xXWUv_Lo0($OonGr}E+;0NB03))?jF`dz!bVBIjC8=YE5z2^;=CsT!GoL zsV|^UDAloqj4EJ`KTs832vIju-dkA$`0-bkfCH3sa8U?2Rf_E~0KS!E%(>n_@>vaT zbl)xs=C`vosMPyfL5T}b^iFN?)DquL4o@?wxwa@N->Wq*onl9jw?nZN*RA98xq4Fh zJLV+iX0q`*oL>>@r16rjtWV+z7(erQ?%4jUF;4}x+`*~!Ku43TUT<4G1ru)L;uD8< z%I+fx8uiq>90T3SRk!o~@kT@OB^n8uWw;eDHUzqH2{^8mS$D5x)$RLwbJ%^?tfP53 zqL(7wDJzofCw;A?H45L+(ebtp?tK!qAv5Y0z}~R1KqAA-yVqZZ9zX|-A2blzqCZd| z^*0yDSVPej96^IqXy8G@X^7W7fIFt_3leEH7Z**@dwWR@6O=%;7qgX5T1t>jUK%sx zTO?NnB{yHZLsqEy+W9X7@h+(an8E|K`i=x-eT~XALV4<0uNyb_vK|H}qu4KgXr=@V zC`v&$^|t!Hln41b^nvwEiVB{a6YDBj<@T;%W=*tJ)N{FX2+V=ymkwA&wZ;<#E!On$ z1%6$#E3>nNnyE2URg}*FB?nRH?D=~I*JN?ptm%i;GWn;!uUsp#V~Ydp;6YXhXDpk5 z`HAFJ;#cb21Ze-m7 zGG<+T_z2VWTl!o$xNj|>FkrhvQ0d5{d zPrI7+7xL!@uOXjaO$RJfQq!u-+KD@=tJ;GZiKk1O4P2Fh+OY6~LE#(H0H%h+*EulXfLfUVN~LHSCK}l^nje8w1SAU2Gan@1 z$~QF1Gbk`Pud*|Pd)Of7#MGL+_H>5XuHk7l-8#ZL4RsvnCr#|Ac;o$MxMsV#;#j4&WO6)W9MPusc0 zA^cor4ZIy!7oO>atUJxGBNXE!9F;g@%e|tSidy>bSzBA*yb1L~+Hgf7KLg%jUReGi z1N%r>9rn1uMAM^>Xw*VZHVqsZ;p#9zG89dMC<@f^fan^ogMz8`Gch`bGMi8;xEmHn zZxcHc^U>D8&s2JMZ2@*&5rs!5fn;Iv1Q?Rmd#CT~`eC}sd*<8Z1D3|v32&eCmypeIkcBtm6 z=R!NFwpJE-XgZq|-E55^-DxWzF`-w*Ip?Hgs>6H4V=KrXMyiQ}dj^bihv&^BW;%Ou z2<&`=+eaeGXBE4ql8c|S?(>k!L(XN)##=b9l%Kk-S}Sh#zNF;kO9;B6HaF3NUx5nk zAevU@94e(b&rbi5R$gSycac$D??P0C zMz+xNp6BgZYg4>nev)p#y=`_>H(#F8^?)-xN0?s}j60c_BHj_h!&X+m(Frce?|Mu? zUz|s$%sLwp0rrp_HP;+v+`N_0eYv)UYbd4pxd@U@DCLzi#cAF(wH9%ryZzaS-P$DD zL90AT0uWOUfib{hs&@lp@yRG)$v4f_qexyrQ5rwX{_}g4S?FWy3ix@AAYbmp3ouv~ z{7`81ph&;4hr3Voaa0vE*bS`%7GYuUf7Kw)R|k{w<6ynVXxj7=_LjM3e_>$3~qjnP;Ws2(BGF=TT2k$Wg z@@yk|dCr@a8iqbrQr!`Bp-xB6%)#REAZy*B0@Y3k}yedi7mb;V0qq_`R< zxtgr=l%hV5Lz#azEr`OcO`)%OgBI(Jq;TAw+XV{%ICT71Ml2M&%)ZezA&%uXfsJRIbE= z${e$DvqI=&2tL}GT8QdKWM-UT&zf3>-}F4O@KM4NK zwoCsAXHQR0m9uwL_^WC_sU|h;WHh#F zcmJ%+Fj}j}Q734f;oYT?)#FL75Ng`MRurS=W@eNuxCuHPpI>x9_8E*L$E$ zRCR)>vxHCqI0V$>4D3)Ut4Ffz5SZC_Y{I zR>k3P!J$m_3q10u53&K{LS(J4pp3uw)?7x8lUqYuY`Sw1>q&8z0|~{v1hbX|2=S?y zzv&Kwc>C}-I;hVOcVSxf4Bp{dw9W1Jp%2YkLP7w_Gf{DV zOUwwRSE;n|@&hyE>gDppYMuWA}|N>z?H5 zoNbXr0XA7cs$vM$^CkrOhWYp#rEBMKIR(QCxfQ*bEQ^vW_O8`cGFacJGS7l9I&HqU zv*%UT4uh<6qnYf~FfM<18j+4yY*Fow40$htGi2`?rTeGBAmW3VOo>3c5IB1)bm}xjZZ|tqS0$WLWJ3`v4l8iQ79g+?jOiC6x*Ek_rq1 zpL{Mrw|1rXk_z!U*B0g0aw_J|7qfFtT>^ti~Zp2qZCAg6R@Ba6}} z8kfN!i6lhP3@Ojo62aLupL%3zZprAb^EWzOV(R!>>Kor;#Laoc+*|H4#0mUJShvVf z?#>D3S4qeFRo{4uiHVAefVCwyp$7fm@hEcdBXEHo4%!AJx?f+&YM*4@n_L95X<4Wb zA=qoDL7zm;n^=Mfve3%ZPiU6etZqj3NKM(C3umA$Hm>dV#20ilc|y8bmfJSH@rqDo z@d|n+#64`(a5NVcU!JqJL;g{kv}GBwTW^}}srb>ZkJFL}8zQQ)MimrUkJ)3wq|Xvp z#zz|3*0}q@VS8@vD*6RVb74u*nTVR)jTtkWTV5fY$nKa&-A3I(R;w~M&)c8t4|*BW zeh>Jce*q(43?KU9Y1RbzWw5ztISK^$*ZkNb(AmaP_co*08|^pRP1@~-{br+P;Ky*( za0*%BG8|tz?Y3mlav*GAN8< z4QTfZla|aW2YAyx+qoEDZ=%TSR^2?ZpPD_3oV;*fb6w@N;l7Z;*L~`UdS5=^cWImvaNlx|BGLD?Y z=uxv^rt$C{GgWRcdl#zB0yPO^sbOEG4%oD1PCEV=+h<^Hkl}V<$mkwZ^Bj%JL7rElh4xIAVNIM5WVgH0&+hHx@c{o=xKF4mZP9Qj zF{%m4JyX$_>ghbfkp0mF8-$lHL>7GP$VrTg{XO2TYsR$#E$5!~$WeDuntUMn8(k-& zfN1oME_ac8=tFkrn7QkMI6qDff$984$BfsB&R*yvbau=xzg)?FgZkyRz}IRvUXUz# z`O~@cM;j$TFV*Xh)C)k*t3Id;mD}D|0nf#FJeVJF zY?q>+W$8OG;mGH~(Kw=tXN#x`m~=Z}rtg8gm*JpYpcpYHYwG!RA*@D*{eI=PDy&Q^ zV)|9-{uG_FvtG^Ivw^ifbCGvR=owXXsPjsvya!p}^am2g~NEHmE zcok45cH&jeSW>8MC!nl%cX9GEg=ut^a;lRuWRR6RN+vrS^pOX1NIH!&Tz<=8-{_=CXrs|^p{bNq zkNnvkvNmSN+M8NkRTYZ3VDf7 zs=Suy28?oI0-Td1&o-2`M-JGYN$UPI2%-LcQDD=cK-`k*TSKItj9P+yPw2#l zmlsffPz9QR0Nr+8Q0500XqXJzNnWr7cZfu2W{ngJjb3_KQeOf|Jpt3{DAX?uVP>B& z1RUS!a7jFc<_6EQJG=70OnaRdD^-=x2XGa0Cy1=?Dp8Aq(<8`u0)~%Lvodnna#T2D zJxFTRH%!)H<^}oObmif})o*lT)qz@lZ)0L|6?E`5s5h(PPZe|*L@ANr+yYm_R;-=s zfm*|iXeb^=)H#R0qezj`xEvjQv#zA~cL$cUTCt^#L3vmhSvGeU9Cv>Ax&iqt`$Uuh zu0Xp>y@BTH@b%sw8jnM}s9Q`AzCkS5`!c{^1c){x_CyIV8O=!HS2_5kV9>2qvdmbh zugReNM4YB&)S|KU%IO*}vVWjTF37bUbED`MyS}Rg19qMbr^GL~qXS(Pt`&~zq4MzD zyBBIw>#Jm!$H!B$@^CzQLD(bOnA~pcaT3$=9Szg0MpLl{Es#u8QpGi|988@;%{ZX# zR!tGe@wu~j`gR1`{#W_Fq~jo&rt4h}UjR8K2urE^3~x4=)A9X^OaQZ2wp?Jh zK|j&kU|11M^@*1S9hDmSfZ&c?4g2FIz0^+v$B`35AMw7tv)+qsRUx&N+yi?~&w0n* zTg}MjYAYv&EE|U(&T<^Zt>~n8&q$$iU9^~Q)N8ybTFL6b&Gk+y9Oxrj5IJ%e!Ue$u z3bJMHv-oE79m`yTcV448keu`1=nfKl)8>btCMe=P-c`q;)fO)yRCCd@Ae)tmtRRL> z$lzwi&3kpWk!&k2TVC}4%IhPSrGq8k#!a*#sl=#vMOOk2}C);SHOPVYT3|2d^qE zD;WW!a^B`L+8s|oo-$U=ZORF~8&fwhn0q0yDm;JAnv|9KwGz8$JJ~UvjJUb5-4hZ2 ziJN|K+LL6RwTF4$fUDKnGg&Gt$)4mG>1-~rzN@;}XyzN;+gMU5203!pK1DQRd^K4C z+1Tq`Il#@fE?YXhOm;L!cG=7=Rr}t&j#GjMpjgI67I42rD|qZqMoW{}ye7ruwYy4c zrsgLq5-XA0$==g0vjgTm6zvwl8=+nHe3n%uAowechCP+YjZhap@uGRo^cPrpRU*OY zo9{^aU9+fK776Rx4=R?x5CL7L0gyv;(;z@<|E1o@9K3a2;+1mt0iy1Mpi-a9=6ocK zPp=0*g}om;y5N9|oAshZwWj30DPtp6kKKKGCEohFP}T%SVj7%3)FTdze04+YQeksR zimg1pfC$WZyejM2KQrjcV7ISo{cTBTfD><5e2Xuu`&@+koS*kawMJvbV#hKyz*eR+l-&d+zBRVwMcCo60$o$hDPalDEe4*!%0-8>gf zV4=UHeAOR7E8Nzdim(ztD-{)Re-IZSC}7^wXNVj6La>lTH9a%bE=Zjz!5d}lPH!li z%k{1Ea`<9fFDLWDMqVaA*QDXupvR8*<9lui%sQ6yPJ-9OeUG} z7?_>6YUUldNHF8>nrnGiAtUFgfqhzTw|n8bD)2=53?vi>My4vN?Nj>{`^5Kl<7zHo z7Ha04a6ZT=2SVg@6|!_{hWtC;oB>y%D6m*oLjh`>Ln=)vq3}&S9Kx5KC zOH>1iAb>2#Tylq25oLy|iHh50Mli)V*%=YSzCl9NaPWzdi|yIWTCJg7gM&@X>Bj5m z$mJDRPjd!O`3CLmEK^eyR&W}3_uP;tSJ(*l-h#O!A#|_5w6|} zyQE*sh0KZ(UA?!JeZ0|^H#6VSXmC*hZA zw@X^jCY!$U(Yc$KgDa5D3V-YT6>Itcn|ILRhF70JznqSj;A%6WRlX#J%;p+1Gez3- zkliQWr!1xC181djSzw9$Gtk<7>{VzT@Lw`JjWKg=o{Idq-uI~m9Fi*|ObZxOych~9 zH6+Jy1UH2XT z&@A7kKQZj@%jP6f{n`H1O)#UGX5;2J@WRqwyR%*+j^Q1*%~g(M z-J+o1qpz%olrM^(`8w4(yymOY;oxy_Zb~r9V~^%Ub!r2b{D?it{9Ol$qft)q-Pie% z;>HSVkKM@nl*4--$oPsrz9MU@2+sU2Ra5z4aZC$79HO2(K$U19T?J)BfsC*MOMH^y z(Iu*kfbPAZBm6DPs|g1|e{XO>&9A8!BmABESE%etOt zM8Ao)U;8?ql5?Q~>V(uCJH`V>5<*K3YW{l*Ci@tT!V7?IxXHQd1xtt#8yDoI!-NB~Dmi-^OIh_; z%NUn@V~ce?ZQG2{J)~KQ8!x?GkJFS2vJ1ETMt80Z1pEDOnBOybguC$#G!piF05||z z*#jtqB9|l$5y?!OZ*+H@hNg*M%qMHkgQ1Y#iUjf37N1O69kdzFx+dF`ReJ~JG+&rD zSoa~)R+dS=^%W^#IC8H+1!1*1`7xWrjriL$(p8CH%x(K*&6fM6vZ8OPbck8ymBvZb zYXM7IWEag3vjIe1^_rVz^cKKK(6Sj!Z34}eFI|9G@C5ut6?y{E2w(yu#E8hl3{-mx zi2~%cZdg*OL_%Wxr>T|L`<;tgTB6#ujVX0FY?9dQ^$=+Z&AVQ^R`)D1-2iX39c(Pq zS>pbxc$W0;_ksg(+kOqKFaQLzT0IX*dCG_J2?u18%>wdxYGC)G_MB~H;V_Zg6=uhwtNw5W7tbr%dFQpY_nZSD~k{W*gY8k}6{>*c)|1ls9d!Imyh6q$#fbNZr z5KDfr7*HGbjSIBi2bSXC0g&v`s;{YMHvO`#VBn%cQ;`WaYN(MA_!8l?mqMm-+tj#fheAWEuiZQ}PVWxJ?R?1s?%<&LOF@uC2 zYYpeJQUm$M@B<^E5t}-#*a1inUR-1xy?!D9 zZ1!6~db{xn6%eh1&>f^GfXr)og>t6a#(K)XlNY~+>~2>KeNl`?oU9zHak-mK;i5HhP|f`y#2Hy`)2(%^0BYYD)J=ib-35v{r2vVU9r!EK$ zSw}bc0fQr$PYF2=&@b8#%{(-M2=)>bnOK|FiSxWvyI}$&JlJnQ|K0opX(iA>+KC<3 z9P|U!pf&>tfbPBgLO-K>=_VeDUfHqhO5F~Q?r1gh$1cqtax-IL(GwQ|iPQCQ;gOV2 zh$<3y(wsLGs+W%@XMV`9h*~?Lm!lV*Bq#fRZVE*aAvL^~GqK1gWhs?l2}Y~SYlm)( zNcETU-Bzs&nSkbO71dvDIZUPhBG80m>e2j7Cm%;2YC1U&`daw&oTLZpzt_L95Q0P6 z@}=SdtRCQ&0I&eseHaxXfuKPmbq)rcO{;U@+p^(XXupw1OKX7W7LpeGiX(($;l}6l-i_?)yO)&bhaPQEr^v%9FZxAqu?Y$ zLRMFWQd(14*7;BqW?F033nPJ#+>I#m+*zrdHg+zQ6GKzjTC1~SwW|8E_G-Vp3}ddf zO8QRphMEJoZ<4qKZE}?5!;6n^D?>mBZ8PK){&O~_SmJl z$kx#9z9;&gTDU9QGKPbMa_L^d>~`@9_bw%49)_O^cR^3cv{#yxJ>*(hvOjf81)h*# zxheYq0KUsZz0}3Wj$i@@O&(4%059O5R%8Su6G9ANxHFi54c}-A0B3DB1Y%?V;o;NJ zl$INrFk4PR;typpfxUnu&#SgqZQgfYlf2P7Z0ou#S;L&JUqmh-b~bt!n4%0yJM0%0 zcAYo!nczO`u6XYo-RK%f`1|q=jRi%GD=f7bcdz?W{HDB92OEJSRS)cEzZ6ZAs62d9-*htc zaT@{D837LdRjwc@ONiV66Zp6KB`^^iOfaO~fLK9(_D1>-%(XFuChLH?-Bi{I1%rv7 z8zDRg{Uu;IA^vFv9Axid*K6wT%2e|*4t->=FO4r)U#jx`qTShCvaYFXI_yXid`;0D zFPZ~mcB|BEU)M09Y8KETRmYGlz)TFF*=D_T4t+)J!^(vek-V1hA37TqG!_&OEXe0f zCAUp^j$}E#LRCy>wPT6gO`Pb5I7&ImHx!J=i(VHTudyCjSDDYcwlM6_rTRYEfBCMt z*!sQpuQ+d$$z|6Sl4GF3q^Bu&y$^Rd)@`*t-RO;+rd#QZ0EQ%}q=gPC36HU@Ht{;_ zOXY9>!Nww$$B=2J+Gm>L)?bXW;IFTjehW8g;9Kh?V(z5g1aI$fCgN4a*x|bt(jhwQrFEG?QYm_ta{4g+r zs%yJ@muEf&=Js{^xSl9@Bl`3JR)jRCSvqOzko7K^&A`ZDH2F5ll=6Jo)hj%r%9NyN zw4hLfHW**yd~6f5R_(?uI1)-A9Gt{n>PrCL0GLK}Py%N5CQ1URe9@DZfP>fw*Ww^i3w$JAM$As>t z#JIC+O%+^;woND67v#~8Wiaf>TS(@qwJgfBU}EnHYsYIYLf};9=U(i+o2!cj= zZERQo?QJq%d$loR3z$C0*N03R*slSbt1d+=3Mo&7*8?kZ)7z(I=J-g8CKGde zx&gAVlLW_^cVluE%o9&n$PZvcBg($fS>JA_L{X^LhAqUPAMIDbUgpKEbh9e6) z5fx$6#tTmsZ-V!-<=iyFA5a*v6&QXJYWYhhi9=}=*+q2ciVvauNkj*^F)jOz<5H0% z%}QeBxJ=awLDRRQvIMW)TN!E4nP#SlPmOY)tq~#zfIR;3)G%*@1!QAIHTMki(OuG> zdi0BwQ=`eqr<7+n4^%1<-QXi0=mH%K5eDVMU!$2C>O8|e6|NUI`Od6ojryddz96oA z8b%&Ls}=PP%(#}}u>%5SzAwMg-DG~7Tnk6&r9FiNStEDPyESb))3a`-jF zf|2Hsly*v5b-IrI9rN)@B;I4)qsyq*``$PQf};yzsa@e1b$R8cL?a*KUOu7@(TH_n zH*@@4NwGptf!BY~CI}atw^tQ0d?L{sm60iw$A9+I&;ljbt*F@2OU2|)i@Y`_BFBp( zw-Ylv9B$z#kfclqEb+~I*sneM3>BYIOuYNpHa5kn?+R{~P(+xMau9!6VO1;|X&KZA z2IX#rE1&^|g+-U_>?|x3BB^8k0ABrwPCr1^_b)Wi`dJgc>%>VgWDZQb)1wWJhCmB4 z(g3u8Gi#6`^{EHF^WjS2SC8#8#wq$%8Y6haiZw$U*FG=j>6Me{;+!Y5u3RgkRUvmD zwrhW8TXb+8PpS2vA1Xc;1w_<;NXS>uEHprAi!x58DCA1guprA_XXxzW4zl^1jN zNutF&P;s-Y18*pEw(-tmC|T)K7ES_#DoOkV2D{X0zA}SKzk=BqD{C zcnALQ2Gnl?$9H!9`1J0iI>a#eU)OV)6 zy2CANCi~v_yb`NI-6(e4QTe#iuJVpR<#qzY?7lv(CdxC18-bQ%nw3!|KDh~{l{hKa z`{u5i`Jyk&tfFbGiQI^bAjJ%gvV77HeuX}^yX{-Z6vG2btN}CT|4lQ&KL^SQtqleJ zSxtY^THuT*Z+gtfpff5gD6_!lM*;eaI4q^<9hiOxwLj{hKITMK0lu=iKnQiL`eE)0 zYk!upxu{3H(s-g`A-a%qYBF(=GP%wrSd95d*@539wSe_ySpa&sk zd@oh;(h(3hf(wL7(mIW6HQp;md!KSJ@D3?1$M@PUn$H|7_~L~wSa$XGTYlzhoT4;V z!_Z6O4)FFEt+@vJpu{|t`fN8~e$V9{DsIT+o>d(V%;^j=)4-cRA`@qKa0L7@BkthU zYZ6X^y!YV?iXPz*QUah1aE~Bw-wudJ>07qrm#%N5PJi(4|M3f?Kd|-PxNlhC9|Hnt zx+R1(vAdHUc97YY%oMjq$Ifx3$fz5 z_Ly7rtD>LO?|U)KVp=I*A3UP6Fws43Jg;$#=QL@MCFB$ZvFEgH@ob z+M4+1WMt^_a9gZv^*U-vd`5iPTVMgaQ6;c4>^9xtxO?Tzx;8RsrD~_VmCpri1?4Se z1YNgs$M1H>8i0tBqK=k}1KJ&~(Iv^x^98MC!I!tLtS_H7y?@#StWaZ2ka|oIO)$WK zK){P4;5`Fe?W=$P2%69ti-6Er0W$-*&~>n5_E!n{i7R{(n~4ZGqVD@%3dFQg z94wvL1!s}B~zn&*?r#k+ShaY=MX7Vos;H;srjzM#ihBTwjPhK zrv|K_$B;gtrqF?HHuApj*pR#=rUp;0bfr31xpbX8kZ{b(ovy?_>6f3;O47uNl@z^& zCf(kISknPU+$Q_af-ekx+F;15<%G87a}8y1Z6+FE9D&>(DPVy>#0-qjNd}h+->W=H<6G_oSISN`B zBF6S}javsvTxG#rsiWGVcdQ_{YJ~h?LEV*em)dGVey@93@08)}>ReP6M>cWIOJhI? z^@%%7;S7n*FO!Uf5f-bVfk@^K(BgO-#uXx@D3`mtkTfGv~Y+y*k@ z|G4zNC-k0E4Hd}VJb4Z$alo&wk@AnAyakXUSf(cPph6@lnFsuz#1(e0Lox;LI+ndW z3rq}bSB|Y{bzAo?41}%t`iJ$77o=CrdONS0@?8Ywcd$rSg{S81tmTKXMh#|F_o~DK~Ns_Z&(Bu z=RkQsD7TGZ)~aIn!m@LKA@;t1R(_~Sw%6jZo9tD*S8R8*#-Z~0RB6q5vK7wz;c0g* zJYF$K(J=R`Cz>87m)l^yFtxHfIceUs94j(Aw7U~sG`+@*b{eQW_Aa9b*z22CRDA<@ z1g=Xl)C)qT&5I^JFj_;7GHumdPNmoJKPLG0)-AxLlP4Ld(`5f5K{~v^f*(VKP*HefJM;ON2PwzA;cTi$>t@PP-AoPS*q5K$KdM9=V2=E*b>*yND_jjLVco5EPMJTOC`Ui`c!j) zm$`I~e#|YNSL8*P*4!r~xk;gpfmfOa?62Dm*%_PPbO|UscnKP?4PP3Tneasg;mtdQ z#*jY;;V?kq&6NO-d47MA$`CZ~Uq`%jNe9sOuU;?B6(xt05REexG!zA-jFr+cUUKGT*#s=vqZ6=Ic-jb0u>U)2!G_2q%s~ z-Wqi23qTj}RlZ;RO<>P?z!pkHB%*j@igvth}8CIz9?5b^_ z?WHb{(>+>e*gwAaYKt0ecT*7UG3cFk=rklt6J1lyD7vIX?nA_0&7ql%ux|km*Yoq2jjNc80P(nF!h&oVyF^;-=y!K9$=A&rJX7y z5HS853pR=cXdnnqi(}!sJCODSUh64C)o_B#0Pc1{uCjFqGV7~zWw5I&`iNB@$b}Up z=Qs}b4EcX5%dnSp=$%|r(i?e;nX~CwW6Bdru!L}*3jLdizwz*}N!>2yA>^P#@b=?! zj3Hj|-Xi*t%x}o|KmYzN`LO#1Cj%hS|L(T_fO0e^eoGibt+9j8eb^TzGp!qE(5R2k zpG~GX_7WAZeM%K|#)yG8tIAv&tg2!PW`D!nZ8vu$FOlD0SzEI*O!e)P6{s$ZFTUrK zQAQ2Ws4Blj*{OYv)g&0$DomOxzUQZ5T|D;Hy6TtxO>QsJ;Pix z9-X4NS}`)-=i!e2PhE59?Umo?WKxzn<8P9ypx$Tq{gqN0uzmmKodqEr!1oPOVW|86A$5zp1NniLP@qAJIjA=NZ!mu2Xc#Vs zp%sH=h$P$jH0b6{xUhfNZd33ZuE3?H!D($^NPJLqPy~EL2Sxjv>?h+78bjXyhI1RW ziQ+#}xoN9^cmRf5L4On=Ikcy*Ku`cS61Xvc072d=*qag#9yZVSA!lwQb43L;;P1kJ zphgIP6B?*0Q`1&(@fYw}q!P=LeG(9gIdcfb&ib6m0i#@Pq?ch=)!2clZu!y=&ZGq4ObREX;T zwWuU+AyZWu_-wGlMz!7lLwohWkq3P0L5&u*Z0GOVdzt%t7^3yhto!Bqa0W(I3hWV# zm6($&!hJCDqI^M&Xu4`jF^qsL3hS%n=U|AtECbas-@xS{_4@)mjWK~djrTb?1b8+) z^1uA90ei{{$b_~vRcJ$msRlX$c2WNssi;r|920n>VGcmC4CJrVf|{R$K47BY^JOTq z1Nju`Pd$T##Om}vcH^$5+D+&bTUGm64JH6#z5PbEX$YbYBt<~n`h(xG8|)!aOn4uq zq|P#jhJnre+jU#ztv7JA0fkiU+yo@xegNYBZBZ=|*uzu20J30U+OWa2u=Xb;%2b7X zPCF2}sv8@5Km}U!YA&f*fmb?qDNXVZ+@e4~hI|3*6Bn;)yfxfM^`;_)X!K|Rv4m*q zn*fOmK-E92gh^O9VX|Ol+yL26e+jGp=?_hjuu+9}?Jt|QHSmOY4<-o;%E8-vb>e(4 zMWe}l{Q@sFKz^4-4FjNt>JjVHJYpbpM}Xwn0nt11u)ea< z7l0n%GQNj*N&-@>t?PS80C|#NFTq}cf0Y^_YziQF_)!8gg&5%-0_7o~mIxG#wSACn zaK{PUJ8{uiqr-6D%UFMEG?S@eL6b08%+4~0fsN^dw+6~9{oS(E34o*xvIRiks6PN2 zVY~kthK`@AGyXxbAYqH3R&qd2KWr3$-Txt334NuVph87ZpdRYgdc$YV+7j2W_CDEN zH$FqS7iO7xHtYv7qyRDh1NR^Zgim;BhyZT|6v5XKp`S}S+dNpoPFTWG8$h?878UHM zQ~@GxD?{-27uES`N1nq)64XMjlJ%@fMIn;fjag2=mrh3-PQG^%IQjnmkp`MPK|)nn z*a)0VAXxuvjei@UqyNvgZ95g|KpYe5eosP{^^5L*cZyB_M(#jrXxaRsyW|)s^Qq4G zzvI^&W9fenPWTNma9?B5F;F$kb{@OX{5ZcT=A+_nvl8JGqH2M>Iloyx<5sb`&Re%% zr3UlRQdvl@r&LH6V?1$D_Abx4J#K00o^sY~k<;AF7f*K`Tn}N~E>B;}zEk3)tU~M| z_3ZzA@Ug|re@t&TGzr$wRgcgA9c^m!yODU@mF-X0&-w;h&rgJ1xP0()44PTI*?A;N zHAatJLR&RWTk+R8{_NY&m{T4EgJyBtx^w?Cc#%cN@!V@RHlpEj`Y)kJnHu--Xeb$J z2Q$R;Ayp&=d4rov>2f_pYYsdS;;4MF&*+r4jP=xf=CgDEtq=a9o+Fg4W3^4?>%MoS zy@po`8%A%jG(PY@fbYN9t0^*=-m!gD<(FS|nq!4^>%%vPStP$rrgzVTS@iPHa~ag8zj%5za`>F2?I z=QO};{DxK1`3EuhWiy#$^cT;Jw&naW=<6@NJTy|;II<>@!If3J@+?(~DC6JJIFx02 zTrTbU+23x({73Bf)y*3MO=A8ygz_Kj|vb92=hqrlqRwPg`K7n2Wdt3zhKUh?jV zakzZ2N=up7DPNxZt8-+l zOEui)w&@8S*yryTHr>U9!CpLen)sNpefQJg>w0w$p7;pGr~TJlFS3-s;O;rsbw=LA zDz$XZrJlojctIT%{?Ovd?pSM%fi>&>pYArFM^-%MU3(D}_2)xH?OQP+Oio{)@sb|r z+vvBYTw!CplI!W3f4qy&SU<;qV$_%IX7%dbKhaj!0_P1|vQqZPJi92roVP=z`p^Q0 zXbhb&YkJrIXJ_4u^VNg%M0UMS=LQzuM=(LXG){F(tQBKV< zTGmD{)cj3VC*FDF|1y6hXvhBaU(X_(yW7}hR9Js&>b`i6edkfmZ*+xeSEiZlew%tO zpgPxCeY8|&nO%VK*Ll8*rAxp6$zStFs=>9BYaNXD8lT0*qp|1SkFBZ6-BrFhFOYi~ z;r?;w`as0}EK?Q^x63h(i_fE+^%2=$r^>6hT^;*^HP#|kleoIJtF)8I_R5!hW^@OQ z)wPB|n`w^n#rl%?vy15Fl!%@P^G}9PrAR8%RZVN zMsdsH)?h)4<*Dq|F_<#ApOxV^*;ZD1i9dAM-tiCX3pO+1ax-s@V#xuS$Nyun#`s&@ zAx{}U(dPARo!9uCr~fO)c?Qw-3B3NS;d^U0zk_&*rwsDH`-=_@_=k^4tUC=pApyfrS)sw<10?n1YNp-{e&})s~>l`b$IXm7;tww%^2F1Y*Xs>R&R@V%@D<|Bv9;+OpyFHIkna0$N1bNX$Vv!$x^_3+{= z=2@A+x2!b<5r_j@h%`seIl zi9N5e>*2EpQFB4hrmH@#&F7!>T-q5o6F!hqQdgkpQzB{Bg556pT!m{5apjHmtp=Hk z*Yy}b=IA<<@aj}0GR~>aq_rk1=J5SG#k7iNI3G9?r(%>Uzf9R18Y*%tKo)gb*lq^j zUpa7Y+x3T*tDR%N8MoK2I%%AltB>eN#6SFx5%UQCOd8(>!Qz+Zf6tTA<>9#$sZqWs$)&DFdqOW8073x`VekU_uEPW z>EI(CgNMymQ-V80goJz!G8aX>c=vMB)(M-r%xJ5Qxgd3?xvFT4WT(*08aP?ZU21)H z>0{T`%fF1gJMj6)i{mzG1{1oSjh~_~IHzy7?~437Vbjeas4!x%q?bBl$W}98ZbKAr zOAfV>HS%01V>MI|%@^f`bz_@wBz-*|WBMJWC8L0a!H*>eLiYx1AIKXv&uqG&yXXGd z6B3b4i}6C%l3A5xru_e->8qof`v17M(dii7Fb0ef0-`jGQDf9LQd&akE>S6ojT{Xs z9S#r?q!C0)B$QS_B%~2(gYf(Cd(QLx@ww;RbN{;c+A5WQe!p{KQ#=+jl({Tl4!1hiLzJ*Aj4!8YX_d__3xIbz zf11s&OTfSjq4RJ92LEdqi^h&h80x_=@_Fx*luFmVI`lL!Ssj*>{CG%6nWWwKz!FDa|>SwKRK#XWcu8lA!)kxqpF#-_U~&9Xuncey}pX} z@0`T(kKTloB|l?|pMPzT)_D~Ir9u*}tS22rVM&Af5knq&E5GIwgMyaJZK{DSop=he zXijW#-L znWs+xl)sU>){ke^1Fs{V_&Rdi2IE8v$;jVW3dXI%=Z!g6#6>fae1TaNzfTAQ{`ANs z7J;onZ3?TC#A`Qyob;Es`>$h6kPMbfT1*)6Ytt`3dG08<(oNp~zJvt+G~T(WF?P(+ zZK#u@_s2}!1Qs(`W7l1Vu09S~iJ^+gdMG{+UWeOWGPsU@HnsWFlSY|-M$Ig&ol5d3 zQO8yD?~{x2e`fz`5L(_qnm6MC(~-^pZ#9KL#rVeLajoJh0*`-{C`DxkUvh>}je6H# zi<*Bbwb0Rh_4Cf82s8WjeE;11%{$R|%<7Id2Wd;q9EzXz^wC!b-E@O};cEQ{@cp)Zlh5U!fY;1VpPH{P5nsvDsh-Jv zkmj*pcgEq0lFUff>{NqnPTu#zc`*az-PsiDw z5z%^Qe6sshdcT}I(bids^i$F z>h&+RFrwkwML+M4KTD!$7d-3yH?6+Jl1%kznuu0cmG+e4ec3Ecai(Cd;AHstJdg&1 zvYJ0DL5iqaC9Ck<{ucc^ztTrx+C@^-!?F~LVOoI`a!kj&=s@Mt?GtJ-7@x9u^K<*& zAGJ`q-(_2J3&U?xywJPPeg3`C`HsR#)gwW3fhBc#Xdkn0!2`P(45qMch9tut z!1vd8J)mvy^+3~zJ$q#HL=^2UiJI#U7RmECaj6_j{jk+~!+0UeOJYrytwO=?)9>>2 zr#Wh8>RVXO%>5kuLB2B7%9cJ~;8q>i)EV5X&vS-i0!KBjsh+*jGe1+4eFin~?Eu)F zTc>7+yUs7bS>vSzMAly&w{{uYWK~RlsAj_v+gkPuZzYyJ}UWM$iRpgYo51xfhSovW54Y2=-|*_xxyUeD=c=dj?RUb_PKGBCROhhJF? znL=^$5`+Zq(C_5NwCgRu^S+sJ}`^jW;Wo|3-YA1{TO3V zx_I)dZ1w6|c+Q2KM3KY2ABY7JF8Y81ZQ) z+nxPlKoj!KW=mL^?@I$Em*(kxY*r0ILzj#VI29V(E7@N(=nTiDzo{6X))a}d+9)rJ zOrda@!-#&)<-K32`FfH{f*tw3*tDE0`sK1;J*_Sx?0kqMW$V=pGU(m!j)qPP2h+ZN z@lf*aw<~Xko8$}fP~*yM_O;R%IuZkd-^?^5;N4)^h3>4=xWSY5P;>O+`Q#X|N);Xx zG5NdkZqQ{{epQyhk0pAELMY-F-x>TNwRS38qT@7UtYI*_6Q7x1;-nc;<|0kZFB@)Z zBp3ko|Oaf+ZN^3TPbkz!+&<KMp&=!Hzd`)HQ|eSYL~18?%@9$t0Xhny9}m zjlkJ3T-lgP?V?^-%$XId)jpjN-Ws%WoX;9}e^rTS$B(6{)#}{Cq+|1Fm4uJD#sxtf zPck2cPbPEtTKt$Zl)>?BYdsL!t29c~cmmbcZJm9!&^>K5Fcj4#tjKph02JeT_B8~{ zY1b-E^&X+SV0E%@^Qu&Gwz7{NoCWYB@{+6A$n?-Cp+ zI3hN$l&(;O)keFlv?o2r<_hwtr%C$cX=Yf+os5VuHR^hF5_4!M9ggCSyhwL~6IQ>@ zPebOgBxktZ2bWYthp3#Av)76tP3yPm#vliA zA=js@KCFo%2^9dwU4bOZbbLc|_~Y>>ELU|IWJ-%Hh0`@CZcZ8YGgg0cqXR}zOUYGa zP3pzr|0Uzm(7dXklV;Ccr9cU`?q~#`_2f09XFR={E|tiUXsb-B zW3u{VyHcT3r~8qu?fZ^-Q4%teOBCReBU>r(WI{-tTethEgoh~dLK1(U4V$aH*uHst zvk=xGrFe!kCm@OPGgUHS$DY(ye>}C;07o9FKor)sM3`M2RW1<+|D&P&`$Ap}7As!|U+?g` z@(YY1V9_UNCj2tyP`c^ijfh!Ld1Z~7K^!s_`MfOqUJ$fC;Zs7S6ue&@77sjFn;0!l zyl$i9YfLsw324=L05?n+l;Lg6j%8`xJos(|a}HwX?$3;$&RpsU6lSji(p<8={lBOj z#s5d;#D!V#1wyZd-~U>}Ovxs$d@N{FEDL9N#i{O-FnnWGHg%!#1?Zs)8#ATirH~4uTP+Yr^$fp?=a|`X%qcX^&>0! z@^Bi{N8w20o>pTnG>{Jf5L@xt?mp4tsfdWZxCApXGivLE6epC>6XDz+LBE9~n~<$y z1ulBfls`#;5fvzoGHCErLPtn6L7M^iRfC7hlMnvJc=p^3F`XJq>3e_nDR$Kusr&k+ zqx!T?V%*x`a%_W8O-w2~ivE?;)i@O<`^RtHlx^ytK=|pTj#T2&T?J~x$!mS}V5+8$wlM^6^(zh?(+tvQ%l=;GAgfZ3jq$|HL5;dkRnw&IP<|CdFKX$xR$C4C(2x>j| z-md@kj;8Zo2~3;!p`@pp(W|*aHaOC}RQA?_?@ewson&&4pyL`xie~ z?j5`^1{!T0R7@y=2sGNWMNEeh4}RPFP{HQ#No~BWuQyRR5q55oU$bR6{u|rn{aD6p zNr!=GlZJ)BY}%xu*g6lVcyBLs|?>G2H7uU@JS4+Uk$cFt5mgWvf z0zAnu0}vB9yo2gtky1Aq5T)~k-P6*(l?r08%p?{4kD*2PrxNBIJ11_mf*-!E>Z%zA zO%+mzaHHczwcazP@zVvNoL8*YG^*mtxK4v7RxrX+Wq(56?&F0ikyQSABP|4G4UTOp z&{ZA`8)g{SPoCCWchMhBqC)zszFrJS-u~)Jb1+{NzZ4(Vy^2l`v-?L=qs0QDk&5>q=W|B zR;@vQoKmE?S}Hz9B(uC~;T1?xD7>AkUT90s++6Wr{Xh>gx}C8a;bUVE^2+d0w-KEu zAKT0m&h$m*V7Cz1S%IEBlDdo~MEKLSE^+V@OGnco)H!a*rS<|L?VBVf#ooP+Sb zzQlI?5{-oflpS=67r3qGk4MVcuCelknG@(m0;P9Ts$%+zNnbv-r2hs1v|{7TTF|Br z20IX8li`$-Xu>}{VY*z6w2%6Ni$Tyi6#Yv#9R*ZHzCgx`hIDMS-|ExR8WaS*sn!Y- z1{$u4>M#w-V$+ZkmflVKQtPHCTq@pSxkPoV^BoPTyuP2X{ zoOY1GHQO}1liHMnWw1l|GGq-Q68WjI=^*Vedafw!-StRqcr3CVw6Klq0`{!JY1!!! zVuMVU2bsZbQlAa&BG8im0Ys9@wDdBmm*f3{&T*3%sKfWpa!ur68IR)T=out#6^%k$ zD$6@oRl==v8vUGlN$Gf)r+=f_qxMi_YO4@8uAa;TwG5}!UqCcwgUC_C?_ zH}#^H-%i{pA8<;PS+Ay~B2d~hl%;T-bQ4lQS^9RaFd1_w%e}q#9hqa3d$}KzNN_DmcaSNc66O;mU$rwOOO6+VnPi5wR68QZ*F0~mfcR>b zp4TFv5HmI`mO-^9s2wv?1MjeSPt?J}DcgH+iERCY1FqcQ&BqYt0neGsrkMW#bi%%Q zSFdKKzeuURHEt+_@+X6#kkE~Ssky(Q_$+SY=}bU>uB{NFO%f-cjS?ODXHem7uPxki z0;QEl2CwcAi%8;mim zT7Qt|L(xM(GA6l&ecdK9B|-z7>0e1aW&iS2a%_cUM|RcDw9Wq*qb&_10j^zL1oTed z6?uO5>w`z8L<>5f7_VM1fY_;WL%kT3+uRQ(zCId$yGT-Iv{F0Xm|2$Muf@_=y!D#o zNvUU>UjE^wG5C-i0|ELo+m&PnuTo3lFV4Jr6pNm{sK?5I`XxfBKlul|weVQUkU&Sr zaq1}B-qa2C6iIaYL;06d8ea^C*l_~6Ge29n#P)NF3}+EP7|3W>cZzH~B*HZN zzsXP2HNyAsN!pWw5OA^+yW2mn>vN)T!Qrzvjvdj-!FF5PIAjQ*ZPQdFO`P}iyNPL8 z|LI8>M8*9vbgMqN@n^j%{sYU=qVLDg)dBQbuy%g zT1yf$t+^A|OBMWRDh^oAtr7)O)Z;}#gYgGnjkObB1-vx_sR+cun8r6-PLNc{c6CH* zr`V{l;6g%%{s(&l>50?&>x5`tcCDQEd(&_M9!Nl#E|qN1!&j$3_x^Btp=`Ufbyagq zp4$vkPu68xl_Vq%;ChNTxdL2)bWz`lOhK>4<6MEXNcz8TKVtNs_A^RNDJgzuHRsu!MM|P)9nw$ZgEz@5mTu zv?@=tk>pE5U8smqtdKROfqlSN9HtIQQG=9f7@|^D?3_q#N|hSEzRI!1)D%ZPq@7L_ z@Xp752cdOw4NX5(KTk|3Rd>AP=Htt-89Jy<&fw?>b7(8F*5Z8Yay*Z@E}rzI?P^LA zG4A94j(RVrnx|3*?!RKBNoH3*Py_tHM!oWR;dFLTZXqG-&43oF4JBT5IT5V%eLI;Dc!P{{Xq4sxDY_ zP%)k}@)Zf8gMZ7t%llY#gNS1ho$&r__`(7IP4dD9xmbmsnSEod3@MQ|u3QNdA%nW5 zORs%^6QbFiV$M3@SqCt>Z2FCDePVBB3gBO1eZ(=8PDq)y+$&DV^{+bjXti1?Dw8(- zkBK|RXKTrTKPkG!m9b$Pqb3o<)^m`8-{6V6@f=umX)2Dd0+?T)o-zC^{vpW8Kk5$iE&th@5N9*kB8vYaN7O?HhQ&&Jej5EDZrT6-$9FerBjnH?W-fnL z+ZbP;2(uL5m>A{7t@QP`qMo2H(82`nyNdYHx}HFeIh8jteWZu;+-7m#03JA70EJ3(_$a{Yu1JUDW{V# zdAiN-4XH~9b%kCKEmLEK4L6&U%uRo-qtIMWg>i1zA3TqHUuxhG`b$LsZAj#1=1X6j zvp<+8cyqiN8k9(L^3gfR?;P$>Eyiat?S_@ZD4gyba69MeSnZV3R%gKtIo|)mz+%O( zDnfc=N_d=M-vzO^hjQe?s*h(1TrtU$4fgA=`C9iBaa583yXD;b9p+@`T#ArQQaS_y z4-t}ITKFSB@Cp7b6Bk^?xv@r%z88*XhABBEY6r|S8>IEa$cfAhvWKZ0&or9 zu*QCd_8Hz#j8NBuy#TcUZ-*wDW7|Jx^$EY5rlmPzwA=wU7+vO<5myBPmUJsH7*deL z8(Z{RPd6?Jam)Joa9dGO42RHlGyD2Gv&4N&?Q0hiH+rVl!q2?!gdVOoAbRX5grQUAI6Q_r zM-GMd=~5ES@xzl4Ra=EciTTcEYU&#hVt@lzH0=5(zuIGfo9TonQQJU_xx>0E%YCnO z;JcKCp@ZJ~UM48DKv)e(4ce?&y&v=AP(T=p0ZXFm^5M5e<;=^KVnr(HI%Pz;s=weA zkCfJ*p)K7D2hd(I?bR?A)cNo-|7isc{Ve~wEr(e&qqThLd%D z(yy(G6bm0wf3qg}_0LGm@OejiKpiA8nvK@N*5W?^Q6;7U3uwluL3HS5o>Qr+n9cJn zV^hLrUrIF>=um6(Hi)g2xO_{tSz+hr|4csklOfdqbyf4ZLif*MEobt3RT=n*0kptJ zL6j>d2A<_cxhAt4cByTq;iOCmLhyrh=lFgOq^}Ln?mrG{kzdkHi}K;lMn~@P>Dx? zVdYjXzV+A7{mmowFePh1psN4tbWgf|Zj_db5Sy=rvy|Q_c~};vwK4zZw3Fg23sxZc|}?j>pEn zppR|PzZDkNKH0~k1_i~g&uD#1x-n;iG$Q42tJ-d29_?5+)U&{5+gF|>hu##RIWhzL zlfHz`XP442rb=mLSH5QKee_pkT^Gr$ofq~+@t%XQ>)C9RN>Z@Mo#SeM5l(;1$_3iU zj8Ssvy9B=EO?DMxD+0MQy56D7DZ-2k} ztO=ZrIF#0OC{Kt=^6Db{Io-jZOp!ASoAp7!@|HmQHISBZss5)Y56nkWuz-4Lk+y1c zeeNy+sr3K}HtMxT=fuEd=WoBDr9U=5>k|iHge8uT>722Qe59Y8K3uz*yzRjzv*jgV z7Z%nNhvBRbv|$O{U5|Sqcpy>sxa&PMrS~ zeg?_D8?ZUXd)+gQ?*pJQ&ZiP9Zn7@*um~)a5%Tef*{*v-SQ$)H&K=9F|1BOFHa@N6 zN)1en_lSNV6Sg_$5bPS9{QfG%hX3g=A-*>T=n5pgam>eUuis_UrQljNr&VO>^mdcz zVLhx&nCh*l(xva(w-jeI^>&hN?KLf3n1OacjK7^9DDlafOOk8Q+}JhN-|2>KdQu?%S`;T&dEsN`^Csp_F;nEqEfh5YEx*)^ypsi2i#C%H0`Umzh`4gH8 zTqQ&yS4_1_Q)AR&b#GKkYF2Lz{rjC8c8>F}VgS`Z`qCY3JrN=pRbehfFwAj2w?9@; zx=>}qa$RM?8|S>xec8fBhwNb-0w~MedNA`pNGdX<><&@~pYCK^&!fdE{7g$BlQvMX zUWzSs-1^zadox7;kBEf#G~amQ*5L#6e_HOeB94VJ^(0~%Z%K?v+TGTKFIVz0U*$(Z z=@yYg<%t%E^ehH8#<2)7{B#N}Evpm$+012Kjg)ShZCDC3=h~5L#|n5IpbWi9QmW&V zb#*-#`C=E(>9F%3Ah?~Ob9)~FNu+An?u}M7F}*=$@`PoTjfRh$`BJ81v#M^j#FoN~X=4Cl|P0hO}J@JqyI6-joy#Pl!|`(EApw$qippW2C&bcE6qIv%KR_ z;5_^LzTu?>Q58(5P8`Ughulj|b$0bz&h6N-xiuJF@S{f@rrXcit&n6dw#BJ_wm zz5$v2{Gx%PT)IbhM;zwOv3S5y$; z@d8jsUS*?Ui{ta7N{{)aT+T;?Tg`^y@BEcXPnSYP<|ox8`{BW`8leRTtKWz+j2Z?f z#fo=~LP>?&3F$>!;SqU}E@5xHB*b-reZgMha(L{H?9Yn)=BGUJ76_g(ED@2sWMjN* z`dh~Xk+3l^@X^}EYhub4e*I4n9~uSw42`d-7L-yX9q)(1hC{?P!#e zM68`$^&zQHi_+DAWh6qy=2Rl!o!%6fot7qK&%qU(nF-gLEXB3dTfne%a+IF7*8c%m zlP`gn`jpPFD=*{u>M#1uah2SV1nixP{0+CqyqXpQY^D4gqu}__coZw)46)u@IIT=$3ooP0j~8-DN_&)3B@MhYetl|-PH*@- z#c$Iqf7xtlD7yQj@3kEr`2zKT^r`s{3jk#e>uW}K;BdJB-s+8e}F*E!_O=IS7xw+e|8U6 zqlz>Sr}VTRULlps2(-)kizqOs2~Wm^nPu5SbWZ=Z);iZ-;apuY*w@7oVBqJyB zNN|h1lTvqy`wyUdjq&X#!4vERcT|2yv!B_vHYnT7N_F(E!GT<`bwD^M={S7b^65g z@4rVh2e>+j-?iq(EYw65x+Vk7UQKQvZ;I@(ScA9&9Z!)JCeniU*;@%dD;b^dYu zd!9e{1&0yI6<=+JshAai{ezP*QSkV^`7}9T-l8&keLMedVNpSLtIva9-s=Dt8>fek zLl=po-wpWuI=3Ax%U5a9*E6X$uV`95bG=_A{XQg?0NlxDx#}~0e6kZT=jfYrDnnn| zB1=q_heGr;9X$&GC2>N()cZPFuzA#SG-&_vT=&mZ{;zW}viT_4-{|*{2Q)8DEQpv0 zPptfdX(Of>3+eICVr3#Q5_)JOX810-^VakqU1um8Izidj>T8bhdr6K-3x4{S8yhq0 zy(`e_ze2iyPbO0}*d@gb73|se=8AX1VPA)ekFO71^P(Nf5ivqb^Xs#}``{fm-IhpT zjQ*#gHjb_vNwD=Tr=t{l{)XVpeEOG%xKd)}GFF4J*Z-JD@bft*4*(E?3J#A#=$=`1 zXMbys3T2~05`4TBTMT2$tG>uMK2M>B(WmH^A^CxFL1T~VuM1zza81IPq-1_nl+0&` z4{}jizS4a(Y--FkBrI^4b{+DC@!zzIY7{T!W}aC6Hs#66f~f%t*H%fw+8fs=EM=y6 zguC@p@T&w@W`M-K{yjUaVABpcaJ4UK?m*ZM!tTBLRWh&s(xvC3N}>5DgOBUah-1xm zyb%c@ll>0-Z6~p@d|>4|fgN9&6cqI3-vMokmwCQR#y)k+ozCoxKydJ7^?k-am4F^- z(ZgT&)nr|gYUcPB_RLl@&kSWsV7IM!qovVNnAmdK9IKYBw&Yd2_C>tF^-Hqro^!uy z@?8C12)lr2MHE-8Ya9Ep!E;~F7f7P_!i}`=2K|(R;XF-{n+CKNb`cWSs%ADYx^mt) zLzTw2ZeA<>{i_x_EgP(ithE2~KCx=Ex;iv(HI$huR6~rArd$@uzv{BqnuX~+>G6&; ztqjMu=XU;WZs5$;i;SYaP*Gp_;h%Y5s6skh2GB8gb`GBnrPaDVAe#O+$^MMHYiUMY z$?qIrCvoz_$YPN1Z&G%+$bgV7o9iBto3rkTq_Rx z%qsSSXyR1CT+4HAmHud1$4vX8^f&Junj>}EC?gT|O_0G9to0Y*qdA5+q zZXICN{u$nXu-X7%od}rQ%kO$k9wD$=-N7%+-A^AcADFIx$Fg0MbP=&j{J2tPJn$BTcaWJ%D>|t zelSjc4)WhBaf^&<70-Q9JB2c%r{+H1F00R6!Kq)vr?;#0CxvZ6YGtxrpJAJyZRkhv3D&k8 z7W8&(<_&%G1_erh8EOv#*ROFXT!`(VeSPc)HOq_o>g^o0ZnAk3zf8kUfdE;IbhpUu}4tc4aw&&T7c z&VZB^+UqgA5jMG0KMNcM?!Fdb|1%-D3M|I6eaUM`icF~@@)uz z$-)^5)ynIPk)}f2KL`cgZsbB?3)8@kZcthH-5y~|{x)Z68!?N|dt;ZhX~O8*OI}s) zihm1eBBf4Qd0bgNioDR1tUXArd8Q%kp0yp3XKMv$C{O>bJNC}9w84U{IwTe zV3!XjK*DNK5@Xo6c|^l11XC z+g!-ucF&}wDx6||V!~5^5h{FpZYQ6^yVY-3zLxDG>-J=U*Rg1r3od}zqCpK1|5RvnmS106KP{! zYGGwL+TYr09Em8aVPsUJmx8-PU!3%!fbVOU}_ToZu%6>ic?hMEK5UywPQHCR{ zRP;46*9%QHUGw>AucrDrGyk%D*+f)@A&Z5FyPdC2~wD@qevR?f|it2}2f)EK6Uid*ECPAAw$@WfHl$@@d2 zSvl~;m^-f=Qe43)*P2C@GH1rsd=eW|+t5Im);0eyh+usu5Pb^qNSqD})kTjg` zyhX?n{b&D`x^;6d#$!~TEeA3$-2b`8cSBmvO|M0HHXh6BOTosk`p7aK#>lVI;bp!S z57a?cVm)uEE!K`MLztn~dsGIystvzNk}|mBQY@m+o|%ZHxF`dBfs4~Ne{Yfv&%;s% zlHjgw5+}n=hkfnZX#?+qs_)ApWjL0)&9(ZznbMYs8qg`X3Db_K9z`3sD|}#+?RXxx zzZGvm)$*g7!MCjH_vyUB@H#?f@3zYQ!UQ=bil_HVm5c?O+ zKEnHzKWgCvP($>UH_f5HzmEYd}bwZ`5ZEfnGJ;PFwsM_PV&|3>qk_N9@>xrw8i1TVnJjY6zVlZ-_fl%B)6j-+Hro=&+4si0hToy&blDm5}{xUWzm0wKGQivf{XrS<# zzMFdrftR=ClzTMOE#?-@Uooqn3wo$8A&au&Y?VTMc@%|uP%XZUHwA($?}A=Q@ucW~ z+9*0A3~s!kIpjDCK6@*D+v)@*OMm~#VNNG=KaRMwT`!r$IHC7t8C%BQQ&&h}Uq;CG zoTU7QFZ?(N&yW`dx5m|inMN300-IbwMmU^5Wr-0cp_{jhdsyF4A#JrUDkMCqM62_g zDcJwgBpXS=tEgF|fL1J*yuQ;f668sdd||?!95S(r1Z!cnov$Z7oc)@vpQxJlsC$f{ znG_E3mSCj@%Ez4pVyNnoZ^xCq6_x+ExVW7v{;{5;my-BvWc9Yq21<`O?V(Z zH;6aUs5OCO_{~e`*Ia#bS}l&hl}r!=>PZU4wMxtLiT8~cALZX4W{ZXw{)o^Wx5*X9 z(!O0q0+q@x;iIco%X;~IRt2T-rUJ~@W)E0FCY{)r-b19wiaz77NeiC^Lr5I{N%pi4 zr?6C*#{4m5G=WO0&8d_kd41O=_NwIk7qKYYe~z{7?n3 zH&p%-YHq~pAk5{vm{ZKd$0|gpA!?Nj<^;5P%g~Y2D6v4Os}%->@#|F9X^{}hKe_iK zM2&RJm;#Lg2YKICPEwOoD(Mb&+e~^g_53|qd1(E(BaDlzs^7Ecj_a_J+P(ZBY#4b< z7Zn8?UaRzY=Jp?;2Hxg``aYERzyieC6(5EV8cNU*+QQcF0Q1aJ-@hCo4}`ihNCzWb-x@MliZ)_x;SXV?@JbpAuaw|VUYAw6MZ?pzee z1)~c_J z7>Wk0D5QphX?WTRm3cjyS6>Zb=lBy~wqhnU6!Xf`cC({gMuadAFWKw#MbR@gSKSc1 zO&iz#AAl3ZAks0Vx!u&mnrQH9yH7>!hW~rf5zl)^fdCCibV5sSJp9l}FEc6Ap*;O- zvb1}eXWQ@RZtg2t711Rzf9;l)YZMW>7|m}@hafOlxwED1Y&ztIxl5wH)!j3BUHAfX z=&d?fi@IwaRr7r_1~4_htKUu?PDKlT&NufU(HMgz!MXd2`nSuN1%dtL0k}Lc$i&@> zMn^mI1sNj*K{DjJcL87SB6%m4bA%Fqx)gjXJFSfeC^Tj?2<{s|U<^O!epRgUCI>}8 z15qg)ABv9S!3_BRN)LPiPA(9mdUPEaUgYtcES8OT6Zx6qK%%jN)5mlF{S z86f+u0D9na93H?N^DA*7Hn-wh=LsFyVD5@oJD#!nH-5LCF;|xn%>~VsNN%YX1C@P{ zhZtFb{%A;*9%JO`%{}4Q5@}>Q4?F17neU-8{!%O^t+;)>qAM}MxwQryTSJ4NkF!1_ z+%hgWQJjopd_(_-ZN3;&u)>jL%k*jZSHEQ=F<~MG&|#V5nH`=h)bdq%UFU)pGr^9y z0>gNN<{ICA1B8*Um~ro%M^CTt0iTvi^5c~xkAav0^RVWt==q+f&*3zOoc^*B4s`7O zBEGh~L7vem(azXq*@M+9IZvMvj27W9Ds_3M=OIT*$&%}tdD}yj#Rnb4Xnun$fFaty zbnq!HW*{2@sm$EHqNyB)2jHXlMEHd{l%C-wve@eI*44D_5;M)W6KyDO_ft+>8jU_D z?-=E_j)Jw^f(s%cmCUBJ>SARW!AC)O!kh)^+l;X*+M)zI>Aj zF6$~T9zNCJ%T>W0sNM*VMaj&kglqSStW593oI=w%_{)^&Jf>a>!8JIzMAq4DZBDs$ zUbqQY_e@p|e-DXj2_{r?!r#TZ7GySw88~-7uq4t~SjTk!+>2*c5)dNBzf$B^9HBbC z%T7UQ&e=L29c{p<*lu*a;Sy;hCis)hx?fIRCgH~=XKkDx{o{)A1l!yBWeI=SM0h_F zWIM7wryxI_(Px~mjB-;p>?o#A_R9O5=>|HwiO1Dw5*G<7%lP7RXPxkgP6;+iB_$>G z3SXom+KBB<=KY<{hQ&rp`M>?P70@{SW*Qx{>ZJFrXN86OEW^TBOaJuBslDcDS(p22 zF~xG1?Xb7QlN2RPf2M2k>vh+AWiDXG4C9%`UXq>=qD(%sW|u&li@C8%0!cXSt~lgU z77jLDi6<4(ci?WvY;O#PZ9kaQ2ErxKVy^Oe$z21qV&CDzUrcc8{)A1qc>j}@>@hhLFSIe4j7Kp) z?eZjI0CQ6nk&de-Px3fCK6}45emoIz)aF$Um~jKjB+{^ns!}?k=|OaIZF3!Y39O#~ zY`xo;?%EOP7|`9(--jSzI4#c1eRSiq!e%esB+r2SS9MV~&DPa+Ln=vaG zt6n#ibo&uSFYzExWIPYz8co35m}902HII{`xA$qX_b{zy;lJ-wFKj78H@d+oB|Yzn zqCzVEVU4gZEDV00i_ac{QwEJSqEtOiVy!^mIX7r=QYZ%SWOmq`Yn!8X* z>C8L^Q-2`mH*frUxb+bUpb!4R9TCA+WgXD~t-5W^cW|n0^e^y4zX&2EbZzUqeYx3Y@Hqu_^ zEk;cS*36x{63)?!~9&p*e(uC1PR2F*Q=$mq$Y z7aYd0oAgFAUT<30!--prxBu9d)G;9ZajX$WRSFP=VXR8T#1x5l1zQf zXIHSW`pwlyA&H)+(Rxk>X?nRq2UM-=vA!L(b8Hxv|g0rEwH6wp4!^l@~+pk@IHNfr{7R@Yuj-s8W{9G}kxt_IIkKzdzB6t|lvIN3h5 zHWYs)al@?;VqG6%*x!j__8-mam9ju#>;YyET%{Kpo9GG*q@ro}uTQIN-(_>HUeHc{ z7fVX2*r7@fzjkzU#RHM;v#@1?G-lV5p?l59D_AU6R-0gdvo_Y3U2ec+qn<;P;Toe$ z`jysMNjCyabI(T)hM>`$w44jtE$vHY#BUajZhaiFsfdHt#Qq1c&r$cJUrlZt^EDBP zLoSVkhtRd99F(pv&YpGn|D6n^vxlRz_3jSFWf;&^+v^^E-C5}7^vsSPx!F_oF-ca` z-sJZQpvS2?@+=Q>L*)Zw6j+|g@lPX(3Wp+*-};<##mW2M^Kjg^d5644XxF@HV*(-X zNIxoyCQ3;k^h=ZVSQ;0tx8M%Nic1R=C&8r!LU5Pg zm;Rskn{{WBtTmae+_`h_Is5E=j_Z}0K*6?)(4-fR8(abLXZ93^W1rXgiHOdBA<6H&ngKTTbLr z4D)J#IHW_mC58;W-{)!(Qt7t8Me@R-mQ*b?M2{;ZihR2aMXu~`HZc>$a1OzxCv>Zl zsTc(mkZ{&5!Q$bNL2mtO#D#!N93U}mpd$Yx&C7`%%Wds+3>my9wPb5MI67w7|2L%DF|6*75+our`gx6nah~BnK+DKiG8%H2 zw+y?=%1B#Z6s3`Fn!;=+?r;?PC0*i9;Vy?uA=%d15}+8Q{0jCgA?aALGI#wRNh?8n zqwpI2@bE8lp0^+vEA$ZSnxt4WVfB9}mT7f;{%?_%;+b(y^N5)>Fw^f;#y zOfnD74iTt9lBw&2h8BI-VaQiLzR@l&@ z^`O$N1bQuNU8 z^qzBj?<2wp6$u+8MyHjzIKmc~1HWr%)|8+#ubFd;lLB-|tQx*{r&qN0E7mo;e>|0Uf+f95%Wn3`Sm-Ftn&kafilDt-n3t)5Y%`ev@k}> zrXdMZ?2P4bQjyTxc$1{``U~Us5Wx0A6gmmkR&9&V?Ck7QrtG{Hb79ttH9Z-*QHu{0 zHmn`(z-@1OW=QzuNwuV&HP-m1hkvktU+9tUGkpu>DUtPZ?&m$)#Y<{oR&nnZuMmVzCRxFLIYFZt@c7rJA4uYWT|!`lO$+UzQ6 z-3`vlUH$Vvk^^Qkz^JABKVIeQ(7Rk)Q2B!DXX4c6S3)gU7VH)>I50^@_qrDU9v$_h z$aw~HgJ{s3_Jxkl?aMWH?&gY{ ze1^WE-%c3#Y@3Y$#F%}9vGq5 z`Em}=P*@;WvpcbbmDzr)i=8ccqNsvY^LCGB&dR*5!_@J0diD12GR91yXTI0*6?K2M zicU1XRkcelP&RNXyoky|cYT`Ms(<)QF&uay9!O&H+VJiBj;ix7EAlD+du{mk;*Yu-0je%c_?K3fw+Jb(z@7?{W`+~ce}F0csLL&_oCS{=(Pe_J z0s93{F5W{VeFd$uY0$S159KY z(_YkPH|7J-!@m10GvX{fO|C6r9lPq*$&iZ2m}&@})A{-55M!Uaqq_|8zU=@nUl|#I zc!)lJ;IIH1ovc{KITDQ?PZkh=MRJ=-M;9oAN)bh_4zc zd-)`Gfyp{W$@&##FLB%1+|sJ*^T*Mq?#wu5Sw0S~$!Lrqy&aZO$`euVjqyLpn5)j| z!B1CQop)hGqZ#R+!&gkn_8pQWgEoznZw}lfZ46D*op}1PmnDUmaI{}W?_B^n;#*-4 zE;6P(5fR3OEWkXEpWa{#zkqIEfKW2(3ed5PNzR#E)kF_=U6FA#z%9{aRId^8$am#)C_T__m2F_kpmJpEI8B0{OZ9&QAV2|a>Tloo| z1hJX{=1G37ccVJnm^oY=v8zwu$1g;1+MsVfYRfV7)C_>V%XVU_Fu7fMpjW7j5f)>Y zoh~C0{qpQvCqH&}LIC?A857}%^*EYo0c`zlc)Xs#caa)Em`w*1hRGvWiwI+7S^AI# z*Ok)(EZXY%E8P1_AVCxp6XAyD5HaugXq5rtWr1@inpDVN9Ldye^Q&2Qna^o|VdGQ`gyEQ@Q7}itEu%BzKDYCg%fvc+D&0AISG*PPG!rS29t5QooSY1Z~22n*W=z<)AOEuY^SS!NaYvU8|(A^|s90+uKW9rUpv?_>nzKqM6c`ytaa^JVr0?{MD6?QF<(h zVXA?J6ka1Y9xDEKLc1S!M&x?Bwt6|Srqpb)CU@r5IbxB2{gkP8=#dC2nWYj%0p+_`ooin5h2E{aD6Vi5b$i z4jhO6Y0K%peuSItX0U>nIDgtvx4YYe05U)4F?PR$IeyoEO^rZF92)s!F1uAy^7QVX zZT5fdIo@~yUwn^!L#NqE@p0ZC;@DOo-~%g(GN9y1y=VU?S8fxp^p1hxZ7Iv(+CrRdHSg%8t`0-0bVDHXl{-f~u!(fS@n6JE({BhE zOa5n;%W9Rk(d0{h9GitIyDpWSr~n+Z^cW*cLof#e+a(FyEjpIoq0ki7ceU0mIMhiZ z>w866^^uA_vstOyXrQ!^Rt{l8J(#zpJQe@XOZj)K_wu*43hH z2rFDh!`PLh(?Fe3GVJWGunJlTTcYWIeea~2q7DE+3(WycvW4U`aR}=(9X3E}`&Qkg zbRu()?dqcw=Ub7bgQUZX7{n>v8DBeT=~(&*LQJeTLrF$(2jnN3(YUF2#{OK%Uia{v zh%_DyxeiHQvUo7>(0j_$9Ml!KYBiU4ee|GpXv+HA?`+)(l5`&Z$kKw%>OXai(Z}8U zrh}0vBg%qCGFW?1F7IVgM*CYJYSWjzvM-4U=Fy${37-V=&1PE1k5atYfDo`8DV{ql zxkJiU9V8DJSx5JE$c=q<#nrS>3r(riR6J!uI;>dmt%6l5Ij%^$RL8*Rc=AB|Iq?-dLeVxC0 zqMG=@p#f?j?!-{y+YqfS7c1x4(Ga zAOp8ks&3?!3M?{2l~n&VCKp-dgL`0ep8rz8H^}@;rVoiBWP)-m&J22eP=UIQobYT- z`V1SL_;+#PDXq1`odWKA<_c%HKLr4{+S#1Ndk`*+M#w?KMFakbL<&nDHO;~G|C<|T zpjvTzVO{C08YD8nTavA!6*z&{6*@&GYb*$GA*sp|zuQ77ux+Q|V8(>?DDn5Wz;zuF@g55B6ir^(oatmD9i$WO*C>0IV6Li6rSBH=XH#Q+kt)b$fp_A29h^Y$oy+ElMxcI^Hf{?s23 z1PzZ!G?PE<&B6*-7!>*x6rODVlElPxuGxo$Dl4$owGDO(w->IBX(h(Ryr_wW+C>1) z&-;9wCSTQD5X3}#y>)6FB4P?trORSL^17Z2M4B9bA$;+i?U*VWoeVIC@f?LT@KF0L zScA_a9sRlFk_9u1bhbw&GQ6!I+ zRRD=PBjR_CE(Dh<#QA3{2Ws$vCDrXEjpo5g9nw%p&M|ImYUxzKhQ&`c;Npih$XP0K zy)pNO!_{6@@K(EOxJe}@q47XOxW7u{US6n!7QVr}R5hi2e}Y{M2~gDZ!6DOCF1dK(r?*js{%Ce6!lh zx^wMuVn>g!UOFr*>pk5meC4S>ew36%;LD-#Z9dWd6&9rf4{G=ElUk>H=pr;n`ypRd4vF7-ihKA(kNr}H_6OBG&Qse;An;K0H z|7hmm8fk;qWYKVzVQaIO_VX@9l=T;J<{o_4N`K3EYf)Tbx=VJgIJiz}0wEn?b zk*gZjPpkwsUKy=XqzH1tuaK)e{F-bJp2lw%A7%LZ(yl^8XfM(9XaVG^EXNlTl1Trj zhtV$*3CC!DbwE%qSv2xk_JVZ&CXb2shi?YRpUukrIKH;}eYIkG7o}1W!87`9}ZRwYe9ylE?fXa-TJo(dZL_< zjC@f`mH5XJKSzagUErNq?N!wiQ6@%IUs*Z;uXN3*PS@$uU0(muOV>1wDdKI5#yJGw zpxTutKIO^45~kn!9_LR`#(KPQuQOFoGW6RPVN~U(qG0*>5Z?DkD9GjoDI}nRNSiLS zRvD<3+@_Qai1_=$z$W*-10PqAbYv?^ph%kjUuv~dzR*xi9B1$RK{(>b93eJ*_Em5X zAu`kuDp);i5XT=jA%75YLKFni%# zc^L;!So;(T1DK>NiePH04I5jfooQ=<@ABAP-{&Yvd*A=fjl*N}Bg)U2A8U!^9s0zt z4j-*Q^L_N1n52$oNdf0g>s86RrX}BgJZ&8c!xw-N%QJoJUx zjjKIUCu2?q@tAvTOapyE3EthGK8G}PvQQcA+E}6{0I_vyq?eMTp8EJ&Ok+0k)Z^`# z!_Em8_+tii@a1&<#C1zkAq8%mE2hzALK}K_`E3!q6?Yy}gc}+u5}E}>Fm_tB7Axbn z)yX}(irU?>ADoKSQ6LtFvXDP7HVGpU)jUPw34i=xYyhJ!V40ZPDN;^WTk=-|8;ty+de+uD?6Mhu$ZV z8`*qx?9eYVnIl#pwPnJ}3Y0;^?cH&8n+n>08wu6##^M;_avcV{>u*c>q;@X3PhLOk zEjg=|!|}ap^|BQxanQUlI+fWXcLeqpDebIIGU_mV4DY%KGQh1pmhwfbBAn2o-7g{+ zc-R^3qPS?UQN}_$L)-3O+~Cy|Hx0Zo-a@gOQDy#ABS|S^patVB<7-McH+5`Cf++VV zS%FRewDx3dTh1nb!l;PX=Mlay_}RjsLH#8}La9G1x4XNx6&ftPT3O`nlLK_`EdP*uyuU!*jHUi#$g$8>|aSV#Sd7VDbreLkSc7o?HxQi zA2eQJ$TV=s$|RVaOOOgNFjJ%qL5IJD=nb_@(?>oNOUY_e?trhlvhm~e!+*=uJnlRA z{~lhki?Y9t{p$y>f7GObr9HHZ%w^yd4xLAXKF@NKa35WPWOrK6=@` z^22+;w#vDNuC$%d!6+Nn7>#uhA=Odd#PhT9$@+uR5gz~N_T6_S6&#ZBHw8l262pk4 z#ZIQLVD;#zJBDJ3sDmZb%+>YZ#gWHG6mDpV6j!F9ZKFG5VMJ`kOHtt%Aq-$`^yhFN zmks}y+YZM0bph~?FEgZmS5u9u9Fa(fQHcw;d-`)<#-bT`zmG^x7Y`fairT~Q$H{A5 z^^lB@XzES_eJ2hy6(=t3&%$Jfq#F>7!kZ8qCTrg&*3<1xz~DrJLL7edre}#!1o@ne z$a07=ucb5JLXYX#mAH!YDj}>zn-~mGISZeArV)OhyE1V47fbIy0AIm`=V3_^5}Tg~ z&McS?FWp_1fWD9dK+({Okl99k%#SIU`x1_PFDPT`JeuBasD*aAiAkj&0*vyLybLHz zeel1u=p<-I?&ygNPW@ojh<{Efyz|ogGv_R-;{eu~FY(j39qB8uWJRgw&`spLXVVVa z+LNVt+TC8;IEO#$;91qY7CgtAYW^pL!sMp4Ax{*4G(W$2s>N;j42KK zAypP~)H3wA1Ad-{-`3?efvws1=1mXen&%+`7--|9%Hl$JElUWlhvvPY_qoPe{82Gf z6~zNul#$Gq>{B6N<#SttZgnSsa96yfp&7A4_ z=TvX_B$uM2q_6gbquUY2pbC4E1*-f^gK)+g*oDtAL&i#WNCoN&pIaSKC;bOXV!wVZ z?5#v#)~f*eY5G3w!d%2m*+P~K5^VoaLD1lFT*)O}G%vjwG6~*(^D>!WjNoR&*>-;? z?6W~k>%w1t0uvUohA=SN7N+C02HuI2$R!-b;QEREu(>i$?r+F9x@{JGA=xsy04 zFVIYPp3aPq$f_HT)jUS=MlJBTem|%QWZV~Y&!hHRJp4dEJ44J3Nx)AYox*yRge~#r znC>hhErSCon@afpl_QQ(#Qw%+{x=h6m8q+;9O&36kohA{EwZesK0C(w)FmH(?PE|J4u9r&B93 zW1+qvk>)rttq?yybBD&)=ZLIWPMpO9cMDsZ(bttZe@=Fq6xX@NH9G{+g_PH2kpnnWO zx%;VRZUnvI*@SvIoTYy`e4!MB-6(I8vVLl16>JSnJnU41d$P21bqe4SYq9R3MBghl zRR-v3xlSmJk1>Ei4u8^Ptdp9wsAc$N-?U%flQ$drU(#dUCTs#EQoQL^q=l6qJ{=EL zBc{Kg7*+}sc2Z1%^K-sUs3w)6=t&YJWUO!5RZdhFCeLt2Fv2j`*nOY;c)MCV$q@-) zw1@fdr~4A9bb0+H)M3i;m2}hKn}k0{FQ(ui^P+dGHhSRyDWYpuOdVWxk;Ak;;M8+C(wb3 z{>(32urA&Gad2$frU}8>aIK7b!la5v()UGq*qx-a0WF8pHUpK-B$$Anp7D@@u(=1C zo^1PW#X*P5kIU4_x_mdKxhwoKWp?kSvhTHsolWVEM3?Rr)6GYz7Lz}0*u!mhf0Ff;my)-(Glr2Y4>lM+5eA`CxF zI2KWN<)Y-`&Aijb^UfW|YQ6~2HsYcKU}$WikH%_yIDu9f#3q}j%e>S4v04!QY*<-? zVbB>y`16q;N46yR84-$lbYm`=M>|K3FGqq{ZDM?e^@H*VS(FPgbIRce^EWjO~~WS17; z{qsAzE&4KPy5MKlZ>qA(GJv2VmHC zIp?7Y@Cx0Fu~52u^xPWkAt>l%pZ;zu1jwC9VuH+0=Ra3gQlz-ERR%E?gk@7WQ-Q`X?~q|!;j zyC^VyBD7O2uhxFFPk@-xJimxjb(1*<+nV?As_qE?(Cuk1Jmq>fmtts49Sg(vjY%K5 zWz%k_VAZZQQh#`8HXMbbm|{*Cq7`!b6yKTR4g0%fneJvD1`NLq%%Tq5A$ut)^0w^V zA%!A_Ckvx9g~uqw}EAn9?AvNui1s6O_d=#wy@Y(fF*n z8n%-TY0c>O*u;SaN@-=rJfrZ>t`8WGO46n>X3L(3NB}VZ#p>71kQjSGEdd?kaKFod z=EtL|Hl+y944I_rLf#D1(ic2o5logY)PP~%D0F}#na~!*Y%Rj;#r1obq-*(Va_pz7 zbg!oGny>)^0jJAoU)EL;YrI-WaAKwfZd@n5ca+q)j&p)Jh#=ophUvhL)7G6~o(^UqN z3xGf1@Tzw8P4(K@SX1m=LsQd*UkT#iPf-s5Y5P7(Js)q(MMcYEJw6s6lz>g?DG02b@Y8x$^-UF6|A zBlrYk$J9?ZYcF^xv5s%odiFAoz(taGp=O%CEzCrvk|4~62Ormg_mPu0pRAFS9T!NZ z&|$Q|4W0jp4G1}SC@??vob%Sv_}bgeAZ=*WH>MHdoFcBdZoiHNukrZI)$QYWw$#22 zkL)_~##dEn+_S;7+qcG+&g}ZUd!N5EHtOZ1w#*Z8U?;ceUpxMWJhI_<>Uf^O>L!5s zF*jy$7(Gn+<;(z+@|)gKlaGIq+tUt>_Mm}DoG+C40!e^cDGvD`IIXoX5}9ppov zoFGTFoXljk#SD6wge_Uy<~s5@B)(|;s9uoF)PjB$rs3RvE5Fp$-5ZD{bHq3sy`?1g zHr;;=9TJsD(w=aSWa3<}QBwsL=PL|d$<Q~-(pv*&;bDP zUExD2i##GLhvvFJM=}A6cwsD2DJX)9(Pt7P@D`ie`Em*-7^u8i*T@;rSo{4abEeYH z=|+@9>I1il9)%aOVnKLGC`^!~L9MA;dVW5=9iy&{z>1H8PTwzJw4c=LE3}F0g^%VM zbT~0G(?8)o;al?R6vcc_1!XyrrS{YnF3LZ9;%&LH6kf9A~xCUmuDsPOy#8eG;fk42TJcw9Xr*Mh|6^Eu-mZ#IykE4rnlIvvcF%!UucTq0(wYU1FXI7*Jad=|993HcA)L#cI3>mSL@ zcW*!_?u>bID<6uf+Idm@sD!`<=Y&#_Z9+CO(1NgMp~L#LLE6Y>-x+a$e}Kq?gaflu ze=iw>1TdbS@%umW-L3do+s;@fTN_Pn@^ZOVxtF)G@tf#rv_2Fyu&dS z&B1YqAyoxO?PC)#0DPUxClJyHO&)>jRl-*KZ|jqFWZFe+H$&7;X;ZmtexZGQR;yR0 zBReRP`o`|^ZaawG;uP&VP)z20YT^go-0#O8%Q?qP0Fbmy^PEP7*pI;CL5o?Ew&w;J z!TI#HHKhFlmjZ^a*Hv7NiIp-ju;v?2wf>J87*>*^@3do640I7IQN^S?Zjc=5ahPb5 zO41)YqLGmGMG^+HxCCEov62RFdci!N&R_x;OMEiWhV^d~Zi7I7;Uu43;CTu(btn`- zika}g-avK;GTuiuJB^)TWuV`b@iHx;%o{j%`^Y?M*GwPo4ip_rmiGV0O_VLovoTs( zBkTB9a1QG@G1rwtX=8WEmnE4OLx@j8&-oqSPV`r&+VJ+)bL$pZ<>`OjxX;^7gUN61!v}yM`{bZk>x2A|> z&vKO`UVes|aNo?^FyF`w)2?t_qtBwj2w{u8rkZLPH42Cy+fpoVi2nL)@k7vY=WVu_ zpJ#diO;&SB^5o)X6LkpgXps%iDVD(vP2v0Mup#cU-AbvL_<4bpqOh!usI1vv!^2KV z`HrYbV#SCNiBx(3y?_7W2mc9|y~M=3+?Y99-i-1l&i1e*Uk)273DuRj=#UyUL~A{< zhHByuvSc2-n2))7)MI(Sn+v{5-a+;%uMSV0BE$s2pb8dY_UupIX^$kMms6io=< zYu743j#goT|HZ_~D#ixO+mWNqHi(2wTK-OHb}`7;NJJXkQGnv+5q5!>0|E0Gs3QlI0=$8eNzl_pr|czt-=!8HAJt^wAmvjC;qIdDMHA` zN-bAsKvkDpZObw*r<%^38vI)ptwwURJp$<~q8YW`a_mYKqL!(Y*^AX5|yW3^HNxDv+2eKAM#MbRnDiY2?WL zLhYNt45y(UQ@$l2%MC?PE6aI^O6Xd&bf80&GMwLk;O?Y$q;_Dqs*f*$n!Dv}(`glT zfLrYrj`^gDP7v7@*eSZ*Y9DVJ07>0%ppS9IMWIz?um5UlVY!_)GP+q~>NEjh??-9a z=y#HkJ1D($0*UYmlXZTG^LmhQL=qBUjun@T2b8;}G366*5v!y&g=|i$@X@5@WCAQp z;jih24*Kd3>AvJvi>eT-`7#zM0Xq|xFLTnA~z2n609h_aZ8f((&V1XGP3?8?w=LVN3js&5Nut5A3ke&4UY9f zUQigAy^VW^2mS((r!)4>i^`T1xy#$>^q~=aFl{pkk}bviYU_pyk))6*N*&_2Phj_A zZ~DAL(IgrEa?He~XFX>YH)M;tke`Rn_YUZKNiXX917h$#OzsYwJ_t?m@6#rdJ{=7h znd`_iO3Rcsg5x|+kd0$LykZF@YZ*HO9`>#U5yac;It0l@8r^55GNJMDBQ<7y_RgZx?(&P-3m9L!p%6FX0{HUADy1!PDi>=K#;j40`G61|dy<55LF zYS=$8x@zg>e)|cd$c$P3Fa@{Or#`?`;g>k{oG7IP@1nr8Mvq@xS9-EgNwc`TJ{qW( zi{Mnx`Lq8`AsI`a`L*>FcPCx4 zebE5Zsts%zcxQ4Z zvz@z!3hDhdCrL04ApNY>{>1sWd9IVP;_|3do?xg8ZO<1aj@mRX9OBT_ctE*ReQH43 znjVE~WzhgFUl)+DvtmJ7fm<{*jP`ARaSJCIQErcjBvT)~MBDPYP`QN9;oAm96%+y1M|8yg$xgM`TIL5Wd-&c0u+e-;N-*Y*@D@2a<>e z;4xaos!<$DC%cx3Z1RBa8)efr=AuQdKi%JqU}FlM;vi-dV^keqIapXNt*ZU5ouLom zaC&r*eegtC=lk?}1F%hf6@XDZ1chIO@m*jl89T${lmTAGEBn~KxV-U{xuu6LJc58& zcYgAaIR^A&*@ULg1>Gw-9UFn^&?zI|>avzI^kk+6<2Ox^$owSXyMze`2S}uqzKhWt zoJ3M8`bVNm%t>qmZB>?jfN!3)K#!37xhoaVfh=+Vi4_PgCW|DkXu3gcmAd=7oU6K1 z+SKSMK5Oq8>8JZNPI#=KpL36S7fGBWng7f|@YcTF|dT~n3T?I#rQus@xAWyPQ zLvTlEHgfoLegyhFKXx75XJ5YIm|;8C&GR21^Nj>Qs7g5tynDv?$XOE0mjiyjfy?ym zH3`%R@7$**+PG@VP1Tj+x}k_w%gAan4(FK~8Pv4A&OJ+nolY0G(W>2t zR9XiAP>(>W%EKW6aqT5U(2jYIvOYn&lv8r>FBAs$t&T9I!EXfwt$E7bpOi#`Z1t8B zV?SP|)mm4l=dA{(BIp4gR%tP;gvCNZ@a^pIRj<=EM1KA1Tq?&*V+bsNF%B z!kIZi0v*^#z>=vPpHAgi>N!ZZm36LeZ_K9k1N3A2ezkQ0qFE|0urY%f zMz729jFcHR%xHT;MEBkaSu}`i*BhcneyI9K*Mk1fS^WF7?{t5LY4&QH3N$)zl&>5| zEC-+;yHgDbUOYXmdW@gH@F}M}JZiyVYiP#kYRV7aSzJF`COHiUPrnDN*K=%SKu@-6 z1R`yo)2C`JV~MgL@&!?$z1<(ID|tm7j|=_hO}N|Ep&S4X$MDoA=}nQtzAc!dj;PzU1Tb zn91#kf4Zkm(eVCI9g`bH$v~EbO?XYZ8DX}K<*5HyC-b2?P*H?(+fVBCAjwqyDbCIa zvIf%i^HF+oVgkk+Dv&)$(F_xZ!3)2_ZOO&oFd8+KSW$=g`sPK06=HH%zx|ME}59JFXycHR`Z1;{$=Tqo=} z>L|TI7v-a>3y$t27E7f6vq|+Mf8#{tS4GF>PI0Sa!jeD8*d|wSwOS?INOI_+HWkiZ zc$?=R^@bS-zg(V?>GeNI=i8lN>Z6)@;vlHqwX8eQsdwz{=a8nJ>?{NmPG~pTQv>J3 z4W)K-o5$w_&R3TUA==fduyAe-CnJNzn8PFYhx&SG18m-1=kDHe6rDMn-|!5mi2d+M zdTxzJt=rZ4ZRfX>k_F@t;MY4d{~iJ(fo!<2Y^>IS{3!-R=6u9#JQ%}K=u+5Fq7TZh zvs5$>at@~gpG^B2*QnU)6Vvt4@XwCE^>A8Lo}mV)!+JUamCJc*l3f5Wu3># zpVis2MtaNmY$jl$2<(9G=gY*yVEqsS}O&+hn4PUVR_^B<&MKmVLl6-zh z6fHYscU^}`-%_ps^?zCYW57&9p7TwxMV|M6fa@A)1%(@bGA?)70i zdxju44c^(Br_Q7$YZ@+b@SS%JnllJIL&P&mRO+%BasR82H8cCeerK(1sT7Qolog~x z(#c*3>tFiA)d;Z)9PZ>}VChUMCXYyFPRhGkmy?jSe;DtLy~g+V@L)kRUHlgMfyz9w z4>8-vR{zTmtzxhn~#_p<#{ax;k zwguEvd>al+!&m~a4~evWXi_13b~o%yx$e)F&>C$qumz|W)xw;gR+T&8H&ea$=j_u) zN4Tgon3DFriM!XUeQ_2}A!Q~=(iED@5XKL#J9p0SGI?D?PC<ivHYo5!W zG3=QPh05Ae!N@z$T#_E5S}7oBq&DTX9O5k~>$AL;Sa3I7`eF1rY}oEWsSZJ(k(`>U zz0YyxhPg>i9NfM|d#uUptpUD{afQ_Iq@Bxc0uCpK}v|>iV$XJM}qlzc-}i`TZl{ z4ToURCuz-d6nf!g1j8Q~GV^N33(~W&WB(2Udu+Uj^AN}(>Ro9kI%+jxp!CjnXg16q z!o0oW-YOgMZ53+4U<1-FiQc&FfAHug>Ii*IkD<>4N{~x+asUTNP7jzzwbq}iQq$g2 zQ%gBmEBDl3g*2vHR6|x9)T_8A3k3-`S{vLilAT6Ar#mA{u3Jm;a}UcQv(#$eQU89Z zSZ(X`hV!P|XwUQ8wl!M|zsFV=cVAap^T{(>7wE>wdRm9rjE)XXSmQYWqy=|D*#5gy zo=kWIx4mz@BQ8psy0{G7976nbhN?_hBPSU(k1p@U4qNA&hqWiiZDj0|&4H8gi0V+<4nJpBl)18zMAOp z*7q@#7e!ZEi<5UVMD&8R1WdowY0KuV^wxH;-p$nN0vF%H%4{ZN) znhEz3vfd-BRt_0Jw03abe*pUS`8oVPlHS62&n2yy4bW_STxZ_)#Cyvfq-82fT2W{q z>A})ZZ|z(oIbCH&-fm36Exu`e{E2iQRal$SUPZE z=eO0TvxO%Ff`v+ZqL31R(g{#OcQV%SeXe--A*YWPZ_$MNGFq0&cOuNnr5W@Z4Q6O=R)21?f_4&_jqgX{{q z<&!(20hbH6Yb7$jc4F{jbE8<`3ekU=L~(<3(4QBzK0S<|zj%RRfzuX@;1#D~ofkHD>oX~Yt7!nA;eyStVbjL z=p^WjkqPfq^jJ|YSE~p$oLCi;&kxRKipL+<)Jm9>>?tYG!%RLQf2FOaX^J(YOo_bN z@0u9v7yF(Beh;!NferoW>WY1QcEWIs$<)%vsO)`H%A_am&kRqiN4^rFN?VBgm9|tteL1bI{w@nNXHnXBD@*cZ>M1$<+!SwR^mC4Eu~kM6!tLP zI(g%Dh4>0OMv>f%v`keSqn_+sfoBm)#8&WEuIp{N&6anc;y5deO0_{#=tDm%n#aWK zwm0XK=Y$5IadK=!%Wkv(&4u^=w{`2Qz3|5XBvYK4sxF#!^Vu0TCdSqdP$8}PYUatZ z;K|M)rnp7|hywngoo;Mh5stryw4~|B8zAvxL}eJvy(e6ONzHLVLp5ThTIQqVXcRmA zG8>vPam531swg1%+PLVKovB#s7&JRQay2}02ioJU*i<3s%KkY^HwY=!0vREhbp%&% z!8oAqeb-!`0*gp#hG}iXYOI9D*|5`>1Ry*V?XC&`z5aC9W=I+U!+^-0M|a{CfMiH! zo{J^zHUx8S0#8;d|FGh|ziC~&_OUwSV}o7WL(W><(#L&_5#|~~D`y}LNB@v;V&`v$ zxj%*%w0@S>tAQ`=>v49cWJ6^`pA(u*$QEc^+up<3V`3)8v0&S&uRtIy(-$!DUh(sz zOEOYaz;-YG>veP6X+kMIOaJw4p`;V3b=2zx<%vKO5QyDM9wn|AxKX1Rwqvyc4IE*JpJ+E5>`>t(N_K9+`VlZNmODXE+pm6JRHdgwd9ldEYyYL37^GefR zgkrzjnM;eD`RW3xQjE0O1)nAYFdsGp7%Qf8m6^(F&7kxo>Rn>TCWF8#ZB@-w^Ez(% zB$mL8gRWCWq+WRu&#`QIX`=Ez;O6k@?;7Mz$OYupEyBSD8cYMFJT>0nf1T|=*|uo zahawg|B|Gi57j*`1kX#h;*Xnnz5m{Lxxwy*@hECrb`y;YIP9<*8Md!f)he)TE|n9j zgX?(Tisi+QnEUt9UBW+ZiKY#Wj+Fj+A{xHtf2>^oaIMw#mEdF9{GRSbA8!J*w%!?( z7q^0JAVYi%yr)F;_c^G3^*t&(`?zDl8fGns#z$qvB>pn>ReHKzqqa_HRRfxyE-nDA z=D+AN{(sS3P$z02beK7n3`C(IbD}Wh75I*Cz$n@P;fD*QN2wc3p4d_!Y@hI^1%YefSS; zyv_~-%$!Vyn+*DjT;}yg!ps$^;-x@JkB=zX`hJ}|>p7^|(nmrGA9qJWVdp{8KR_Ds zZUwc(_D?qTNNF08JpDl$p(4jq&2VJjG*|a`kfgXUh#e;bX4#r#A+lkvx+jseFIc3h4_^ra` ztFn#W@ZWC>s!#zgjK!nPuQgX$RwT_g2om7vlQQd;N9|0dG6;2h;TWe2>Tcc`+X3UC z8kl#g4%AYNajl$&UUfyQh9`>UgSh5^{Z}c$ri#RMj2Nf;-|DGj-^<9KDMzgik5_eb zteU`DmCEKKO~JvyN2cE%9D%0?lHDhCneDYzR6Bz5OX?aG~B36;OV4{;|knT+@=|W;fNd!8tT-u9HWfc zAEqBWUcJhxo?-sfmFtE)YCiKEhd&4@bY#yo{sXwE_y_QJ8RvPsr>pJhU3T%4(3bS? zHoNnawQm`x$mgh`O5M|O$Ytq3yODnYKaQOLEKA=hC_V+6?cR6WTn0v@*^L}+{R0@@ zzsugJcRP#wfyym%=hrss126oe{sCOyoqNSi{sWjkm;QSveUQCUFC-H$4v}TZrTDsh z;$wD_lDdLqSqmx&!BDbuiHT;LuiSKBR#6Nur;po^WAh78CEywM|ML8RaZ{#nvGeP=aYmGD>EClc{PC{+ z%30znXFAazNAvHaFzT%0#>G*ejC161;~}73@LsO<%6&yztfZxTx2mj@G$IYtFO*VXxy(OpIkg-@v;^29u4tAM8;`QF>O?AE2+ey>_0E{%Yx`p`3t$`d_#Y zA`hQFYy4UAMWUvo3yPtB1BEe~Z09ECtwD+cb0gGtDs0=XAR2UN%jYtZzJb|CGmrq) zR!^^q?RA*xMtnpX<5|FmZywq3r%J1r?e`JR)h%C3><1T9O`eR?lA=`0(R_PiLqCpr zEbmA+rBNBS^o^h?7DLlT6;n|cQjGPQcwWo!gX=Bba4O^B*AVU*bB+>&wMWOV6ye%$ zl}#l#&-hl+-*&WKL{f}Nh|CpiSR1!ezQ~YDLh+Hj57unYA7(}Rzltz!P+Y&&bTwv( zdJ(2pKE3lICA{|eYRl~_zof+E_Ekcj;Y(34?%W`dp?gAxo@1bBeZ!ZhFAaBbP~8n7 z2YB~^5LfzA?avj;u~_riM~jIfKu2U5zixK=Y;;rx2`S^PYCFnLWoT<|ygpWOJ428i zy#I1Aa!kn29N^ki)_3*9OO$KS%E&*D)x02x5}Z*tH~?=IXlQlTQFe&psS^yNz;4Gz9Rd3&)d{PSf(w>dMr((m69J`Uh~B> zzFjGIRaoPLr6il{z$b}<>MdGFRRYi}WjRckRn!eb#9s9eTRmu_%3GDl2~h!j7R!!N zAkUvov1|_iYpOThFZs4ixCw-{q1^G9rG(|QN)+2@XC+O34lk^-$c7z0oT` zd9cQ@r$oW{ok@4cdLf@vE7R*I+Cg*1b=83SBX75z$C-O=P3UB8JCy%YV72~RBAWSE zR4rzg(p1lf3h;`5K(g=9&(?La@nE2QJU*+>X{0=9zh3EFG|D{6I))HcC4VeA!Cf#x z#p3@RL>D3pWt(FE0Bj#Fz+$UMs2EqZ?ayuddkFpaE$XLl(fCE41T=x6XRB%-=Sj3@ zhP67ShC82_1e2Z$sYK_`;`jD zU`PaNi+`^txqz%z+AGr6#hNRMei*PyH}_RTF61S!n6$T{swwNgO!rc9wBH22K00gw zRL;8lPH4W_7DJz!c-P{&qI2vZ!(~Z>O~|-TJm7%??Lw7~R-ONi%>O;|INtieb<^S0 zH~Sg?UoihSsx&Jm0Y6msh{IX=6PohC7<=CqK(!_VQ6cAZ=^3Ip%0&e4JmyFlt7+)L=F~UYZRB9d4Ggg?p~L<{DRIk0RZ%8GO-9OHT9E^s zEri65VPhSCZRUc9(GqVl{&BwlPgQ4ml)o6gqu$I3p_^)8IuY50!Ks7cde;LW;m0JC z`tWGGvgC>0v}s211Snpp&z)%3J?&u6S^l@}4WU93H~ z=pHM`!9nzLyS7%`4jCqJc8LoK{Nan2a>L1* z&In)!oYL8+oKU{j&=A`-Qs-;(4Ikjaf{%2Z3u49w#q08=@0?#mu@S&XXqLeVkGU1o zD~CFh9$(@+&9i^VP5C!2-uuQse^$hAVs%!j@2r^g=@jReA{?nTretnKwuOjWTD2dm z7XhWc&qS6QhrXfwd!BDgC@jNaf2`c1YvI(Nb{kl z`J^NLi8X?_;=v^Ss9pI-)YENNUwzU4uA;Mhd7QWBZCbqSf;2j_5h3jLO)e4pM|-rF z?oZa)8I#{mtdiO>TAit8fzGpNIg6emg|20nLM-6*FQ>$Y@Blv(3Q=gRt75b@@O*&}8%MLSXE zuR(qW^AzXsaO3NjP^D&$5U!GBK=n8MGTWYWllOeNDeEhSfKSncK*~7Q*_k4s5+{1b z_5$N{fJQf)Y-6iN;e2FCW;$#dq`1SPGSBtCN$+wrfe(Ngul%$m?)})Por$5FT3Mv_ zr{Co@%Mb~??-ivlQP-HbS3_;$YSv7G6ZWCk$_5d~(UWl_wqVpq=7 zm;`-D56h*wAxGc>dvT!m28M>=I=Is4!UcD&esJ-rF8pHb2KXeUWe8@Lj&?F$yQiYqTs&3}nZ4w$NfP`9(|!4t{>^X-G;oe? zHQ9@GupN83<10-h;gn(MXJ&a+d8%w)+8%kek`VXBsGZMzLN3PyO!u*ABd+uP)8$8N z>yfew-_`^R!q*l?^`xDOr*1pro4ZA}HUGQ!E%L%{-e8W|D&CS=2xlhUw#&`HJ_VP{TBbXyV^hu5x3f9#0>8tM$ zg}0yAvk-m4E1#RD45>N~f0awVhEjG@^Ri^v0BioG>@~d_cLl~{Z{V$Jh8}XmaKOT> zf2z6*x~d!m4|`6c<(ghY;lf}t9>UnrI9W@QbV`25tM5YktA3U0E~@1SF~cvT=oA5D;xFjK!wCVEhsTkFSZmUbR;A9P?dR0hxxmZPzfY8qxNk``Pw z1}t2M^JzdBTs9+!XvdG5^99R?*^+*fcbP`Sn{WgiFJ!qK^;dFndRI0Z;5PM@tDNl& zyo@>=jQq8j(J-hFHRZj0ZVM|?iT!qt6NO`kDwzLU8+8BgUGNlT4J0L`+Lva?bY6M) zq)I@uT;Vv}_Bnt}6CI3YsGCOCk{zQwr~g~{8nhU5Y39CSs7I>!oRvWf4aY7K_y_R< zZl^nc9W6Ks)9;0R^)M@m(xIxU7(O(#St-SMIvMLP`RfUt!OYuD$7~I5@ui+muOk7-3W6j)yB9c@6|;qdcX7b%%ZVIp-<7)qbF}rg-@oplk~jx0>c@ zEjIqNZmMi|S+=A&TtH$@s? zJaoXKO4E_L(PA4^reFhVtmk(7%O9s06VD1md#sLYK>_U#;80&%J_Agm+Pxv;sQn%c zV8UPmG6));0`^Q9XZTmv8^qV<+f}2x9Bk6|2lcg0wVzy@V zoVG_L+||-EDSCO2>~GUH5K6h94JH=4XqBKK^m>mSRGr@~_QC4D1T>pDKdAPG*Z5V! zyLy3KP`pYIIzA#Y#F>`QiAk<@*xHBH%^B2X{*8=WWc4CScoDxY9T*Ax2cU}K=8K?ZK=rVGvd_9z5MKF3~N4YVr_o6B_wr2R6w1fHHua*5BJr_U6?drj2 zsFIV`Ftw%e9e zNA+c?sRe3jQMtNz+f(?Ry*Rt&mZ?%!tnANc9^2GmIKSjbQW3+WuKFImV;4z6wADt< z_#*2TSn>UEb{H=2PRZ!_L@PJzSyekVDA+2fRY1_vGrMV_EFOt6?njMs+-pSm4wqH- z?K(J+Dk+kI`g=}rPl3pephxoUtK}`xQ$GV(3lyJAQ2jglED^-$NS{&1I~f9h6UAVeS7O+;6{wN3`(Vb1+txWd z^)7-vaUw5r5uI7&E|Sr~(u>xiD^c%@QC_NU_&aR*U^GT_4wDPN2-*(Q-jUxHW^osD zZ!L6_Ou~O?_h5zAYH-Z_ZU~#}&MeM^?AJ98qoBdyCB^}g<uNYWqJq(O#Xhm<>21^|U&a4W9#ddR4k8?7z$8_3O$AV6W~qAqQEjqjG}z_j z{9d}r(pDBSe*HuHYVSU|lt{qq!t-b%TGn$=r( z_hm=c&dGsNY;(rb0d(J&?Nz$(Ng3xXJu8#pTv4pOi2wndKH{7Qv7Fh;l=t7#`7Er6 zuEj}m);?Kl3=ywO6UodkG(8oq*PS~@Y+xM^A2S_*j&-tPl@Aja9I3{x?tRQKkhV_*{ zqt?C1wswb6Me>5%&oA&G81X=P>eQ$i+xvhdIY}qum&`rqz|_=4;vO)QIZ@Li;eBVb z>c;9IvB1x|pwm!lbUXvHpmvM!>nb9Q|fGv%a(R zV1>8{%KSa>TJYT{diwwpkRg3`V?U7)5?JyM)B#aWjRbhGhEy$_s2G|x{4S;OdESC& zvhxY&JCPq#$3ii-+sK7u!R)j)c3qp>( zexiqN7Ao05hYw;$&S)kRLflZdyz|B^!nbOkw8(1GxyTShkqpOWnaVH2d9pd>R%ebv zPpyx7f_di05>&c*3Gr1 z&(+h4wS-@lpFgi9BlxTxd;X<&L4y?4YnjWOi-z{{wsY2si@y|mXa+r)M2&&Y*8tT8 zW=d2V>u6x{qDueE2#}wZtTyP0$JHdx&FqcxuASK($3!^lM% z;qnS7REpQbAQ9CmUE9j3ZLq5(E|7#4&|k`74*a+8xdV#y?`Wp{8Em*>jxPqvJ?wru#T85sCa71QuFhyDKKTe9*-)6?Sda>ndBzv2VN{nc75e zfy8ds&4le#^vu{ToTu{viY=%1?XP3fe1%N(7K;jN^xV*1paFU?zR?rXo*v=psURuN z*s@UkbvNaiYs7m(RX?X6F1`jWwf2xtxDdJoOY9@mLK-w~X!>`w_3V6oMRn(WX*I5e zHo0z2g5>MCY~HbxPrCtbDIGI$+7TRuYGvp?*kQn7leSoq=FdO%L1XL7JXJqwTEeYB z`mTMtVf^*o$@0m_$F8CZhFaX{DdKhqp{CzfCAU`3O-wvXJqUgou9C6ht_FxTuVv`1 zC9EsD7?b~|%=6u)1oCSgaytWGsU!hw-j%m|;`@4Ee3M668&8us^!1Wt10@rVtzH;r zutf2Qu)2~-1H|lc_8a3YbjdYG>{gHusPRc_PM?}TI_nwsU0p1#vE8~bcn}SQL&Eks zMc=f(cF6;bH%1#=R3|I%u0t{wqv(A+X0F|h35||bqT|i$%gk|3DDL%h+fJ({k)DuC zqZC|Hg@JCIO*vO!DC@;pNXVZ+`@LODZsLsqN=MvRJ4L2e647pcqEv31e;VA<=9k6( z{razOtng5He|emTkc-9psHv9gO4`wJ;(gZ9z>nrxqZw+h_<=uTK0)}zlbfERU3=F~ zR|H5NNQwJ_zAd|kh2q@qPEXQ(nmNyvV%rghAY4OrYVq(?rZOoZaq8KvmmDB|d1L^2 z$|o#X!X?GX`wyW0^GioZIu}MVZaKXWyV#bdhbBh&Ffyd1Imo%0Uvl45=XYl!o;g!4wL;6iiCiP^p!&OPncpUbq#%nayR`V1 z6|GIepKMnP{=VlDrmzFN3V+cS+bjqSx4>L%bo)J65aX79nq6|XqJI_m`RA;S<%ZMV zIeTa$?GRIwGf$UUz5ypje-xV^osPX+Zy1}W^$YXiNPO%kj5~A$D}AKc1l6{$W&5y; zh3xoqldqtp0e3@eOgD*}v<2@geV?ZFpT_L%{AK3R87j^vi2Cl72r#!{3LrSY`>MKb zYb_)7p+0ORKXJl>yj@ZXcaJntqKhSx!Q7Zau&I2Pe`K4QF^G|IInD2W<5o`_*{z*8 z;h3xn8uy)x)RTMYyG#!RwY8zpFxGQYv&X`woz)byjSq`@@9in=QKFDq-dj*1Kc+}p zRTWYMEh-^aXUVVevXhIoBJedBNSg2OgEmWwHA{Ng77lp_3~2$zecK=TH+k(rK~JXC zoFq9k!!(4}Rsle*Z>26A9?+&u?_4rTg(PVX!7~>f(7PIh=1+Mpma%Uk^Blu^-EQAE z(|5&$Da)0uJuG-$9OLdQ)SaFLWW*h~1&!3z2-=nr;wFkjO%0Er_b^-GvVIh}`BQR@ zO_y9jLmO5L^`m?^1PAMqb>tMD#VSN|qGhrMwZh@cZuKwpwSZKTXzZ8|A~S||j=tHd z+SUnun=A=cgf%+ggDzBeE=RlHhO-tHTUkqUP7Qo8LobBWSVjwCBl>ZK48d^H^0jP; zP-o1-!0-d;*C;ath-A0%XO|jp&$49Kcj5X-ViH|uOUFg%eRhh`V^{g1?`Y|`77RkO zwSj$2$K8bv#}LEN7VdDx0!{=5NJ zx}VZ@uA$svNrbH`E=YJv$idp2kB%=#hV|JH1zep9Y|RO_5SEgxK4!I~dkus_;|u|f zq=df*wD`DT9-~+CdWG#}p|A&A3a3YFzo`RX;EeA+0G#@TKH;VT>H=(+M)Ts`hf#`hqQX_ zacO1wp+xjtj*(2zrtZ_D#V;sXf*hoXzDEe7lppPupYHPKmjqo%2L$j!vBw{~303@^ zA2!b2*Yp_fuNNImDJjrK+seeFsNEKcEip(hX%kMrc^vE7fv0|(&(A`uO@?Sp>QiYo zxieAYN`xA&-1E_^#wJ*dP+92Av0#xA;s+04vHp-7!->KTHaN!4ZQ8{cm95DQ!Fw!9 zpG6<0pghNA;MYSXJdO8vC{jHmde%Px_WZ2!s;Tu5roRXP?n^;%un*ro-%<-bszSh! zGs{!K_<{w$PYys^dw|DuH-U?pcYxFBxA0ea?F}v9O%v@wWlPOl>t7@@BMslrdo3yN z!?}2ZT5?qM-B{%>F&PTv?e-rxXmOO^_6Syk11~nNkFxdGbfTCX?6gs6ZN(p3=SN(6 zUsVdr1&?Xa!UVROAD+Jdt2#veCo|xQ*}J-ZrnK7DWp0@GF*kLAZsig05n+^B*Dm>C zT;TR?3Z~YZ`5+R0-%Cuzt7?}#L$dC$FXxPrI_3|k8V5c7zxDNdRHA=Cr1QCcm5z>5 zrD#@%o2sog!rD)c)0$NNMpGf!l{}`x%~*65+8N{6{$+k*FPh?lG~ZW*pHl3IIVDf} zWPRc7?2>Fjm0-O@kYx&(KIBtwhB&px-;-SDPWo;Z?gTE&pZ4#)NL8e>^;T}=1u(_| zN+%|xe#Jy{U&pzNzmTPljphGUjg%z_K{wp%7#L7Q@_b)dbCPqmAv(I%ANF*MXCAb9 z(%JzAk35=th?Q|S@*j6FM|Pp}+NV;h~~?hB_cg$N8D9-PYnOM$ zCV8s9Icl}IKZ)V7h|RY4*4wTpUDT3fw_JDrET>Y+>I0@%qCNUg()jPI!U)rla~+u+5#$7^R8CbkNTQp#wn_kC{hTm-i?sPA)BaiH4#@lCR~D?awNCjH!VD zlzrp1mALOH4C&`PUGyyxl}zIOtslz)?16;1xEg*!w&cj}|PB!sGu@|`*idrd^ zIey$?VCZSNl=3-cdA{>}!GK1wkS6jjPxf+WAYqTqjeE&aYtw1!2@{U;FrW%rL*b$J z6A!;Br&XSNN}|UV9uAC@R+vEfeNdKnYH?Cb|JRJ+kz&%e|2`6r*&agGVEXQE9gVi9 zJX?>Gt4iv|6cXsgi*(N1fq3EEEaa+#(`0_;`j=|0u8MZj5rET}kB=+sZBQ`U!tVVK zON3GQf`foTQCWh`f{1Jk13B?-uMdRjlLl7!swZon#b8f%2poeEU9sosM~TQ4AjJ(Z6FgWuJy#}N6ADN{|TDahtIFS?+*$HB+WJsJ!sJ{OMvOpH#YHB z^o@`Isu#3sabvLZn`z7pjc)b?KWiXWN@$3Md^dhnN7T(XlXaw2v!bbgE&Rg@lm6nL z|H&{WX?7nchczm$w!+WZKBX;nyC+y0qXipx)xXN&$iu_4>C zt^CAkj`=97Dv$E#!E|ZlKYC@EOk_8R&5; zn7kOBXV-&6+kbXs9zKc_pkcNF&>JoRXp)$pQP;9SQ)qZAU-`eSOi^5U38hUB+qi$A zXY`N%(Z0>=~XxH3Z2$2y1K#A1=v|- zU`hvcu~4tDYKE`wVaopD?NNSQ`7}Cd64zVoqBV;RYKPL+Rj&nwQ(MFI$dzvZVn>fE zdv#w$Ds#Gl(IG&4#Kp1Zuc{r3sfhsx?DgOA2N|pU=q4#jMjIKXyp}GkT&!+p;Xk9> zNSvGNoZ3>6t%TK1xsx{KJ;gnneXzb7R)9<#v+{H-V|^7$@{@lu{LAVwq_trk#aA5#|n}IY4*t#09$nW}Wn0l@-+^O>NrzLA) zxt!WLX`*n{s>6?m?3VmC6~Q3k?m^hQhpU9NhT>l=yAzpWM{??F2N}yLxYsPmQ`+iaT}gHT}WdYlt(r)Rf_eJW8hC^!@ufw|8-LJ zK1z?B>s{CruarF;6Lht-q~$;jCNh}IZfnx-x9n?cQN*;=q)B4&ro+WBc>K-KVc%}U z&en2sp^Gm_XCRaa*zQy4w@dU&pl->TJ@LHen{xJQZ!Rcpc%K?#omz|k%uQe*eD_-h ztv|z#idn4Nv%25>-(-FIB_COE^220 zW_z&r(HrTUc1|U%JH;&`P6c86pi@aSk{uMuW1-Qm?|HJ{;$;{!nPe(gZWQO_Qa<-N zz#I=kj!XYqy3XNG;E9dTK%begL2~fY>kHtpJmzPffsZ(@3ydr4(?~t2wsxTAT=P#b zL*Erlg18ti-Wz3o{v+9q6mjsDt+Jl>M8QXd*`+(-tnP+UO3ck3CXOh<7Ji7w%F@iX7^A-FI0VghUj~ z2M|cIa=*7;Yl(BEzdcS2*Ipkl~fabDV9%Qx2-b*Y>8KQ$TCR!VgLsPA!?z`(Ifum-?Tr51Xk;V6gobFn-O=B`x1>s(7MrZauD-cpWd&`zq~%a+tn{oVoldq?hF$52pu(QQAkf?qs7Dd;6=srN*!Kv18n3B2+~_Z`@d!c3So*wh&+G#63JA z&4xyVO+lXlf{SB_0&k$Jpe84?$c*c;=ccrLH}>=tpkl238Bu~R1Do3UU!TS|`o6Q- zvnind-7(MHo`k=T5g3NuClUT-X#`|YEFRM4U6JWa60vV-=C99Twi9S|eTM0Y%7V&L z92XR;dW(FcRA2pStC-L#;n@jyiO=282muLVX6}Br_%Sgm0;InBZric%R8DbMvtttF zaQVB;mBsK*WK<)HOiVK;{a=i7>eiD2B9BgU$)PAO@?B(7)fQ4?FJ>_}Nulwj*9+4k zfytm?SjM&&5m5_3)APE?Ebx71-M%sC{X6@`=t~^mR3-4Y%cWuo7=mr>T5xr!@L45N z(EG=V)8|I@j8}OLvr@%x@4h^!T(WF+2Th{@M_PgA?2;HMsr+xXx0PYS5y*gl0H&t& zx0Nvh=N~E^pJizo(2k9B?dz8w&@eazp33dl1Hcq zD$|DCJ@<0HIDp;mk82q3lH!M(u_d2tC~XduorRx}Q+)cAL#$)Ql*GaSHj^PnqFZeqk}} z-W)3DbQZ5TY_M^n-$X{ycn!$o94K2`VO|PT55_O_Q39Zl3*f2YANV}him;w|dWi*uTkoAY*c`u9z^q>79oOFpCZ>3kU z2<(>*EM|Lz=G1j+UgW$-i!U8}15jd>;Qiz&0XpX*8Zg#L9j`>53sgbKyxlNEMl+Ie zVT{}>CT+jQUd3rJMVHZuuykZ#Hc-$@NUb~$BunoKtZ_Rio&ODh`FpNDyuLZY`|#bu zBn>1|wR)uGnZxHjLXRRZNeaVH0;bo=j|-WMUH&wd zwI;;z6LSBy*+gZhfb5v`U@I7L+40k+@BYa=bg>{-PYjxh2|+K_bIGC>&xz4AvG%Lq zn1ny&T%BJ!jxdy}$~h9AIbg`f??h8+;c0;-+Z$$*OzfXw#LL(&O zpGX%d(zLdmNlHG+o1DkO?+DFd7gfsL#`HjIb7=9@bn%pt`5~G*7hjTAGN?ymO(=*i zn@U2sU;pa>zSx_v+z;Txuav1BNIK*h<5uKrk$`^SyLkk(812&Y08SA3amUW|laHl6@%2JP4-$rJ~} z+{B>Dwm~yyCba%Amgufc+*7BfSgT#b_*>qj-f_drbArLB$annAl+Y6OXO`ZvC{%2o zLaP7(jWr2ipR;b9(hQmBA{+iPkny-vcu-L`mtl$Of0yJqn>SS#RgUZh|F%4b5JH2< zNiv~ha{j{arj=AmtA>YL9c$iH{q{L0!v-%Vv<+kklnb2aj5~JC$__@0?t+(XG{R!_ zE59IB7VImCO>57Q3t2(0;MF0z;<2EGGGX%y%G5id^Au zb5wbTnOf)T3d6K{Nt#0khHCx1iw;H`$sY=99~Cawp3kNxiAOFD_uI`Zg(ZReF(EgQ zpEPy6p6E4I2Cg74EgWXg)Eo|O=~agH?=jAYE_KArY39A!_l=ur{MSe(H zik{%4I0eRogs3XwvHVuu#L41fsuoZiyefamj|Wc>8@g7s=vdrg%bYdt?HT~+9n31R zwR|KHdXRF0mDK#cf{*d(?(Xy|>TA4>MF3uC^0O=Qq5SKiO=%4qAId{48+(1wFX83g z+XLBzJ2Wk8}^b+2Muj!BT`&(UZ=o`y&wXi(H77?g9JzIF3jPl#| zimq%LBCzxLORmj>1!h765HoG!35hwHZUu`snRsxg^nqdqS2=?mm|-;ox1;c{=v=t5Skmhw^^wE2E!`^V`gX!QawN+Fq)~VGIX)LlNA$yVnVM{{0LUyhaqPo=6ADgLMt~9?SvWIblSHRDIv- zLV(n(80dl2w8B>TixD^P(WPq+zn_^3t7bbnyjv$Fpdn2xH!cGtf^Uy7Fq&EPqCXox zyGz*}TYM?=ehrKkToI2(PJOI&fanOgG+Idbjw=s>RVSCn<>&x=futVc>EJBLt}8Yn zSJLAKk!4`3K`mU-qffQGPsQ-f`w`k<&s06I%9%15KPI+V#p=S$fw>@+ACk$QWJH#L zoq&?5?~>(U*KZ{7~FmzBhSXn^ere|T#9U)v^3;BdT0_=tJ zV+P}UA_WJmwuNHad{<6PlYp$EGUO)|O^%Xy3TBO1pSu1g84Ld-X&aA$-h|cz3 zV4;U=^36!0%RhK5ecnL&$N1jcNXn$lx@&)S7OlwJG%`-Cz+S{7o6fK|9|ZDaE3s;z zh9h>%+)Gh@604)bSRQ)&MIP|_E-gNT-WUFS64~N?d2JDQWSp?E*Wq@olCSgQ* z-Nx9Ynxqw4VCDIiu6>7V14URvd#$;$*W*EPIH6 z=@{orfhhvWz606NM3X^5w8V+#tZzbo4`4t>ieJob$?wdH&cFAtyIW(-6UC%@YL`Zh z&IyO1s&#rNDYL=JjjFFeg9GloTdX&^D4*18#e2V`&y8~?a1VUr^Fh7?MIjA{{W17Jx3eQJ32hnckbGgRQ8jfm~mXugnf6o=W<@P3u83uc7 zYy9{Q&P*BhUWw2^CYAUh=tlkXc$4Ll`?fW2V47ZdjZZ77@%Rw==%KQy0FUshyPxpf zFE58lA_a`h>C>YN1TUyC4TeKn5J)LbZ*7YVZ|SR0Ps^daQ@1NCmj9c?+3vP6@XdKk zflXcKYVVTQ5vGOT&&ji94m(^$&Bh{ExU?-64$rE3=(G`W;D|xHK}vFb$d;~%HQ)SR zxyMgr{`{#&em~mY1DGOM=qw>k53cNzR-WY#$w#q8Jb)CHN2sxZ$@{0p{R89{#64Ue zr2hfnC*7d?6C)bWj&)1t>A$3#y*tPq^8D#%r^_|*N&m?m6HKj?W~a?ke1E|Jr5(9K zR^FwV`^om(#t!`h^)N#@ns+Vd zmnon%>JObok++h4Pe%cQQeu_1jP%*ipT-1~&LB-eQxa_W>&XP<;Zf0tcKTA?PwYil z-Y`9t9F|Q)$)=)-wA;!2_HR!_bg+rC;f`ie$Me6$te6I@XW6Nr*8hwRm2kf#A0y(9 zIjxEY>7}$`0hGh}dm^_LY97;`)+J4H+UHP1BdGBE)*LuF!$x*hMt3CgahQhaB-_{h zY__f9?Y+z$zx3s2kM^WRkQy4uJVAEYY zgQUu0mmv3}joo3+@KHC3cB1Cn^fPfgFGer(z@lk~Mw-s%zXaByEYEZX&$&3w+3{@IGw3GT5iW2J%5R2z% zpRp>mE8g4eZLB`uVV5g5Zi9t&Y)p8N`-YJ{(SO@FG$br^lu1Ap`gxF@V~y>!d)t>y zn<3=~Lqo_E&mzQvPAA`WW7S>;w=Q=pYz*g&Xvx;>kS48(8r(oQ4th?jM*v|>b;hR_ zO#SOWjv5NnEF{%&GMF;V&3;CtfFI4H5$LFre6N>r0jw zvsTxH?=kCFA$q2g`gEw|N!$N~u);-qw#>2sCdtxvAGofr_zAgmQAAu=OBM3V67q}- z5?`qL35dWup@01GTi_m!Xtprcxx=EJ^Gz;ee`^5-9uLt{y*XST^D{F0a?6;B{);Vf z#Bg(bpp+*slFki|rPaz6=+sjWZ2V)btgZ&>qpD*}PS(fd6c~;KI_sy!R?aJ4>A_xD=Nl}HC>NbClNi%g$ncjJ(}WH@fO0vr=7$dNzMq~BYczC^p47W z!VxgVCm_azuRr!rxBI;2pGYqSw?zkDWgoc0lFLBS2<%&!+37h!$#K`(fZBUMgC)!P z$zN`Hs>(wA*nhY3mR$tkA2hbItPONG(vBo!iq;%=-{+GQk^9f!i%4YneeCcvS37=@ zDQJhf!Lrb~RZe$?;VIPU+Bbi`i@xq8v4(cezmHW-#`Vtf|I(8NAq+j=*Nwugo+W9O zoLm*WPYEM1-`eFaigp@Kqr+tfr*A8qN(_F#HiO5$orf-%%2dB(oK-8YlvN4m8s*ug zQ6t(VPeS;2Z7B_P4eWlvWB}xH#w+pHcEfu<;e7sok1f$f%Y~#R{fh`4F9^}5Vt)yI z+$?DV9g*x=R-w&$w%-fUBp0DLoAn2aUvBIabj87sX0FriFbW^4sk{t-8IN@{WB>gJ zP#7Cn>cw7utYP})<=Zkxj03^}87Fv*ypQJs8EtXaiEm;B`^A3GQrEY|yk>=k?H z{8AMP(1QVo#|>#D^!|RGO|1)FVT1X;|Mq44f>A9eYxLQb>D+fxenJNjV!S=)y{-Vx zA@KhY^^QTJEYY@Z8>?;Gwr$(CZQHiZ)wXSWwQbw(+xwh*->aw}nGqRLvnmQ%ImaBI zk0|F%c+PJM=u~3CtF>cGB;DeI$30M6#iT2!0afn+TjE_mG~k$X{EDX;v31N!;@5So zxoyj?(om{A#ffRcjk}doc4@QWH{D{Oq2{kA_3f_`84m*EzsY1bX+yQ8$wiPtou9(v znw!IN?tmR05p!_G9gcaumAZ7zX;KF~R7>B@A5+M` z?mY-h*S!%Ix77ew`1)j`=Dc304hu%yZ_AZ}z%{n`)%JZbIZ`uo6ds+dJvbH6F*@r= zwyO?THoJyYv$J9E;NXPgXfa-zRTbf>sosD9T}IH8@8OFzw`Pq+P^s!j#UfyH5QO-f zFGb=ciT=L@asNs7L*K1aLEET9bgR4p-jeF(t}_bCCVfd%#*Q@m?%9yQJq}5NU(?l1 zN{W4%dSn0doB8EGG36ITTTN`ajO9G7@XwTeF1ctZs?VA?u*b_6fck~UdwYsqQ>oyK z7)2trV~HvC%1Hn35zonfzY>q$BP<(Sf1A_hAD7NLX=wPzQmy5{*5xIXpy7z>Y&j>M zztub%+jrl4%3y~hn{rFJ&C=i{AK(1=aT}DcNu<%aaGusI#;?o7@kLxbe9?9!U>A~&fCrx@{>Jfs z>d0BGxLe_OCx)n3x+(3C-=D-o2r_0AZ2&fS`*xaWCgyjJ_dj(Fzu}()TRGMA7OY%e zysP8fSEWjSdU>qGU0|jTi9(O?#|pH?%z-EXg{zltFO)F)4WK$!u<<0+hRiA%L?|xwtu|=uB*pMFp zy}a)K|EYFad8a(@85V0wsaE$__m=>0PY3zNeB@b*d8@FgnM7?V)6if^0bm}}p#HV$ zGn7E+^wO_RG1Ag{mlF9KmKCMSNF@(J1?1kcZA+3b!N>FkbFfZ$qyBC>%P(~Y5>U4j zoin>vMQ8t_d4GR*H7aFO3A3JD4O$9#->$!Hq4FTz+W&Osn)>$(!@=Pmo5$|lkD0rc z-aQmoX((oNu$+@`;px9ggWkEhx#f+stCO$FlU`hsE{R>g(wwa;0@K(kIC}U_>811b za#6chNX#jKE;@73l1eTM!MQQJ{|*nu^b5l)p~cgPjB*M`LNm+ z?Cq3i0G>Y>1fE)^vzIK5x=$@`aV<$KkKZ@p^vXX+6J>z>Rv=dbA;6yGb%NJees}cW z*WpW?Upugx!E@9IuSyh@u`MsXThK!g9t>am*J$qBiqg4S6gU6lHuqFT1@IM?_#L)! zne1SY`{)(h?6Hkd|HUpOqDQRc7d|8y^e0U}`;918J^Rrl6XVQq6o3#yFKz`y-l@Y~ z9lc7mD{raRARpN}ih4yz5LOdT`WHhL7gq}mdYdX8&{GE`l|)PwQg4c2EzLM__&yRD z!t#VRn3~|9cy9rm-^`Y?pXumMeZe!d_J)XSvyDD9G>UGir%lyV^sgdAa361KO@uph z|MV!Cu57M~!$r3o2yaTlY0I&?qt$S~#c`}S(K|m0NA}BeeDjw-EWcto6vzz`?+3(& z_gBw4;1t9SzZI1z3Sg2?9u~lsQEX6stF`SAd0@;9xm!O*bhosMzEY$k z@n{pYjQ32{w@?_19qDTvMPWGC_kfk>fzPn7?$O_5KWX)GAnTknQw5wGV2#W1#yl) z=FH?}vtuKOkg{*X-jZa>IjcoFzUW<*wC%@6@3j8L=!5#wih6Y$!|pJf<)%jzEPgAB zzM0xb8X0l3-o$4EvLFH>O$|gmr2J+8nC!!-ch5;qgqEIr=)T~F5kCMJF$R`cpYt+V ziCSDfoL`|AlCWrektHQ{1?R21*8qglpSGQ4|J&3sFp)53v9Bj%(dO}vVB zJtZW49oXoQ%QjG>D<@ab3-l4LfhLIL)M!R@qTd; zRF<-5Z#qdNz2}-ifCgiy&A!-xSD0%N7LI)*l}w;iW1ar7Uzkk`uD%;1OJ30W`u0DS zC3%aMNCBzDl816LrDM?0-Ny~bQlR=ouoIycqcs&52Hr|eRD1mXs!(ioJS0M5(f7~1 z?tgQZj(+5f$c|NwoF$f$KLALMxB!5QW1Jl5HMs3mM8&Zkze*R6){j8uKRIe9gDEMq zh@L>+MhAO*Ocj32)5xndDvJ0Gj~O6800x-7oh_V>0PCZ+71^$b`Zld$vpRzvq(X{m zo3*N306pEj@%x{Wl|W==hY%ON|1f<&HZML$1e8&#{gJB^z55NJFtD2P$af5oU4@C#AqFX6+=FR|vg0*AMM?c!L58-VsDmzqYu2*yu z?-NDZ906E^4Sw+cn+m|}Y%`%N$w@6xqFQ(|NGg0yS(ly1$~eOO0qC?CZ`eNA%wE$` zm4MQ8JOsd}2LeGPly;BMGdA8)JjxOw9XdS4j))1)3+=nP-_g5ZPln=JhIl&fzDQ~3 za8kjSU;;sSbv`Rv{U{|gc7vi+8Y{yQLSNtEg<O9jhO5fY3CCk8os{p}VzeZ)qvwn^Es?S}m7~K+uj( zX2>70GpLR;@X2}EuzO+hyjtb$4*pG& z^~An&oqlcayz6}LKK&M}*94zWp6eZJ4sXRCCIXy$vtn62fMwYd`y(dP?nJ`@uzl}! z!MN5u$eB(~wmwwqR8a0x(X!t+u>*j{OMukD8{!8A=~v=bSOF**A;oXNv8f;Q>M=hh zJd6J4`uSu5uC(D$a+Ogo*k|XXu=oitDAT5H?*Rc z4Z97ZOFaE~(^WuDJ6qQ{>EdpWp%f!|crk=FLt%tgQPnq;BGQtvtCYam_zEGyKzs)r zaU^2?yO<)iy?s5M7@;Kvls4BVYFz>Ms)Qr_n?17p9Gjw+-$*XoJ~Dc*5()|mIc-+d zzXz|4Tivb=cg8%$B^wH->Q5ogO~D7HtW+Dz0ufb&fF4>wlLGbVeF$u*`aLjzZF?r8_z4ut3wHPX$NAfo(FWUG&)hYr# zt-V>7S^1?>FDk`Qwo7P20VaVL$o#@&aB+Tf$-d7wFCgaT{B!@*^g+dcGe0pV#>Ph7 ze^%8}8Jd0o++rJi zhOe0$v49a%J1!#8lvOqp5v2j!-z;k$zPC)5(u7tmTOJiJw8)l;j8+U7TC+;KF|Xia zz=ZnreT5;24t;sNng0_UU(|#V5s40wMZSKeka%@tDoHO3W{aOJyIV+T(#2O3|MNPJ|xxd-uds?A3KK;45Wxm^(jBX~S% zGswjLX9_%LaaJ;-F02CJFMGG|Ed9S{A*7pdx~2c?T?Ats!pK39K^#X8FR_{P_m)UF zoG&&Csi^0F)OEkn)$VlnTEf6UV1mSGFOs9GUtaSEZUcNi1IR|7-u!>VzP@&z5%F=96g`0O%D>)rS+>V5L*ebVSX*ZMmBS^HyRYwYCgXkuXVU(3$W@(%+e$1mUgzZN(5A3A9h zTQg^K27E?lCg%UwW5j17#kp@jp^~BrG7E49KneddZFH41wKsqVC`x=zJr5OD z5&GCNbl=F(z(4@M2+1`Fvui!jniP5`z}v4GLn?rXQW~2W82}a(6de!>Kc+dHv!_xf zpfoq&AAU3=7CCTyD*xqIynGNxR|94SS6?OIE1IgyfSYaYApzK2Syj|j+FqkNCdTjB z#|^D$$lLAJMXwl7B=86GevzMZ-Dk*$ZCKld@p~76&)OGe%YTv5p5M2olHP{f_DKKM1Vzo0P)Joim&fVuqM9)yMBPz z{O8i2oRjI>*3Q7<%(BduL}IFk8%%&I0Ji+3#-*F4pW&GI7>r%GW;Qh^viL1NNPwnP zT3T4|sj2JhYiZP)8Cq$4GAL5;4ZqiN4NVTCwn8hSq6^Wq&NIBfU^Voe#DI|Es>`(w|F5d zTY204v$->VtSW3S1+JgBe`r`*8`zkBwp^Ihz)fAesKnIrtA>77dm`Y!$Ef{j0Z;+v z5C9(On~lG7&hsSRXiUFoe60d%TY<*_^=+*$pdXtV!F#&#-MO$j0Rd@cYxwnUdQpBN z;MLm!O;t;2?S#Ht6yU!jXszsEfo{L0K1UAyRDK#in|`bp-0Zj(p^fb>AnAcKiRk?R z+Ph$YuYU4)p7q*`wQX$p&^G`rei{pYY)q`pOfKH?Tz^aoAwOkOo`39H98(+a0Wv8x z+S4_^D=U8zCp*x4VYY1U3Oo z@A$&O`>5~0?|{-teq!1*0HzfE;HmsI-r)?v=_kJhumO%={N}WH-}p{x@&@o8Qw8pJ z!cS;|7Vw6^^i|)2wi(O51?(^uzw=w6F@Hq6>@cE#@>?UNfBW90KcZFCc97HGfp#o_ zKY?~2Q$PGIYqj*INgK|Z zI;VS8O?%S2t)|cF-PJN_@#|;vboIl((6aC&bn0ne?}a(kdvDbg@Ehym2>KTKQjH$O zd%{8h&rd=*tu_5h<>(01_WxOb_2b^D_^br4vLoU6*}KC6-1@G`c%qrXbDLq)q)nCW z>s^0W4UghFr3-7-)c%ds#{L7UM`izerLfz>>l1Wm!0Q`yr{eKl=}3#1F8^Pz;@1hS z%DWHGm(zR0=UU5;lig2{icU5^E58g?W9uxnUj{jPC%cBnX+sxIPLw z7*ghuSA>D&@p$1+Y%F@?OtHK~dc{dsKGvJEp{{h<2Q}l4jHC7#;zZ{p+4<)GT;F@f zJ#kF5NjV4Du9MS2o4xWx3z>0cvfh!1V1u3szG+Ct-Dm{KZJ-JUT=W2)HMjPU zfd-l_6HyohA``tTzoTx+qA{DHRl+`1%tHo6#j+f)SdidALac}coQuDH8+^aZI ziBp49rRI&&b<$Ox3_w?XO)tji8W`xe#b)cL6f&nh6v63=%I&v_ig9o;R`jlL|R7b3Me@F z5?2Vzifo^)eZuJel-n2s8>!fId{!PLHl-rYam|dz4xZveRgsK;f`qc?uA$ho>brSR!TN1KGtxx+Bv?r zMrE_AQxGw{t{3xB?TPSrhei0@l85n@ z^XTr_%Fr7y2W=aA^^(I@0pv!ORO=6uH7QI!1eru>gP%zO zwF(paPIpp17_TdD{h^kgw;Ng0qROq8EE5t|nra-!27{h3Z~yJMtj;#x?oLa0M!D`( z<*EUva&UJLG}f<_x{N{Pmw{45fNPFHUX$)V%@=r39a@obJdKF&lzH7TL8Tdh+$7qv zXV@W0jtq}~cs!^(rMoO|%rh ze>^O*G$OYZlW`TXVk1==wWM?uwusy^m?8n<5a54-z@?oJl7puwr4}HaHSik-I=eku-eD?cjCG`XRFeZ}BM;l`hoo{J}mKvAAFfU9fIgQ#`FK zt%WyMhSXYgKhA_Tg9k_Qh5FHN2t{YM#NAqoKm-2yF@PN+^iJPJA%UPe&e!9+W{^Z< z=7PiJ38gj8u}qYWS)=bdJ@Z=KFK_c8FP4O%gUWOuq1)lzHsa5?H}hb@Jg|U57yEbj%UCdy7EeT>_-^Qy11lF z<-1YpUvTC>!R`G#?yv(FIKb6X>$9@uPX4d%rs@!8DX4kI(RT*mU6|W1tz@vaU0|qN z2Nyk_dJR{9VYEnD~Bc3#LN0yY&`6HsT@;u(()3>lH0=h*iN^l;FU%(%%1n!HAc#m z>aLNGF$(zxbP(CkiE&ogXgY=-59p(mEq3(6dD2`3p}xe&w=f%Ri#0Y+!1D^MSjXx4cr%O%R~)hi9y~ohBoc zn#Xy$995#z90wZ=b*{1zb2ccx?%?S3SnWkxv0kx7G)$@5O(dZuXq;8^D4~f4&xkxB zuC_)8(GiTF{8l0K23y6G*=-CT7NbQg5l}~}S3H{eW}(F-(Tx!H`63Go!s4tj-4Rj}9Bj zZpYAK6>}PI90A+RS<0b4N+!4q&I0OB4ZWN1hP=SLm!&l0+;wydjU<6mqh&ZOYZd1ycL&E^NB))+wqlkt-uJ(UDB|yhXXq@NCRU3HNfMwpIB{rM zX%Z!MTX;47?F@THsPGGUd`c_0-tCMLXOxL^nHE7YH*U)~^rBiVQ4aeO=DVPQ)4UqMULOVj z_O2uAc?*=0p-PwjMx)Qrr7APT&H zpUy$BB>Zf$2j26M;Vo68M$f}?e0<8Q7%N>{MYRA2(j(C0Nb)3*D+UUvsaO2&K)2=! zdJv%z-EBORrzRNN1&mZ zH3|uN5d8a|a`O!o@n^V!o`--(!O7THatg;R^Bujpwx=Kct^PA!|G=HQW{K#XiKS;8 z4mWJ=)f^k5t1J2Vtc9C2`U}@vPZ@V6R=9%$!>=2ECwyCZ$Wz@mG6S4mVkbgU^hm&anWVyV=h<@lmyd^GSFWG=?Zg{dP^*AdR6upyhs;S!M-FY{ci!Mki|C#GOgw!CPxF za$#ru(pPuLzt$m`y6L6aBg?fkS})oMMIDt8$%2o#tFagpX_DOz@ySY~t_*}K%sk0CQ z)bvk+!Iz(ke5NizTCt++v+VnGkv?YT##&3RV`|l#x7jPl6?=#c9bCxekENqcO$XsZ zBWjLejSw6~WFnm4t}VhK7c46@62eE{mWJm1VT7PIYdA7- zNe4SeV77Nu@Vq1#maxwI{PhC22y4Ed%ne(&;2slbYBUE~T{F}X30|VTC}z{CH`&mF z3xjNw%EI~P_q8)0uJk}E|Ekga?YCFD8{M+Fx3mMz(B3g9-R$X>lfEb}Blvv{Q*PX? zE}wh;DsnzT?MVrzQc2<4zmbD`=-KpDUJ1dta(iNFU(`@@kXE$ht4tko?2ihG)S%eE z4^bkN?C6&)TM>b!ZRpoI;kN#zp)W4t6Z5{l*~z1jd2uheX71>`a#&Qtbq>pAYzGg! z_W-DyVI>4@FW((F$^8>Inu_dGEr1B7Qzo+xNRxr#mC~+!|7OV z#OB7iKtf+-;f+TBq4l7iPnGxMiz3{%LAmzS1qRY%G7=3z8lpac5b=h|E^6_OR8+;Y z!DGrW`df_rpw6KGW9FSS3N>yDGx-5#!TG#3F%&V-z5y6U37|#%2$!lejIZ~rJsK~p z%)%Q_KMTZG`HDTjk*aqb(6t}^xTZ+@_i!j{4)0=>v?(H+=%zl0JpVSP^p9VQb^{vb zO+h57Grk3)*c#UIveA<5Tr;G3XZ3vrEaK9vqU^NRdpXm3cn~69g(c=$&9szU`dp_> za;(S;iD?cVcQttbya$Fj$3tJNXCpoH@+*u)J0x!x8H2%fBJ;3+he?u7H%n+|e<|!l zOlDkhv%WYyNDVS24tW1grwS>GM@|?bP~3lwfC9rjoM082?E=eJ2AQ(*<}i??c}5D$ zkW|{kZMT%P|6>4}^Fr;W5PdMI23N@jPb+VwDf_5_?<8>bfp|&D5@kA6u?oBimbgy5 zFSj4605zZNhS9~On`Dgvf|ECMnRl+9QTfdp;?B7&fF(PG*TcdhkX-a`^g8(XvNt8# zh>2(#m+d5z#>~uKUnc+Xlv9xyY)nQ>e@@l=3C`K)Z>Ndt6Q)*Awo263>%Rzg_Evot zIWe=q(9B}R;dTgcN`V?zxCODKp5p11^vab`R;rP%eC#!mN&#$M2Wj7eY@O82KGM+6 zlh>>gLInHsH7;Zm6M`G-pqUNAhp?gUnehno^%&p9JtMJ|@xao#F?*GGr-%(2?EbHk zM7^9xRXjVb_2Os@N770hQwIJa<4RIr%Vd?eQ756a`Jv@(zYow&IBq&ri{s%q5S{Hu zoII`koq`NQe_%g*Gk9`nT6Jn2hplHHK0KRqoNt9Ufxlq#gw8&0`Kasx^mT;y22&fg zH9JKIKv4)^`O~3E$WfJ~JV#w9M;a3mK8vRGU`guy$SD;Lu6hNA{iIE)hI2IP|($ zoT27@{JgujSJ)T8vtKA|KcQnYqT*tm9b_$|=;ITZs4POGK9a+4Ra~uKsI&)sQn6b{ zVS}TviVf&#)RTt(aC5=U!jg3m1hrM{G+d=X{F4i!a&Y;MRG6+D6giLPmuVM*d1Ixh z`*`ixa6o{jO)AGq2tn?U4$>rN!+k_ktmAMDyyh^vf{JO*R;26e01W2CV$dkExf*d( zKyOss`J}f=ASfo4cE49hfD(YF#tY`w&`G@r=cgYiXgDi6s*F3-EpTES0|n8bj}I#g zyS*z8h8ZYoDx07|*6&_k&Nl=%j;A5bHCG|=IW%Sj8u?D}Kf8Qo^6|r-HtGZ0&MG7!Y8t?E)9KXdaV$Ev;1Al zePc{h{UM(G6S6tiDWyh>&bv3ihIEGA)yZ-2w&}{1(gqsu@uef>d#K1f!Aq5hKt&Hr zF^-VA{1KWX2d9ElS*Q=PTH^7zjhZ6leA`{fs!CN;>~lCi>)^3`Vpx!6VjIhO-VpX> z#yvcY^sdPoW{<0?seeM_rpu&0JM+y*A~wTibQW*>T;=Kk8bXZOe&^yF*g(!!FS4p+ zy1vK{jWFmRbmvK@r=^$WW~;LK9J@v~GPaLTy5qg@Awbx!-HmW%k$qb<7H+QvmIpg3S+*KsmML6O2)A9@hQQ~* zPxxBU;W5#qF)+cl;fJ(l8D{nrznsHT88b#|2_cW1NXPM=W^vHJQBX=L_}eHgbR5|c zfoFA*Qr01~#M+=#@T^qq20hZVT(p{ZzRsov%5c74V;=&sOoDek$gB6%Ohut+7_u(% zLYf3So*3T{Z}RG~{kKKPDx6>O)t0OFV3ZTN3GfAR+TRq91eL&ke#45Ac71S{x+djo zO-2b-cy3ar-P6dxiH^HxJfUY88R8=4x9kG@Z-V{BuI7$Aj;u4hor>AeH&XW%QQtu) z9MX+>2vD_z&FEBkl$BmV{<4Y zp;wSg5iuNJMQC{DMP+}VZwE84DSH(WTO+?b3l}YcVKIcX^-f+19z@5&6krb00vy(b z3VD-onOT-Kz*V+HJ85a`Fb2s2p9b1YOS{Xy<>%9)IArZ@5L5U|F#`3be5v8eeL?a1 zIu1SbN`a-?=rcidakf^$^3@x3iB5vlM_#2zyR6L034@XtVUxxzmDs5du^5O;$pBDb zmcy2HGW#W$2*WU+Lk>D7bLjKwl zGW)h7hWCmlp8uhD$+LUk8Ok)6XAhIxEZ$8*ZQXkM?4G&>Xo3P-KG;=*jJh=tz2pQ~ z!tZOjuG9ZYP+dnS-h6Ih;qO3&Fa=HH`4(AgK)gD8hR7gcZ5}{oF_#JAD}t>R!*Jm) zve#v z7_=#{;AvaBuJ*ZF&-9JIY!Or8uyZOZvU0^nu6@TOnxVixjw;yP+P<8-m2*T~LU0c6 z4Ov+ko&p@S4nLV}&Mc+~mSk`z8(dO^q$%2Fc{iyZpl2MXd>VZ)WHQpo_t+v6QKi8h z%rDdN5?amrzY2ybnw*s8PR{yB7qF`x5YplXw9Ay7m{0z#^t=vU)5+-!LnPjyCtwjz zEc1!kbwEqSfSjD4kBTvCQx(S6Al|R~sW&UUD4Y3JiwU5Gw|-(XMb3_U_U=?$IW_3W zD+lHRDj-Cm;$ezMO5m@$W}TGccZ4|D<-rk~`= z9GCr(``9-*#qcz=>WKaRqg!zdqRr0=^&iE&ryOdRY z+teUkt2kz2JI1*)=OnYt-dA3NYJWEjbHA;lY7f<(UYn@mP136l-ow^FWCOIuY-Mfy z>a*}^YreI<-uoD22dl>qEIIVtr@F!7cK0w5zUX^3w(_-^&d#?9VREg~zN!ob&So4q z)8SF)*?@2`2x&YCq80Q;mj<<6FI(RwORg$(BE0-DVJ7$9>HfnNr=k>&J{GX>>9h4T z+#EA6&MAt-T{aEA*P^VIAKUHyyJK3Q@;EF?IzQO#CHmp&IM?8$MK2+V{L92g?5o5o zk1Xk1X;8K7M0uBbnae_M7TWdM@f%jx(|m|HVR`?m)#|*wl%xg6J#{m{7v^>8fD~4* znuYP{!D%!Aua-ulkE6@Sf@e4B;~BtcPQ$Vhj%6dIhg6gwh6~&`&nqX89*`B}xE1WZ z&V1w(5ovmxYJ(1yqa^ut>09FD(A2shlt!obbc;JJ&7s2}bP_~g+G%`WCl{uBscY*7 zVp8cTyV9BaFZdMXf*>}CXqeRDaxqS?X>oIZWz2P?TZB>9vsu`A_ZhRFKC)KPY_ zGo%MJ^n9=;;<{B`Y_B)->qv4B2jcBL_bdH_f{6|$q3ra`?y6kGAP|cX@m)5i9VhEL z81|XA_qpf9KIL$pif3CLz}YA-zE#p3(-(-jeiwqu1&;YqcLfnnptBiRN$bvmYVm@y{IxLh-}{gI(10{$Ax%Kj2Sh2+H%T;p>ep)Z zc9SvW>QhE>?QXj&A*9Vl(%*aCRQ$g|$6o(XB<-#cnH1&@j%}9eq!dB;Ij!GK@pv-|U`jnDCs8$X=9{R7S&=>iUIpA+|{z z(<$4S7_Zh{AGy8PC`)N;a0&h`6~++i*~+a)=vHnI&gS$D+7>2xj51_v_N)HoOR96X%}~NjjQSQ0(1e26xoZYW zYipftFscYAOm!W5MVH{6Bk{j9Y?OOtd5QoV+~%H~9-RtBic>ZlhTZ=h)VH%*BaVA- zgk#u3j<2CnObPR$tJ5VMYC?~yI7G%}l=1?*uAbaG+RL4#7>WZg(9ZL6sSjm|Jqv#y zm4k5NjpDv8mqIaBeY_WWhgsSdXQ^a;ZhXz$Q_|z5X)n1OcavAp99*iE+lsfO!~mC6S!2$qGa5xG zpyc;PRRTsbPTBqb&Mh`DJuF=?F?CwUs!G16+N`xX+N3vT;w??_+I%uA9IWnM7W(c| z)+aVSP->X}h!-icO)!iAg6qEy6CAiV9j!+2GEAI3t|FTOPqRs;&A5IVh+`Y1x9Kvp z-dpYDBqZDkypuq%`*9kLp*B zR6K!Xn;}8>*xXiPN$1|Fn!18JY(-kb$w8GI{rYnl^HGd~4g~p~Ba6`~GW7=r(qa}6G;ywar5nA#A+IGabC=(8# zB8|t52v8x@r`HBc>#7}HNOfsdfK!B9dn@=Ia!SGWKd@v5&!U zl(M%KSz%`Rh#BSVX7KOMY10sD(^<=&B-CsA-!M-fRyv^ZY~~!HBcs=Q@176{-Lw|x zstIfcWRe+F!>OY63`W>z#JW*MV|$X(Hn8z}^p8h)gG%y#$3z>uMXI+*amPHnzV57HwXV6!492Ht zO zEFW|vi|+1PNAI1s&Pv^On4OMsb=`bNaB+_1yjnruCeUywa>Y6t7C5+SIaiO$$mw~l z0kQY^)=-Gy@DjdmujRQ`>z~z$oYt?Bn(6w!jfM0bNuJC1;L7sFL$Z$mnEHC&5Y=-Y z!C-g_(d55^sb5#3()8@ekMh1H?_`ebksp6#!dq+en+sN6%g$tISV^uR9Aq_MzSiA& zUrwd9Utdgw{@KcQ)H083Cq~R8udYia#l;F9D^9nI(6?TVV;J&;KBtqC7 zZ5q2sa@|APN0863x@X~A*&vS>#EfKTE@5%%^E57Qr024b!y{IYnUsyj@*)Q|(LckzaMmb*ysITW#I4H43f%JaztsVKgm z_)%pgmIZ@r_c;xh5L`8)_GNhV>kXvgX$%l+kE4OxxbOdPqo%k%o`AB_Q;Lzf_%?5(h zoW9Jo>w`!HeNxv*H)(1iuiO-LcP^PJ?QynKs4b9Bw000N&sIHH(qeUB^blu)JU@4M zcY_au@pGUCJXaYnmEkk87Z-vygIv}D11$)qlLF*JFA!Mwp<*u7wp=g(W(+ zVO7JU+?p%2^n8e7BYCkU=?38g)mn`dcsi%sEd{}bVy4=IS3O@tRe1SQq;ipcX*I*V zJMKN>Gc&0-qWvA74HAc|9Rjm+ksxMX^MWbNV*2mo97ZrJAXA`qk>{}*rjH`+YRct! z@O>0*yI^^E+)YMLIL>}Lu~ViB+7JJHZ)YST+8ouUZ51ePVL+Sm_z3l$g!G{3J_yND zwnKDlCu{qj14Uc6dW`}r8knc}D2<8{esB%#`_zC$MX&pVhQxFk7jHX3?|NGFQRhV$ zk_*u^`_)-{m$a3(%#FL}3W=K`fy^zE@Y0LSsruy|e8|!}+2{53$f=@9#WfcOs<^Fl zh03V}`MZO%sK|_shzleb!V)IPW$oZ3u$1Qe+~@{Jc+cFckc|;aH_A&j`yWYPAry-- zU9!aM(zo6^+s;4ak%1}LCCD1gc)+KXjhcBmo~BmVVT%(ox)@WyhoR?bBlJ1e$)=@! z$T^9}G53mx*-|f-NLsv^k)fM(Df%CMtvtp>-Ye?&*4gm=hy;|(-re?p`Hy$O9R47d z=Wm`#u3ssGsAe8U`dIHQF50i_hY$@e!yqceifo=ni#KPq!2722GzZCiFJAsj%6>*C zYHJ2Ff8@?i6GwjZeKL${U%_@SHTDC4@9IT6WKe?{4L17@2<$H7;2li!G^o{&*7^yw z4$VF9a3&|TOwsPaJZMBpl(NVZ(yim)xo_c3lD2#ZB$1+JU5Mlm=}>t&KceG5OHCj< zB3^w&zn_{~$F*2VcdPfZ@fK#Dy}LdUD@fa&?rL38Yp1b zdm+&~BrAc~{)z*;nMTh>+oaR$^4&Mqg)39>M!_9Z2qsn&oxf+((=^W7;%Zaa(APIK z6YJIVs2eTD%p$+Hf^I^rpSmeJ<9+Msg+`O~W@>0x378%$Ux04|m*<m)_6*})(@PBd3q5PcSdBNz=RZva|fw8*Aj9-Zf!|!8-;B}vPhS2_SepS*iT+aKZm07AgQHJ>Xn{u zKa^u2$zYO9N%V5eZ7rQ;R+Ei+=~up2xNgJ{2(Z%24vX$~BRX6Li)1!bU50v7MPv*! zEY1N(g4gQ>uR;++^9^LGs{=uiIfpbjfoX;3_ji5v#LzZ?UGAAs#M2KyRf^^>#4)7> zqH-&@$pRB``pb+Dmh{+$A5_Lt1iXPv4)b;!Lult_0ML<7xbjS8+p) zgzOr2te+MZLx#z^&0LDk{oicc<9n`Bcp=D?z@S5EC}?RXu~i6XtR0-82+Bo|CS z8NsX?y7p0^ked>;V_S3ct8t)P8B?TB3s_(f4+ZbS8-r65recapQt6Xf-aQ%^NtMc! z2$xe8b&IsReogo8@rkeQ6L2F#P^%j?C!1f$hdDwRa^w z%xJL-qgQ#1*BcgtdMh-atC-}ob|f50re)%xtnV%94R(4uV5?tNNjXr z8sIh>HM8XTU@Og7;IC`oitweLxqUt!%Mq{b9Z*TMqcp(vjdAw7)1)=bSawct&A!@^ zypop1Qc=Jwo>b=Wg^BpTfOoDGs8N^mFeQ#pm6`CMq8b4~=GS^#0R^0j!(y7pG}Gsx zSyO>StG&#!`=yb`zwLvuG{UnDERaUGz$lgKoHOYKnsE|@%(F)J$raOT-43T#;CYW9 z7sIfCy|DLvOAQr8uC%TV02XefvF?AB;QviLnH2j#g`TDTjQ-Rku8U^;ealY>Z(#;D z^x@^2#U;?BN%{$o7C}5|;pk(VG5kM_-9wXR(Uu0_v~A-{+cqj~+qP}nwry8d+O}<0 z+V1MXjktpzbi|pQU$A5C{jT>J6?~?&$?MVrt3vMXU_hqnkbn0*wt3=PR?Jp#66PMl z^g3z!qNpm48V4Xa}vcFHA-Vct4&oTIMqQ(&tcx8lVi$l zXgJ|$oeXC`SDE9yHr_HD(6#$FGwb3;Hlt?L!^=Tu#1<2pfD#6t*B|%$pvJ|>6BKaF|lTw-OXTN8m!07v8 zsGKL8!{QGqCDo#O`8R^1yoQ&Mel=1)p1BA5zA6#?V9-O1T~@s?zUc;mM@wH&TKp#m zg$bPGG?Dn!hKn}5eOakKa9ib8Hl8za9OV#(tKIzRx;6<(iF8uEp_~TR=xY?5Qqw21cHYT&BMiFsdX*H*NJ;_(z=qOimvf_uZOmB*PxC(VA?PK z{CER<&w6{QC=2`h&TY}`H)<$V*dN{y#id0E3Zn^h;8`VR0o{1@Qla%+mCDe2<-~4gfb=C*M~Y(fv>J( zeT>HQss-K9oBJtEu0E9}w|Gq>%o_x)ew$-A5!p zweiAYb3L8=J9}1AXQ03iY}n7quQ)q{6W=Xt{UrLz(JqmX&FL)~rie!*msQkCu(w0T zTPnKxTy7qZni>7n$A*~zhn8!HHT=+>VIfx!OW6NO_MU18(N-jnSWjwNX4~n|UOEjz3BmmY*^oowV^o7?M~e0kF_i9B?IH_+{ggC0RpjGfBqz1FWtQ z&g{NrUFliI5H&-~o>Ru}ZWEQ_7d1E_`4>>+KQYN1>4~vkkFDSChW~x`rg(&4<4TmfBTDCU&^;yqr!oQKm3>B?@`|h zVP4LFV~r~rek;Htfct$E=D?&e&yhQ{MlW`vU|f6y96tMIS7v|G+mOXLrI!AFO10kX^cV{03HI0y-i>v=VKi1 zOY~z$S3i(ynvJE%aM|xROdUgeTBmnW>}YU zU~cD~CbSR#CYXvh`I~TezI4a^>-}4zM=MTBe~C+ATxF7JCz5)6Mr9|)b&QY31IlbU zQYty-8Y0jow<~OePc+X_zELY1o$!3RHEGIQneOBzk`rYxZb;bavP$AuufOi&iF_Po zL%TLD>1h20WE}P0N-$4)buK3B_TMxvXZ58}iB=wQR?v0OA7{^2F0E0#Sx(jBf`+LA zEnS_3c&IXHo5S@=w#@Hkn)NzK42swQvKZmfE2>Mk63ML*e#`+z$*g(5!qSf|r~Aqg z!KTV=$kRwZe8l_b&NOp##j{r+{1i1RG^qY6rO+d(wX$}8rmeUr=~fu`(=(_0)Y-z} zno&H8L{hFMPfMs6(3S3h@;b>RzJiM3qjh~y~qC(q~kc%dFyt>l) zySX&UQ&Kd&gSvWO(K!eG)RxZG^?lolnhV2byIt>C{2ULxQ$-~mBc>bIl-sr_DbJQK zaAg9{XPHO+QFk%=JAVfNrbdKE!I!LwDb&DjCVtRemA;MIEIYHj#4yS*)xd3L;!qY6 zC$tV0nY@au9~?djI%~V(lFnWL*qiU*x%F5zBj)evg#s^dkw+QGR6utn>(@}eC=@T- zbrRO!$vvpBwTGix&8zWV$@|RMxi`llj_hj` zWA20$;N$FEQiOSvS`l;@)rDJ5?=Gpw&E&A2jzW-N8on@4fWmHqQd{>O!dSpq?qjXe zV&w5E9MgXoY(2L}pq^j00!b)p@24+XlOjTud4+iubd4jWIN)ZS)`ZZb_6gd4W3r zYrCLBH{WPi$@Z~e^|g>_yA(Vv9u;J6PxYZ@sanSUno+eaKSu)kLFR7sG#@k__UjI$ zY?98BW`%0o`tHx0s4IWXWybWTw~d4x;15nxRf3+tnwhJHc9OaPzJW-*>uHzuDwk}5 z;F?c-E*lc;{CWC}3{!^;7*f zDc10a)g3Wl-?w>MXXEMPcXa&>aj-ItNeE$uI;m?hDY6GC>@eFN+5R}>2v&oDy)XH< z;h)m4z$G9+OcN=dOl?+g3ZYcpwFMxURkQFLcbF81{QDDbZqg+*xif|yy0l~kDvU2v z5KZdR{1Xg?tgyv9?pIPjS8erbVZk}P_Sks&msbqXW|e6-`I#_6%2%7|#xIT*w0&*@ zm)_xjIuqnp5Yfg^^f~h^1C*HIUP!xp#T%amE5mXZdRu}!n1X})(!kA^J{g^(N$Ppw z72P|wXPgEhU;Z^e?IaB;-)6@Jl9NetuvhDmQx8cswGCd;?Qa*mP^V>wmtkC@R)0 z?NQ~8T2~js@uJA)oBca%1~8dL&*@05nX+MYJ4U5)W8WC16qD+vd@B$=Wl00X&e!C# zoDbzCxM7pS9&(fU6YPAyI2wuKkvWpj{yVSryr1f=+?L9Y$T!8ghOo`c-0(ukCyI<@rO(EF=o9%e%T;xo6pAmp<-&$eZuD`o>!AE7d7#_XiOL# zDRWsv3Gprp-1cmC&nT1u4=9B#@g`U2Jf}W#kcpb;h{85KpJ@!h{2ZNu!2x5k7g74u z4E(&ccd;ZZW4E|pXvOZJKcRSO$yt=D!7-l*b#^frdVkpc(6o+gz0_EBQe|en`}`725cd)XvUq-`pzbF$hY{UKi_=d6UeE4(ZuF4a^2Lul7zRbR z`D|rk;3$l)!7P)>U+B@`zTG&)q1=ZLd31slS6U5uS3EWEIG%18gpk0cupsZD;$NR% zj5=Jy>b*xhC01hD9qMot+M>6;SPNHOV_@4XH9*gu4>E5KElOk4~ z5hPVTx49mPJcactNch0s&2O6nMbQnrue~%jyt`!LVEGaf5uI`En9zZbf?=aU#0~l)* z9NH>YAx&90^Vl8}_Ox^{rQlc2&OyDdd4wU|p0L*?+h(3JhC*IAaKv;GuqV|JzQi(w zS^?;R2Zt-{zayQy%MJE86%S5u*erLQdo*%Ib1=wE=BX`uFkqIUU3~O3u~BcLMSn`v z#6pn%lpj?8TOnYJ$N&MA8D6w?gTnL@U}!Cv`(=I;!s^6IHd?8ndSW8-m)S|| zt|+I{%{OeJSK@$)SjPvfegC;GK@PmZmn+*g7F8Md&W<9%BjH|nt^r-WG)Gm?!pk!h zksAkzUvyMakq07aV-M>e#DXmwmB-}+Lt`p|i0kLzFm}a4Xc=>c&Fgdog)0mk?ViFb zY+TcMZO7!|PU!$w6pX4GfO$Qc*D#DzJ4*qRm|wHmWTn)qpME}D46aHdJzK-txX9)- zHIR*%7$G}Cl^O29grQXkef=@Jh@bp?XuT%xW|AsuSTKu?g}Eyp%aBz?ixP!4bmfM7 zRd1?)g5fkQy8~*<4L&#_vXpHMUcW0#3a5c6P!HG4F~XlJ`R+(oHQxcAXoKkNHd#Z7 zs4uy~RhEym<*CfTSl> z!H6W^hnCPm-i-9H18WY^;|kTtrAnojin}lm`HaKugdz#f(4b4BEu;^UL6+fs5S{<% z^wdEe`XIj~e7V}@4Z+j5{l-yGC7kG1^(iyskv|nmr|B9EYbfILXM;1GP7%#iJI!{p z?Y};^W$K6Pk<0D}a4uXH=NJpo6GSdlDBiS>Kesbw(2@~j^5fU4pDJ!(zH4&3YE}d_#9T|2Brd?m|Fkdg7=i7YOV3u68zAr0ayblYU+0|c! zU6u-*fd|EWVd#N=MUexP<2j+nwe;~a%&r$d*+3e0lI1p`P}z8xe9dh5jBu5mVQYtr z$U7vwr@YHjI)6eKoozA%cRNm$S5B0D))HyreX}Z2L3e=?P?{z548ffzhI9w_)q9On zRte&tQ%pz%AJCG;?O1}4&KO6!Z{Q5gSE7>hTe(=&2qhDqk8CC}f0Wt0txl+*_-2^K z9-=5Y$r5k6op?v>dh;~x^WDC(7uxyK1+vq0Gagx=(c5oA?#axY+-jKsg(@-)CTRf~ zIQ^?#sTfI9-Ou0{)HO2)y4lIP8hDG?2}TX~k_W~>HrR>Wt^v*rlb;3pw-{(`rC|xc zg~+G7ShRC1P7p=CZOfOFa~6r6(3xE9 z^ER-lgQVJ}VTpY)6EDI`&Aus@@B`BI2e%F=f|K8%ZuzS{vC6lVD%RZT8nuewdnx(x}*Os>n;op6~8chekt|QH~i9NQ6V6A<}4rsn;zh;_KIZGm2>BVO((HpwpH#DX0n1U^;*=h2Y zvtfgG8Z#whEt>{EFQthjgdDY=S_UBBGJp4?>s+<@QNVj{PmtER^_O^&CuDObS8+;* z@v?R0Ir~t|^EX0$Um$*9Y?!zu$I!uzF6@HMe071T+c<>Y&%lZlxo1Rvcd88!cx6}+ z4uD-XrXqR~xO;ngyNEGKPZ9D!It(rC$^^8NglJKLH^?lPhA*+;$@Pk8Gp_yqOvB=r zHu@FnEa4uh9*r|;Ascs0m#hN!(t%}5pcm)(x2XlPya;@?3E?6dZBFsZTbW}V-{BCC z+N2S=kE*H0@%{^Q3kC>wzoH*B);#il#1uSRfXL0kT>lZ?Y!1R&*vui*;km z>^8AX7{{rP-P6YcdO_COyty;jj8F%1?=coo>#q9w1R zj%(eM>tQuwJtR4y?xu;#1^3O0cA0q@2fVBvoQb<5q+Ra!zpg@byks?PNaBkU11Zfj zrZ5Uv;d72j%0%Gr5Y5y0Y-p_4L(PRYy;XBs<9%x?Xih%jPayN^?($6ZVOLQe)6s1vA-0V}v*^f%!&@48Mg7@wFX?a1BAHtSGQ9i;Pf}$a?vS5wV zIP3mu!m!yxuJ_0g%@p<^8CvNgGvs5W00U#m@$?Yy&%^?5rVBB4;lU`GRulMg=;7Qa zh^CJ!Z4l<;DQRttrF(8Qx{kgf!Aa^(N9&X*ELkl?g|bM~ALzi^+tsa7>wY6gP*Q6H zIA_zAZYsde)^z7=!NTgI{!|hRghtd*VIOdDs(;+nd#VK@GeYDPzDl0wrC8Y9h1$d7 z3R^Bhj;@O5^Gd0(1o(1M8#s`L2WUFIYgyB{b6b-wljPo0ON z5(Wlel4V%sp?}2w7%x!*Y)(BOACd}3;|IMUNoH#x{MXtvv3w4VKggWXZNX+ZHq>mr zh{zFlQ_T2gqu)a2OwS+u>>%MPqIBD6z(`$AKTB4?^zMARIc_G`eh;fX zR=&l<^;fwjDfa5?mC#R_%vM==CiWJho3Uw@xeh7kmfHN*`moQ20_;g_ofiC@;QZT1 zg0TStDm$DC-kF5Qx@vuDoQo-k_Q7AnRwZE{^e?q^iJW*gHSLiOVoAn6pY8V(fn1PE zdqJybTQIKm=%m*(U;WOMI`Cbgv<1CWo<<=cP##+B?Riz&;%_#UXA*fk{fm zVoQzoAjKtDsZMga#ZW}_I)n=A8XZKoMAOJYOI{RQ`NR?57!~9Hcj%(Js;M) zv00fDYPnp(XC{%rUJS8~8cliR?eu0=R>{4LBU6=lXbQr8V3I z*_0Vg_E~TKz$MQCKF~`Y7izs}!Bi#_b8)3}o+@bg`OXHhV|;j+ZWaY6B3Ri@MHbEg z<*e|ZHKsr$kJZ9t&)N2tFGrKLl8IF&>tN<^=S)R!WOKW04J!qx#R%vOzH!Fts4bcp zJN+bJ>Ky(6l$#!lS1B|oe#z}&6RH5iEh31~n&w1{$T9Av_OUR zneNe7P|7`twwxLNlEeVGS)bX-QQ0BrRZcSUk+-y`bkxyZM?Y#tTF^7T*6^Lp&P>sN z!8++W#wjG>gn~c(D7tmF@m6mW9;rDP$O-hyPe$(qq4OsE%~m4_y9$f&VZjHx@3CtM z0XxG6f~%YO6`Pq=Y18TE`P@O?=U?`HvhShjHsk81-IzRNINoA27k54p9+j>cGjcy| zH=Z|1wZOCNRvu$d6FdK!sj~b-k53b*KE7KFgyR--sSUfCD;<}K?i-%hejeyCPN($prS-~_-Y!6>wnwSMRL+_ zgkTGn`ipIn0KL83#PqaE7D%{Wp-?c8Y$U>6<*mTDN2VP>+1`?z;L?Kbsh7>()q!xa zQp|il#LZI$)6)(B1FM>u&7qBb}bx29)BW9AzW2y33yz2@@HbRw0=y50S z&0Cp^Zc(pUKi}r~qUOf-R{p*nbu+p0Evkkpu&Lck z&2bfsN>h6L>DLB}emNvZatasEh%mz&la!Jog%1{JWfL=d$hq$5NndqP&3r)>D)FTIW0s&URw1&bJ5DFF!?b-`lTl@EBbsCQf|hm4J~ZOxpV)Roim;(H-4QX^{-$i zWs29T`2&^ZB6lrmkGN>(fsYgdv@e&+A7b@sI){T^3rDpTle+lUtmBwCQc(Z)w+b4))17aC( z&;nkL9skMm`t?--)Y4J)HNNAvr9qo=XI^X+rd$3 zVYbidpm~XrC+1`C^MAM>MofkuZMJvxl??S%H}jqKYj*S`WufgW*GY`r z-$Jp4nO!gJ=Ty|qX|1+YK~t2Kee@_~%PJ3=eNaLdbwYj=v(?H9v!xYkStIPl4ajC6 zDtNgAC`_jLjoU`$qpe2b3(L1b7Dlb_5)0<*rpD!YWfptr=_wGzl5|>j3j|V-v+|qA zG7P@>>;7{HU+;oZK8_HyI^tUK1zHS_of2pO{1DbFKzKb!=J7E>SiT&>n7%qSUx(B2 zN_%%I^1HvG!SmstY_+#J7zSI@_0W@n;EA7ZMXNn5M-^&)`EMONA!0%5(kcnWq5UpG z5$A~bsQ-5eST#+aX!Q41Tko*Vu zwikwuQ3NeQoKYvTQ#D83vncb#$I{ z8=SN~ziI=6lN9}rhsiYuVcy?A4SAAUee)-lj-e0w#hS{7ASct+JVhg}^827)?+_%Z zoAUv_%ZOM&%eGT+AatqtH(u}*5I2DY31O$f>Fx)JSb+s0LX5SN+N(Lmd{6aLt=qQ< zfv@20)2=yQ5u4@Hh5hjwk`i_Udn9c{f#LCB)D}j?cv3f7Nz1fcKiHTX_F;c7b|-mm zmy{MOP>tdcnY*7Lq;0LB&0=-9R*q zwEkrFZh^s}S@-?PPtV^Ls<|qK?tp}f;H=gI~<(yd8F0Q=|`jrP+lN9ZW+q2^wT zhhKXOoHZmr0g3|3?jtx zdKzI?6s3XqrvE^%H;)Qaa@}K)iCW&MbpmC=s1|Q3>+4D}8;`{(;i&B`V~op)K`2=) zv&pAAklAxzddc3uhuyTQf+oC*++-YqyeHK2O6!9XpowUPllvEJU`uOoB4-7oGAJ+D zzq=~o)y`j8z{Va_v;?7q0UK3a`V!H^X0?OJ%>zW~1D600RChe$kPZRr&B(P{Y9oO{D0Uf@RQYpHu#=W~jh05~CJYMZ%g5-)Ht4^xEK#LG;x?ZsSoHSX^6O4A(>E8?8!9ceL>8ND)oy3Ji~yiwhjF zG+HL=+?_09RB6FMfI;MOG&;gUWVRntq#|9 zv3k?oA@6okfqM8|LLoohI{v*^AetDX@`l^%y_{X2C!$0DX}RRv*$sr5zA=6rZOzuW zc5KqZL$|4W;H!F~S=Bt{+`OuF8aL@;VTCIv#guR9RLDI2q#^Wag)m$=|Mrp|mi&7? zN{BHL)k+wq{N6wfB3Z8?I*1Zwke}o*>&?6d$F%U7UR>(56@+xC(~Fr!bH_!nDNl0b zey)tl-(;n(A`gVyW$tN|6!Ggbv_}c{6Hm@PPL+6g%&(F5sH=T?YBK6TUxlXdCdu<}|aIO3F{cX;kEF z{`nX{IM%>=CxYUxcQsV1%Rz(n!{o)>RNFF_HTWdL>lY7{l9=~-uZ-XPdO@=UX_Au2 z`Kk9-DdEWW2LnYhgNGLoThVLrTA45F+|;3zBEW?H#(leg(xNLrd~YEdwJ;K}0?6zF z-bx3yNHRTcO2%PdCOOYMyriD1)ie0i$Kj)_^%o(Q;OoVl5~?tOte9n|iYY09De{UV zC1JvHS|X_t$OEL$((XoOX>|SIub1FpXpaZ*1lRB*FHD$eXObbaWmC+VVTMQt-}wo0r=TI}CwF zS5m1;WWUx25PSfS>(n{2Qdic_94&Ei=7`cK0>6PHS@cx(JSIPQ8-IoPR5M+layHrc zb|M?eE{_*FKHKqi3Q;aNl7k*n409}`0>@X`S?zNm6RHa@d0=v;pulN?>&N5C#3{ul z$r;b=8nr7E&6AJ_uD{xVNx)8ZSauH!s5x_Cp3hnhAkYA>p}(9pqO$@*UsO~z<-**X zZYL*L6_Z0Oyjl9Y-#D^i>9=Zgh6gp8?sPvBRcH2Z({hE~Rv&{X>pJMVZ1Ha)VI|Wj zVuxfdP1E4ZK&A}JaYmsg4A#zlHzz|4{@@Nt#bmy<%K^ut>xVH#xf0O<-z~(1+?bnN z$;J5ifzm_qEjRmPw=_$c<|97oE`oM64%ckgU!1w0O6=#RArWpT!Z30%K04l{sO@rM zp1Lcus$c1@1!Rl>=EUPiP;@z6|Ki`zzOgKIr}tgAM^5k*6P=#h02uuT1@4<*(n;W>nH{%yldX9mKC<#F(K-Kb4uf4jfef z>QO<0F-Cu%9@ z*tAMRnHhjkC!X3tfj9;$QC;F!@&Kbn`POGD9#ICYWx1p!9`)i%m%>HNPPYi3hR}l} zmxQCYTTu(wAH|%F&z=Dy0mv(2L(4unQs_ovo}qHCuv|4TAm%=5Il$AK3wCKfcsM3b z&wNNV7{;FY87)sqX^vfOAa4~*8cO{vaUZ3{gg*_+oo#Ov43~M_thwJRka8|`tH5p+ zKnLX0SA6!i$!h$;!~GK&Ah4aI2n+v;kb0{QudPf7YD}&9C^>LMEbZ?c4RtYJvZrjM zPYw!K3t!3`;>u$Dvy7|2kUhTWe`mnk)*jP+%oY&!S}z+iB}!IrMb1hDp!KJNUBNMg zk}BRuR^v<$SaQjKG!3f!gPS1Tjz-ndu~uv#L_Ac>dA%Gfb(L5GYN$vux=3_h>p~f5 zXws&oz<@>_KTxVP!&;D4B$2%^_~b6Fj-9y|u9PV2uZ^7sMiV0gqFB%+s;QRYP*{1r z88YMm3NKM2brzd*5WQuRz;iLu(_qLp3BMp$x7w?rFo!^5d`%8C*2n>@IX7m$;|CH0 z5S92Ln+R|%(ek(()cf@@2}#s^W|I!IorasfKId>*__gGc)+?s4h1n&k{`%+eaeL9I zW3ESb9&iGu#1!e;rboPXml3}hmWbzfq^-IlSr8-rrYzIa`#v4-|g|jQ$!DaI(wL zL$xbM zDSZj`{*rL;o{y}P;~+u`09JF_q-}u9q$NNY*@=i>C?)&Qe<~Sgm0hTXC}hP^Qh<z9x$fr(hoAp( zn;>WjHq05YC}>d0G4Ivzmvw1&UZ;4#)Llo?#TtY9}*npB*NJ0d&fwejcNSnas6Oa)>X%pvq%QtAAKV`WK zMNw|+(+w2U(Y~*`IjR;F421e8J!vBDEP2oLy`KM+DBWks2QkP>%N2{r{Pd#^ID&`S z!r}0CP@cCd`_AC0(*u3Ah~c%*aE;^?C24N>dtEZ`rH_qUFBGtd-?inOHdOF3ak>90R!3Z+D> z9#xfQV&mY-3zy8-f>M%w75rm6{z17SKOOj8T%_RSCyCQNL_DO-V2)YMG-g<_#Wh8( z#W7`gplCL{y`v-(PHO_7!Q!~4IQf+|=`K z2ADfy!Rug@U*=jUisEiClMD>_XKObDYn^Y^RKKb zr40KY)Xaw=#t2M$2V-1CPS5)^T}4jS=4_UHSwbqSlyGKr0ML6WVMG$8_xXevrSrz9ep{tawMN_M0F=Ln-8x+?5Fks!$ z0zXGBwj*Hm6kpX{ zcmN2C!D3CCqnQDOTr8SC5u5OnL4?<=Kr4YKWb!`Bf!Ch$rd5TTD`GpLURVMCi zm)=PIEMJOsixSI5BW6vH#kMnLBr8CVryR~3HY8Vqq3%|@TqV{t$+#1O%WT(HcNOJ+ zM*U8Gy}00~RKea^XkzvGBwyzY=bk_1xiXWjA6$Yl&11l;gQB@`xwN8lR?L8<9>;wX;Y{fvtWHH>LqI($%RsdO0)R?>s>^EW<)+8+6<)ZZ1nIEdCLGz?v;j#OaX z=t2bx7@=u{<@f1SX0?%Q^QWO$zV|JU3r%LjwV?JkuGz*Q(I*w`_ei_^$bP!9+arQcwp?bb$q`AU+)bnw43Wt%P+qVMlHJ9nF@FLLq<)3~ z&l~z$E$*I@*aM|}Yvovx7$p_LddD;mQT!7OIyuC^BJ zuOCz~8pl-!bYw-qhBC0kOtlT(XzyU>01MFm;Yupewt$u^1F};3Pd7S<+C^x8=Uiks z=B^BKc1do!i_(>ohJ?6wVBWSw1nZ@goRI}BFYuB9FuV8io848GMRrg!q?}Mt5p$eO zqnk=xexPA*qY{X$Z={U1({<9~_t6Luq8rJ00#q*UP}Ccx91by*N%2pW>Y7|R#BK%= z*rS!Sl(~V?w2KkFQFpJ@S0X6>UWE=rS?V8PV!EQt~1 z>=KqzAs@!kvXpag@V50>kAK&oru`8eP9<*^TdRPWZeX9LSE;dvJTIrClrz9K>ox6a z-so}cW6&^TVa@v2c_;L;`bs3DY=u94n({Bmpq%Ifw+~8H5x=W{4Kam9$M-qaX3=4k z6QKXvPf~i$xstKg=<|V67vjhCIGH()8K(YXgVJ8Dw3dz)Rgop3dG-5a2isC>d0 zM4V=gWDox`_6W&Rk)w3XEu44(!xQ$**7jOjKH`fU7i8{RFj#1yCC%~#GCwHn0iGT9 zop-!%t`X-HP+rD+XP|n zc25q+=-WyT`Uu%La%9-yIs53>b*nz~z%jD%ZKA3NXCs^&kXRMd5~ejtQtnJ*T4GjU z`_j{qKgjCa@I&sceAg~On4=^!w#A&V6tdYZ5g{a$Cd<^#(){W<;;-olUWfUmXk&bm z{yT97C-YUHZiw}m6C6aVDF{!Lvr4Pwgd95Sb{mjOCO4_2?>2M zeNzS-H~wRltGHvQTpydM8CiiKA3?Dp5Al9wXOz5557l3ve9fsn5I}unLAljm|7HtL z!t0YCc+XiUq5HQQhZm;`<$nArq@_JdFkQLpY6o{Qbd);H0KTs0S$1K87=*6HXRky9 zO_tS!ff>zD;kbdd;xa!%pLjmR1&}g!^1%8FYjv>Q#O9gOyJyHk_umvwAC`$TQ~cz<#Xmc}6wK;A?p3>(MEq0t+NY_<(*9tiKABnZ&yApo zk>0NROWwixHhGu;MDlAC{;~3mUyWTUSky1|vDtF*ON?GKY0mvpM1l!X-VaaR6KW=XZW^z&_0+pSj zqp^05HB>Tti$8Dx!?TR~yGd=rHv-)Fhm!KrM~?SJ_dyICd#$70Sk7fRx3CLPbrF0B zezX)_6q&3~WdV*XWg&EJ{cybBxxut7Xrr`u{Z$2pVxzVqWMpSZm-b^woio~?6#md* z0K=kt1Y{SEInqI|nyF?SvjrGOc0cRq(eItY0&pO`6d$Uov~lA=-kYOBg}EEHDzg*x z-dUSuh9P0nK5XJVrp&7|w>ykj24R84*1Ozoolg(XI(p4o==FBIUD#)DXkjH`eoTW( z4V(BJ{w+}&n8bJ@G-425t4EF9t5>?= z^HWG$jeO+Z1>PrHptBM*u%)y^yiS%2E>zv`D0NT2>jt9lq1N$B27SD4s`Y>P2Z+^- z!9zV%8CxGOAVLB~D_Cz5(nA$yIp=MTcbGjtFX=M{Yc62&mozV69SHY1pk0gaVZIB+ zh43v13KPEeqOdNR3kd1g@TBHIH}Ym?e<39G8e+Jg}RxkOPak3(%r~Fpkr@!6#@fu_k(3J50$5umnc6E-mc79&sy0 zbqjRZ7G8Po<2AOSruF5_iyTGrvC7N@4D3@kU*9IR*nkRmZ9Y9j;MU&Y_?)0LfA)Jt z6cYg5YvyRXAR@0jcDD+niN2O+;+ijxUtZRPvzyj=+J0nwQQk=MH4ilvi4QpHKZbFHqh>#b2v26ZInW3c{*=G@}>_8LBa^5y&P>O10 zK7Rs6}A!vM$h2r$1;H(i}~p_0|<`~UFm~&ijJ9L^l<*fku$fB2YhEO zIH^}PPud)xN`*3h^UcR1SP%T)6NEl zpu&rOybs*bCm2l{RRG{Yf`R^PL@&pg1sPd~*kX4El>%#qh1%uMQgw^{J47zVPEOQA z@nl(f$@8}#90fN{Vh_UV`1gmPZ+B74Lt(R)n)~TuWJ;QM*9NV$qbFziV#lWf#y5?0u1>m#G$zq{1okjQo-L0l2>OEMADeCbXWo>)T{c0S*Nd@g)~!)D%hld{HAgwRw=?k)oKRvwbJ*b|F}0PJwoFQXat%dcO5;!G#E1o=){#Hop{?st0`!vO1my zrYxjlTy|N6B!x+|>H1*!?|lswjScp&jGhL6Q%B1itpKopjT=B`r!{PRTDzNyatH8v z8V(>M42bIKbVG5{t>`$EA$B3Re>jyP{Q$*{?gpoWTNiYaQAy~~G{eONhaku7{1PSC zpnXGBuQ`0?6Kh)fEsBL7mmuIEbT%V)HiO^V^eNu2S&V#|HrOQJP z+PFl{(&0kuWL$nQnH!BsEB*hV&^&Z;F=uFPcMJ?2wx%FUINt~%GraCYvrU^45b}P` zad01p>(<{kL#h+}NrKb)DY_~xmj_@Oc^g`!SdR9pkMt~in8D^~)}w~6Y#eIcxG~Dc zc$!v5ll~^`P>GZiKO(u7YPHh))IoR3$!vZoBu`sf7F#qTGzrjEjW=2Mq z|1TKWVXC4t-N_cE?T{{rZN>eoli@k{hGHh#`bC!wyPbqD3nrK^rV4tFWoDfttrvZfof(1oI z#RcK|9RWJmH@>wZw$ukb2D<0M3`&W`73d^{EF-f8bp!-m06zzO#0r7c33?PD2T^tH zCTIqf+AknDzcL@WGuMZF1hJ8kwFy)yLO09+OL$WY4Fa>E~1FisJ1G1tvnxF=PHU($D6* zV2Ezc!=oMkvkxdLsv;MHL_$weM+XHGm~$Q3c-!c+Fk_K2jC>-t`p>>|Hz_ zQVCUILm$q-_OA!-gL44p=FIxB`_SK_6r2L`uLx9<#j~mXu>>k$c6MqyG&FH>bv0#l zb#pOlaAh=YXnqgRugd&Q(zm?Qj{@}W0;C1}gFLc6f<;=MjD4#Q?so$txUvOhaR~L9 zOKSJQP|hYHrGPSa{b+AQM4aQd+VZZ>*@q1E8P9G85%+U6K}|gYQUgC_n-jne!7f%H zNC8S=E*|hLz&^(?mvOHT76^oF4jI17cl5pbKLAHSxWDD_?>7HSUDy`1GHokQZv)r= z-Z29kXGf2}wE53v8`;`8nmal<{;MJoU}A0s{LS9+_nw*C{9}_7l9v(}Q&FXt1r44J zy__vb9UBHGH>ZE1f7cTdmE{3&F>wHxx!C|rpdl5rF&444wg$0wMEEVAs5wX{CtC-1 z#{YM)Ep2RFZ9M-Ehl#n3vB_`kjh*cn)oje|oqpdOl$$%|1yJ^{IBbOhJfmyqe=}rr^dE6R_*{}pa}w_ysZ;xB&h!X zIcfjZOWfJYO5VU4NcI0{`rm;D*5+33{~7vUA?m>2Y^mgJ9jpzk{>x|XC~ocsG*&cs zGBW#@wEwb8IT?WFU&zMP3JBVke@tq>kCYW?c0tb{^WTpz06jA&`+xaBV`*e*19Wr* zu(AE)0)mA2FUBDCfAa+}s>ywpRac<>f5+yZI58U|TVrz@QveG)2f)C=!N47X2{a2V z?CbzfX3$_81Ks`^762oIjjaue-Nm<>>mW`F82q4 zy37ATpzaF)MqHroihmHOpYk6B>ZkGtf%>WbL7=s({XwAapZ*|FclAFA)KBx@h#TZH z_=7;q4F4cdq|v_-JIH5bYXusD|FwYj8)UJz{*%wl1fp;J7X+yX{5ND_1uXz*VC3xd z#|GMH#(#$OPZB$*255#19L@f1`zO)O$jZR_ui7AOO#VO?5LpxRKXqAuLzh2|m{~z( zO|1R|{7$!ZcKE9xD8=+I2wL4A25caG&D`zGfHr?cfNbV}LC{hx{(>N7E&qZb`K%|19h` z0=oPqB0DJD(cJA19njJpt^VG7W@b>QKMmMH%WyJt0RA;XpyfKb+WwUQs^R<>1S#+G z7X*pt`q$imvfciIpz`j2L6EQ>f5?Fo>$)#^VVaf-jM`G4*&ra#ZT|9SuU2dg+a z*jfVB&5c3tet(6?88|tZyJ<0jE+1x)9rW|R|LOck1M)xj=3m*u!nSUn^lTuO^emt! z2Qw?^CI<}zr}uy48vW~4@?%`)+Z z_A7-%yS#lRAKJBembnGf!3y1N5f#6SU~#ew-0AHBGd9YgPv|GjjDA4~_NX+BUGG`{1d!$@sDUQ&j zQeH-=984FYR}sy?L7I3LoS`Hexnq*DWybkPm9|C*7aXUJeT-vih2d|Zh2+E7iB+A3 z>p*Hk-IlIEc&UE&bvUZ*I7TdVIz zM^#GT3cBc${PY`S1+p8*Whl4@O;e_b0SAC#dhRL$22agcP$~1%9NdS7V2T0w53Ll! z$25I7@q)#8M3@0ml&N_cbds7Y39ue*7G#5()A{sKH$0{@xs{xVg~hTk(g(HWhTSXN+s6UUjwhGm~$nCbuE@l|Hj9 zaMTIR6(&b(c*>lpg4#T1GEFJM1cD!5pcJs7PC_BEgd}y!piV z@w+BD%i}omVAGnQQ&(G3iT&;`bHlhu0llr0f;vcs$uc(ubP?7Y4R z;BcnExO#S=|MdQyRsmfok8m%~n`28^E4(3G05VeSB?}}}&h$(nRQClsMDXEL ze*$h=p%c)VR$WEs23nYX^s~L-x@#6T(Z|x#DnF<4E(@3=v>lWW3LoQ!vqRvu_M|x; zLs>a!qNPb3L(|P5kc5uD-1e3=2Q-MbtR$76R=p6+BnB7zCI*(1s^ioI)qK_Qi)Mkv z#(hNFx{LEnp%}r|&wSnUZnAo1ppEOE$y8l5VS#h~V)_b(6u}yDjDJj@?w4ghEPm{I zs%ABb?OZ&oH`E1nbdTt46he(D`lEN@lD4sqNj#+<4gvGVW-2*z9?{oV>+xR70eZGe zBi;1Uw;i?b9Iw|j>vLt%!&#j!MygjSfg;7==DEV^o8bX1_UQI3c=@ATD!0oyDWl8q zWRE*X(0uHn5_La?841@!8f=3W9UUUeH993(uV(psq1B{Gzc6@p8Uz+}y`qIkWi4{U z_z|w$z|_=y_IQKTqG&M=G)cLF#PX76M%~fj8OGUwL1~px!yL$PZLK5&oN_i|&p}Tj z*v~R;@nT16Kc=SW>ZbQ8II2|wSbDilo^4=*1QZ5KpD4dJzL}0wMir8%>o~_Pc*;ZW z33>#@7-bw;uiYrY9(-$Ce=PE982xM@<2s2(PB~na`ckbmpq`3vx6DRNEr6YzX>3PZ zs?kgA5y=~9k>q5!(Ui$KH2U520-6EH&w62+?!whIa%z25dg(4`zn`JeeS0Et2iEVx zM(FGbU%36jqC2Mz;yu0%^ZWMZ<<5wcx{qBem4|f)@a`>=o&}?B`nX#Nx{zw+tn<(3 zT$JgzG#Rn?6b#XuHVIko z73z}!M}e?cLxze>%b|6jrDdAv_T{$3F7%tH8eUl#l%tYFx5@Y$ng1*M@>y1;kLyC_ z7yWZtmBQh`VE%(|FM{L=nrc@Tyl-r(Z=NJpC}1B(ze&pdD6(E$%rYMeDTk2wc1FsV z?fs+th={Et{?ZF9GUFoD=MBA9LJIB9Ch3%H{)|o%%Yh z#Fq9^_e%0B4|zEPPGrr&=;34O1OE5TJL{^po$=DPH{|hSGXuuun1zYA*r@Y3n<>NO zG~j&6Ed7w*gH?v#AFwh1;_eRPQ_3_J$f;HmzD>Js^q3I&x|_pOG}P#o?}z=MZ9z-| zH@<14C$DTzBHNp3EkW`AxNw;WicF*#c!-rwm`DQOa6M#|Y7~M;T7Sj9289qsw$Fpq z|5o+cB0;JkV`C7-{z#~{s2G}p-@?kS-RPJKbB1uuouJzf8_9l$Ib>jiIAtTzs@ynii_fTL3hL9~5n+~#j zWgVKh?TV0Em4B;B#M0R{3MyPhP;kzPaj3jJ!oiGBwNcOiO6})VQp)5#l-+!Nc#D2> zFj0Ql%zJQk4={?sgsf0(xgi82Y7qDqlr zr3wGGWMA`DO!u?d%j~*S>7_cOzuD@(8>>CZQx|6N9k2Weg;Kw`ntCB1FOe45`{sHZ z8NSu+ZJnxn0`4XI-74(nD|zjr^u<2%g6BIf$W+WUu?fwybL-XN{qN`=W|EmQcvn+; zRt^=>vwS648`a>h({1Ve&8O2c77AZ$9K;sE(6kJPyKGX6DeQj;ntzGL11dOkk(luA ziW40MTv>uqrg~d)a<%(($G&n??bxp-L#%%gx>soo8NDrG=$lQ|-e^Buun6Qfe^O@w zr+SB(Rfa!zHIDYa_<3w4#fT7rR=m(hnBF+*R>un? zVVh)Wah$J_R`84IGp-&`kUHxk_*Z|G=bD%33x6SX;#eboLVe~j#ojyUI_TqL4=0yJ z=II_TL2fo-wE+H>sVN3Bb|cx_w74nh4|i76D30&t;7_r>juL)TflyytbBMr`vZ%?9 z?0lkM=U#F!7`G(cOj?FN!V%4D-Y(0x`xrRw{VA?4Oyp!1;KG~ZD;!VxiTnGSx$%|0 zR~)uAT3`IEX@gqAKA%Cs$_I>bc#b&Ll~2j++P3@r4R8oe?{DjE+9Mh~wb>_~2hedR4@aJcU?V6h z6sYfsL5EU%mYGsSt^#)^6r7JMn(HGjBl}4s+A4N?>nPz6^44U$@!crH3LNG1gJZrp zya`84>BTIAM`FipLXgLJc=*+HlaBlq1&~yF zsv|Dr40Z0WqeS?$i}wf&QV>zMKZYpK;}QgF_dE=FW%V5DHCzVB+*E8VF{3^$y1_`; z)jr5j2+(=(XJ5)?ZV;TO1>~R5MK5VG-zQHpC|r(AV)+@2QOuD8<94xxf@CtbOAY3Q zXf=}v>_a-4%NMf-FMJ*ft#0}mRV&US1DOmd*NyY94;vJhp;{Hm-jHpthhEOcbnZ~C z$WnDx6Cya=6QbpUh9mh|gZQ4iB2M$ah;p4TznhP!hatMQ29AhY;UQSwZY-`n62+`O zsR>CihgS5@2sw!GeOErLSF)Hq8@^V?(6Jc$=@GXon@VfmqZZsH63RTeWG}(`*vaIg zW9r;t_B|D9vR%h|uTvM54e;@Cd*nTPLh|5rihXj;^iP?p38LgnUzFsglEBmGQZAU$ zU#*bCGM_ONp$gzgv4T{$64VZYEb1z9L}dah!H_m2&RCiTffA*r)u4&|#%BQ+yJf9pRU+ zI7jhS2xvJts_`~b>H{b)!d1@5LB3G4pX$I%bLCz3y4-Z@ZlM>VdMYrsnZE- z_WC(Ec-hG8`4M(3N00K{k$-`v$AYDW_mBGxe+N=UPP|2)#>$}@Bm&36$vgh~njf-E zQ8|bk5uMg8BD@5l_=bCsDz_LX2B9loeTjB;HCOJoBOiFMc)<_ojb! zcXN|wEKB%y(ISPkKqx{Ho6GYSG>O?;PxO57@awPa^=dAr(j>ab`Y@B-C9{=do}DAw zQgWCvk-m&6ruFT+bKi{GQ6pN49_U zP<=Zm%Pw@e_(h!xv}Mov2`o!hEaaSeZr=CZ-B(q$^(&L)yRgZ1-Sv5?aCFjd*=*pn z)a7h3nytAK;L1}3LLaUKXwOaWod|i zF@}NvnV+LqfHyDA;bs8E%hjyJGlWpDFU%L4z5EBIU%^};ZZ20|$UTRo+y6F$z zZ_rn1oIxWTw-6o_Z^8u6yG!+pDlWbU1)A(bghF{;jXKUBOoU#l^nryYm?eS2dgaud zsdC*-!kfuQ53@Pz263Im>I0uLW0DJkyXj%vY9nvtqD!m?2$VG+onR$lVj#P~0mWgcgs_Vrqz)$h z7Xx@OU?H4b7&8Kt(8!c~W22vea`!3>((-!7dh5X!h7p;_Wi|fIKb-GTbFyTYE?|)6 zPS(67xD&N*J8e^y>XSrZaBMxA8ebCu`5!U9eO!4*=L&HV&s<~wLGJ3`=y%~=#VR%xY#Em9Tox_&G)b7f+@F7d6eeO``Q23&R2lJun5_Z zVt?T-u;by*tQ7;&L+fLN%U#7&yW`5mbB*4N};$7|)!FUJVeyI^TA^AD5M7Bfh zZH#@1qkNQ$4>Ys1A zlU73UWTos%tX$Qw*RgQ~T#uW`stPFq~^WkZuXAyN_m~kri)XU|=)WFEJ^l#8l zFk)Jly>2ckHPR8f`}RDl>zkcxEl$J7!adCGI5JwwJ=TasVTp)V1&@JuLM2uMD)x)%5<)j~Ei6#1A70$nSF~Uvts+&o~?g-A&7(A8pX}5!1IIMe{n}F%@UV zN?takQ7dQqRZD2ZnF)L0SQFhHNJ7Kf?TohBLZHx_*2E2byE!CiuqFm;n@`ktyL%vu z6pnd*r@d)x>Qk4Jt7NRArRA2vVV?ESV}2kkqC zq?uroN{;;MpUN_QUa{;uRD62~7f!53P_|~{f zR30>+b?_a)V?Qb^>rms|>mO@DwD~@JhN86HEfkA3Z(JK!Fwjiz$g#?_m0{#t*p=sc z?orFV7I4W1AZ*qte}2Axn}GL;(zG3ZKqi*RtotjMZ?9zgoxgMR54f+q>ro24F1Vk! z+({Pg#X_*)pcX{-*d2K{vX)<-GySWYDZq>TTb4_b*W}GaGTj>lJ7z`DkIP^LzHH1# zk<&rMIN!_KY+*Q!PCAs)WD-4$%bG395eHiye9dt1#yv{UnQ8#*MCjirfGWMW zDxhAa`1oG zSk;%4HTB|DD!?AVjUBfjK`AkY)qRRZ7gE6LOD!%0f96Q=ZVqPet*l~{5Lmktg$wPS z!GTad8#W}|54g$@)ri>ng#bC5yA|HYv88^OF5Zf!u{_EA>Oy2SIKt2te=ux}AoVZ0 z+F2^_zPy(XQaZGK?1Verd1KMsw-(xTNudd%1wvw+{crDBlXk(rf$o}UtY zPQ&s>JAwAB&I_7`+)N!;#5C4l=m~W3V7`_6%JV&l zOlkX0lt6Bufp_~f;cf(e1>%nPdb*zkTjFhuFE-MZ8nvU|)5-{r0;UzLL+HAw=IJ^$ z^0Q!_PKBQi?w#l%d18zGj;l9K(I;oaF#+6a%yZ7?-0oEb(W(HB@I2C12qiFPn)P~B z&wo&s^UT8}AsW zK^>yyFGk(E0UnM_yeGQ?1Zjq$Z2<>JaP{QJ6wJ{2%%#XoEv{WjZ1SM#GcmXmpJzmL zGCSFsa|rfLp-;zTsCH|_mOjc-dc=@qZL2By>}zC=M6kyxC{LDLHs6N;MM~y6K^bgc zYy<>4470F=jZn@?a48Lge!PPv8~TV->OYcHNPW63hC$8eC=l0-f>bBR0byJ& zYW@-pmU=ICuf0}XcAA->8@WBe*}MQz-@YYt~%l(pVJ;~Tge=zbB>xbbUug8Q7Re~;^i+oUFw!5g5aUG;8JI*G!x!8xiK7QRO$#XyT%1lz9eXAjR8wC=8{ zF>g`nL@N7;QzbCYFkJRB-gjlF)44}_Gt!NVWKqX2DJ$KN-Et+Fs_l*IiL9eISyp7e z7SaWQs58)^tLT-xs0AD&P^nKK7-$Z3q*!xpPl&yn1sCxx7yA;bbNIB!d;U6*-PlLg z<|Uzh@cpFrb1Dfl$)z3<(YdBk5CBFo6y;q8Hz~UK$6R9#2h!0zFrzL`R>DS@$ir+V zg@8Is_SA!FwPt>VSYcT|#c|muRI=N`+0Pob;I9^K@N3sfo01>uW=$tbI~!a-q>#{{nx7pt+Whr_2!lni+NQj3 zPmk^}9ZS8lsPi<&LU-sP@>9-$FF-^4zOdat1VVPI#>&Wxx;H-Yp~`58yELWpzCIu% zD#s@Yr-+G3STr4nGQ25_XGWtoP9d@5NU!3yOE<=*qyXV(98a(tolZxu{A_adl z_eALQZ7j)WSI8<|f>(>a`?+98v{Hmzo~BDRYBU|L#vp)qtR1HwtC>=0s&MaB3N)`t zOyM&{U65p?<2HG6{lliNrAsqq30OBYva!~QX5BJo$=R62)k_n(uymNQtc?acv5m5> z^o`}hTgF%Fdjli{4Dx>uVzVwnbI3!r8>0n&f#3q-Drf2%JrJb;N6w_Tq!qM}cFi!QF5vu??>Gq6+;JJ-<_|yG&Angyic? zkXk!z1im6-EljzEw**bMrVQHgnqrZ&MZOX19-s2}z_sak1uxbcsTpXkc}EtnzMTGG zq_E{}8G=G9J)Z(Js|f-rEN-SQzzg78mdWr0zn)Fqw*_TcbnTE5L62XFLxvY}EQjyk zC_=Rcn@#G5=nQ|_YaTMu-z$kFUZvC*SY;-4s^KS=xs~`M7$dJ6iO6;SYK_S_6Q26Y zo$F7ODDVm?MmAKZchXhV5q|o(HD64}+(W>#KqH^@98>A+Z^#nvJ}w~WV&6{}7BQe3 z(?Ddc_bsZbKg$HIeq`Z3^OyD7>#(!b`(Pg70wo63r@e2KajEecB&y5`KZxgX^WVqr z&TkS1Kj{T`LP2OOGeAjOcfva#Sxk;x_Add<~ zsoc}b{g$K69p-r-(`ov3F=1QR{Ntfy;^z1ZWdaEv6wYhb{$BQ-OyhU4hy5$)cm05L zi*P7?d6+u95ro2>p+eaTL~{a*9`0?0OIIUvDWNBMl7I)_BSkpcWLr!%oMQFt8sbwZACUMtO_yB zrH9I6R#UQ`L=QZ$OA=q%_LJZ37sk1ddKeOVk4~{4#4Lf|S+WZlj2lf0cgFUY9}$y* z(9KKwt)+$QD2R+5PeCxE0||(IEd~z~l-t8`##Ba8QvV0P(Mi>_8!O)er$ z?TslB3*WgN-TATAo!)$+yT=o-dad4zi%k+d(s~pWK`unzk1u)d94|GRwM$*P` zj4OU*vg6-{bq>xaz(M`~BZMmS8P@dqiJ)>fGSijhGloJiqfLKZzMZ7zV;7xdoIrg} zr2)bc7=pKTR{3DiPoI4anliN?clNQF^0h*3;?c8^5H@;%xhbgVA@AJCuRK&i9>tIlK5434tC3+(rLeU5dQe_&)R3Ex5wD@6?L0@o&R(ai)pV$Wzs#{vD;HAZ1zjC`H+m2 zTD7AvwV`&3tQPyFP=zBGJ>2=|H|ioEiOCvU79RK z*Ry1>=v#J={rw&<$!K2l^_VP}cMB8NE-6c)nOgW&)vhcfClLjN^L6ljfu~EbIi64o zMkOqSj3R+~otT=f)smwjR(lsD;6^--Ud@6$*A*ItxgoZFE@o0u`tCQ;jJ9rLOj+6b8cexy@sogMed=c)=cO{fg(y1vF2}apQ|56 z4iJG7M?OLKJd6eQ-KAjRFo~L6ABviX2>4%oj6S^6z*>P-Dx*LZFrk5z+($?)G7u8l zckn4BA%Q(G9=u9*G>YM!epy1rYSv|Q^}QSk6F(>IkNH)Rss~jvsySzAsgagkGAJdD zcT+rKarc0;Y6xRk%VJaYW0#&L8&NiC)Xo6VbYuK}4ev>tE8%XiN03lYLb7SS_kJPt zArX2vHOAcfay^sdHSzP{sa|KFs0KNjKi!>iYJ!9=pvaOGMUBOW{aL2+u?FipKJm$P z2Q^z4!Fqh9ehXbrrC<)#dWDV|(@g)u%SNhVM^m1&tEa~$oDDxp7~dS5k-*!~Pz@am ziW?54(N{Dz)5Z8HZ^5=Q6}$!ymgYvgb0DfTgy3EEnddu{`)1YnqY3Zbp@P!(A$QyhScl5?wEpzC&$qA%#%|%Bk#(x;E}*E?Y6iEA7rE@6Y+}pq(+k<(HB$t z8_5Cg(m*&{%xk;=6lO-&AhXYqIc4p^UKHw4(Hx2;rz}DrDC#MuLsvu6!SLTZeO*tM z$B0LFaEoVCwNBb=2QHT;-O?+hdcR>uEFI+ATaI)xb+A15;jKUZ{Bl<^h68y9!v-!f z{sM<$x457K_TEztqD^VK5{|tJ@@()}Y%X3&5Ujj z87Ild$5aO|?!8Zd!^pc$Cbu*Zd&-IRzFrhpf0zz3yH0}a)4|MYWm-w%G+jpCddGp! zFKj@usw{v-F*0YSA9t#KZGAjlAim2Six}x)HO%=Qt>&9rBlI!ym{cI8)oGR+ zN7#5HG5*xYT@vn>b?y1+n}Tv=>C*n@3iPBgwxWaWVX_1%FQBGfu-=lI%AW1T!gjzh zYwZ;$`7eHToz_87{Uh;9H_A42k`ATSb-eesE)$ z`ff4}R=~iE+@7u5fkzzG=k_2ZeDGp2Q_iJ){94w?%KZFI_sbgOiW1Tgc{Lsihqw`B zoRdtIGqBy1Iio7D{=7u&a0d(CeuKgt-aXEicj+c3^62Lhu(x&4MHkSR_c5`vvF}Xv zs4W63@wlG1)^q$YU+;1CXwdg1*>4cb^Gnu|*ldGXkaX5vAg(Lui&gp0S2%FNWXUO7 zkn)gvQN3V&#;vhjil*78YFl%ZXz7`7wx5uC6+V!_>3$J;7!D3~iK4>Zx%A#3xJPs+ z9bP|vk1Lng!)@769V9;WD6RMv7Vf7r)~MAbdS7Way{NxUoD=FCYDc*73^UDBe0VU$ zvti_Pxy)XG_s5?`uZ?EU9tEr240h3!i}A*Fw2K{BiMWXjpZLNk$Jh`C*pa5+@CC~5 zZx#~%k1u!|gxEeu)YINSUlMN(D#uD=FpnVdP6_ ziD{sZx37pv#1lLs(S8fZwI-W;Itc6Vov2+R6J}DlQh`Adp@5Xu{&^DXz=J9Qj>P0` z@!0Erjbd!CZ2d75y%l{EreK<#epfS*FH&Afu2$$B5hhsjseCm*L4Z5n+m2zv0VI^( z;KC^-de#X)7DU-?R$cto{qvjc77tHnw9O``lUdA;`tv7U(fbR(Sc*~x@+wOqmxc~b z1A8{3?96;jNRCcSb`~;)0v3az4TtKZ$`(e!4T_CL8$K6;$ep~CEB}q-qSjT*LTM3S zd;Ag(Qle_$%*e5y#KKqpX7iyP&L~$`^P}N&_$MfIF}vBtlH5+t9&O=*8m6-^>Pynz zZcw%!BQd4l% zDlreN4)tX?3PMJMdKJ2~;cJ36Ep$&}G8zpZTKhK{m>F8SnS!Ro)P%nw7$ zz!>_PQlo2nXpHg36oNx)hwn9D=XOE5(A;{8H55V?$6l!kELW@==4IA;H0lW@Wn-2r zVo2Ix(6n{%yPs?IOv?{6OeIZcYl5bV&^j-a)%_KNbuNN(@HZ^fh57lI@da(Y z1FQ79)r9UcNEN-KjsPinnikiaG(wu&7uD8YqnMuxIi%l=3~^kg*l!Qe)cmY|P-5yE z9|#Mhe+-6BPq2K_ukLF=qA~iYCh&OV(a>jP&!qDMJ2chYm{d`!OMq`5_5|CgPG7a} zT2aIEsgx_9rknJr;+lz+bDD62^!!AiLYOkTY&-r4hnLNICG`LL(pfNsVi5~?PJ~gO zs_2m>^a{rdLpQz*Eb(qGy?hdr&uwf82#yx+{Ic7rXC*Y-6ohJ;*Ni*)88iD)T*JG> z^9z`s^0Ic`XW8Y-+#>-|16LJZX4@3oSUZv*n4V?$y1NeB7EVSwt6980W(>((QyyN* zTXu5at8AfeR3s{Yax$OK85E`Jb(+Y?rjZyAf4w%ds-xnncEW4RbkBbwwClldX3>rRkYj)rQ~@9U0!>erlbH3f_Gvu^cOy@_w361^tl2cyUY zcy$&Ek(4Ka*s3B%zY%>-O*4efKFw{!!UvTBM{R?5JP0$mX?ZbElWFPlKZtGL?phI$ z{LcUi@H*2R zCIZ%Of-C%vQt-@U=|m{{KENkX;$h5rpCFTOO||^0ZZBKe$QhiD&aDAw5vTw3 zFL@=`Xqwz|PUNH2SEI2*WP-)r)dfL$EsRH)Sjd?Vk*%@1N-z{>)pYu8TF?Q?!1av=DQi^SvhNIj@Kk(&72dyto?)2I4~^fN8)BnLf#7 zaRxZP_{OBD*>{N1k{V)P$uwl9*Vdn$eO=;OE}MmGVoz&G2~Cm{m%NJ4m~;6C%@awM zqaiD5p4&im4rS)|^Zw*#dCvYZDY}4*eopE%s@b@)HiC(gcI!7aTk7)7RP?)c?6xGm zo5=;JM!U=iGN0M>t2wcZiPaD|tIM@z!Apt2OrlPL^u2<5lZ=T1@6RKX@FM ztaGh$pFQm9=dchk89os1*N&cLN7M-sYxK-U5$+`WEA{k^a*_ZnwK7a%m)(UeY`Jmv zeyMB{vB?O@7hC0E#xo{Qj*@Xn60eq=28OkurRBkkJCYP<-Xe7#*q)z@8l<0b=4NLc z9L^)d6mDMU&xw^@3c3)Wol-~5IF{k-!kzzSL~nek)-WAOw|=!@v$y=2X$}#OyBa(HO>@0X zPj1vevH|XxM!zkugMLJg(Uh=wVzQa4y`*WX(A7j+UU+OB2SQG?Iq;na7H@y`c?LpO zn+!a$&e?Tla>m}MsRY_bh{$Ev`;E0VE54i|-9`)y=xftZKjjVhjm;V>ih2eEMV@!m z?$)$ZYlNe_b-ta5i|e@#)mo_fTucO!+dY)L`fjua*=wT5zB0@pxw`f75E0X*uG;mgg#?reUSwh6vO*cXjpoMEaMgA-IEtrcsE z9~6wtU+DaPO|SHGmt8uLZ;b7KirUPV-pD6G(LDIvMm-)4m0mfMD}eZ~cXJmDt2I=gBnX7e@Zc(qvG`vy z{2h&v;y54S`rJP=Ri3PK!1o$KV!giCaNponhH^g)(!b}my0(uh3uCv@f<60yVw)>i zov~sprN=sr-hzdD@S>5BHrh(p?7%R^3!mD}bEtbh*d@N1M0zUkQJAR)myN-4RBH^Y z4u#w!B8e009lPpOk%G7TvUGAI?a%0K^{ZppL_QR%wf$+YmDf_h0ZT2EDNCNPgHn!;<-yTBGRv& z7Du1YD$s}G+0k2*>N2%w?5V#xAvl+>MhmBWF8k16qE~FSMcHFfseBRLK%mq`jbnLZ z91hmBZrH1uTb<3f(*svh%kF9tC8xsnNpOob@~3@__c}Vyi7o84x%Lah?s|2JM4*uGN}LZ@H8w>%yYrL4=vjGXP_w6 z&}BWN*hIE{Ca^C<^dj?ioVdF$e>wOQYDO(39qk6=;PCS>eWQnN(WVsQ#|4AsZT(Q} zqv@Gh;}Yad7x`VGq1Bas$~!P~&aDT&wepqr61HFQKUSO*&L-wJEIdLBv=(FPY}=7E z-K8!`8mX?qO{yx_nPKdFd`Fkk9mzMc?tRp1CDogFq-7~B;o_ZA=HrjBdy2JrCcFs< zGr>-SC<{`y_oOf-k8esyV;#+A0=y-^(D)W)-J6RFq1OzF5p?U-Kh%)mv5Sms?`Wk$ zqv29%J$nuceS84m%@oZnH9*<(HVfAE+j|J+D0*8*v6$i-)-_vV5+V*um^E>Q<3F?3 z9VTRDodxt+vYTKrco$fk=FBeohS$%$;fGa!ce2|VsWLVkprn7^vz)*o|!jQVuIQ9McFbLL+3QA5P?Zs1o`MAOtcir3#dF9XvtU zTc+tgx*j|xGH8P_UxegS4t(GLkaX z^r`@!&Y3)_I!(!YUcClUC8$GuZPMbjAG-yJL!08m~~1kSxD;_IW^_c`|-~w+KH}fO}w#mjTlUT^cQo;GEJsH2XkTZ z7`d(sb!ppL1cYLIApO<=lWB*Zr#y+x&}VJi1pau#D5Ou;IFUi`9=tkBG0aGXjO3+- zEGJ=!(kM_^!oM*bd64O6o-1vpZ<|P(X@-A{DsxvNg?JxkKvTb?I0MV1Z2vP25aq;Q z3B{=}BoJE~2{u{jiQ4Sb$zU2Z6nH>O{q8`Xnc!{l?U=ei$i}K&eN@O%>~z0weujR@H=c3N#)DjoK$t} zk4eV$*5jy<(&6$X__US+%&*vO(J>>g%!fXds}j_$Qz_O~*Ds6*h|ZQq+0t9( zD(W3>pY|BDj0J)klsMX2WWw;@!cg=Q)-TfFvyDVX!XttDc)SQq1vrnm(%&7N1(PWH zf>v}VWWg-YTa6rj z`XKclsnJISx#@A3NL)3Qh?ctfwAFw)=0y+_DM2dq>LEG|xA#LK744FU)a;`sO~!Zf z{)o~z0lyLg?|U<(XcgN-KG=-AJW;WPYv>%jXF^3OdhE&t!o1t;~n!d#S+06wbUVghm@7{d!9P^_GY>cgTJbreevjILQ#}FOwVCR$Ey3#&!$7xNR8iF(|21+ggI=+8aVK1*1tV-y5pAHw`H;3Q9G84-46F%e^e_# z5dThChG~eWA+!7tb6R|7j&a7>*tap8WmUN~UM4lbvWi-Etu5dwwK2%<{^HavsU5$Z z2YLxyl^L5ZPLr?6W|-o^XNH9ht-3Kt9G;({kw@N9pHzq49|q7y2Cch)i5}fmrdb5f z38bzdTiM4>CfI#Okc=^w#y8T1<`(Z#W+Q&z;q8zck%5483_UX@RkRSLsI(JdH4wU( zcabq&po#5%H-eyW)ZjGo&Nj^(3E3cN(J?Bk#5<9J)x#|^#PIz)nU3#Pg*(rhQ+J%P zE#r`T05fjO>t%GDhZGgU4zhwNS=4+4mmvroQoPQc+Y)#-LDaXxUt3SPeGLFO8BR)i zFFTxVvXGbY9~R*g+C51ghs%NRB>!Ik8aw60*Gi7|rCd_5a;;kJi^hx6&dM4BXI^LR zB?`jjHp`1mulofbWh47AJE+Rl3z3Gu6lH&cySl@QDg{ed{?c&iXlw^e+X;W=aTKs| zyO2Si`i$LEkS5XACg88^F0;$FZQHhO+qP}nRb5t>ZQHh8f1imtF>^5&lM#855qX!9 zk-68}>wQF!8VG%D5S=G|c+?tM3@}zu(}DqE1Wr-f(KvTA^LCCm#nj+k^(ZEdU7!?b zRJ;5}d9-JJ@2NgA1(|9HDHuVmF=dbgO#JFOtO{2v7iy6r;NwZ<%4XKJTG(4|{ZC<8mTv`$|>Z)8tMPiX+a2(l% zz5a~qk+5Mv82$^5HAtR1qy2Kf*3OK5G)l;}XyDi1fbU)r=|0Bfd|)tm!nn3d%I+G+ z(%Bl}ub$a=*uZKC_|K;sKk)>6PWb^572Lw>e5{YfK$WnjoHwL+&3OQyd9G zkygg%p9~l5vE1>cUQgbk?0cg%dGb-bsK1<&g{&d`jG7ion=2W`DrO!Bn<9=l*pdf< z3ARpe?LAFpnRc^+letn}6raw6O%82yh-Pr#HEVe#Rm%IGXnCgFtk6#|c5#;>JUE>B zX)Lp!s33{_P9bVyM-;dO`{+7k#^SuFm$&c8jS#IcsBc8ygSDX-i@_^5&QjCYg43f@ z`U-$`*;{#Bt-ZrS;c|yn)MAGFJBoL;BAYyi z!ZxBNFRg+;+aN-;cS89a*z4;AIfb?e6$W+&L@E8OrwCE<@nog}S)1A<`U@QXDTZ-z`D^ zMeqjbi#yGnj;x*DgVx_B$58Y-vbo%nl5@_6{vCIgn!1G6mWV^N&exFlb4@0+f_jc8J86a2C(b5Q6&W#C!TlU)@7T-%Rtx2`RKajrTzL zu;76y>h%qHnxaAoG+)r4tL9WkiMJtGz*Px1$dVHT@BfxypE6;l3|iM51hCJ$h(7fX!QU;5VjDkKC+}%xke-8)J5W zCGTz7knngVJ&KYU1gD-f%i@sqi^eI`E~K4xMGZhUKV1to(TryD*YCql{?_!qQdx5P zKuWPc;CU`&*4&nW6jCSx;!Ot=;fhox1LiL84fCoIV)K?9A?4g;Vo%pa?N~MBx>3o- z!Mzl5&rm7+G4D6`vS6qAx>GkS9@KCmy#$3WMU`g-v3yaVu7}u@x1LkZ$u6hCfLYg) zZgo8tgHQEFb(o+{AYe2@iz-W*m(@v7tUaDh{ss3nE-+h})P|$<3`K zd!)Cg@J)B(XCM0Gt|bwgb!EK515_mH-K27zn_zCMWXaB@HS5%!w|3p<)_0O&S^fYV z#G5@3nduP~dx(5oB0KbENN2>8*ppMk(_-X9S?Sf`6i#g}se7;TBJ>Unavx%(O| zi`xQz@3^Zfiw@pv`n076qQAVaZGBl?;YPEx-kk$)4OMVR>TKiGaivH2Cfu5fhOZ=d z3-s92{J=iSn87(j5d`BAnF@RSNux?)g-P25NAi{XswQ3l$~53zs$e9hlN#+BN&>wd zK{559>+tBHzR&u>^@TvrRFqu>{MP{_WfIszDf7<7){B-_tlQh}cgns#?-`(*ytjy% z$%|icNvEC86D&^t&Ry-_hY;RwH2k0^+>!g7I6AzO$N-N9a&MY!ARwKM6Fc+26 zkQTS(<`vMlPYUQqHZ(V+U^=PJ!Tf8x313Z>X^?6EO4nHV;&!D|>pdB4J3^$qM;B|j za3&GcWP%d^#98|;?sMZZN6HCQW1|oEdbXIrDtZxi}@` z(;;`i97f%oMmnyRX}Tk3ujfl%4i4Oj z+v)ao71qUaTIr{mW&f#{EX1bSoYzEFZ^Y1iB5#l(2srTNii1i5%I&V8VzsH-HQX7^ zKJB>NJK)AqV&XkR-+wubF%W`E^`KacVi&%qUgbdX*tCoI)!zvIMp0jz0Yu*GRwz8G zWq^aFI_0Zkh27Pytj_Y>jRO;<(SQa8xj<)IAYQ83dfmkfySRfuziDmJbOb&PIrKSu@L&#`2x!bPKHjrakH`Mpm+-P%k zVaK-#PAW-lh>Ep5KpeEXg66}K*}c#h8)6hB`<2d(FXDB8B|lplr5GM$H#}`lwjh2| zvU($eyrYycP(^6=xnxX~{+JoDw5B(@dnmaOyGWAe$|Bmu|C($Q^koAji=txNmFV2$-XGFj_m*CcAF7JaLy+aS5dAWQTxY_1 zLD6F~cuZ)haKFW^bP8^YgILmv4MmEIMe|JR`CJnj#m1qF%?(9{bAwMWiAIs0x8yCy z$Q+eb1zIA;%CA?iz^bMAWBM72_WDukrnX93#6Y3cjla&%e_8lK4D_xAl4RloQq9!M z1m6W@O@I9Yd0vI(wgkOM;Hi+?eagy9OXg{s^225Hb!7@8So$@%4uvh%_6#B-^*d3F z8DPLN4D{zL^=EpWSBVCbuDI%nYpyU1v`vCzEo9Z-5nZ4%Nd2EqkW zA|i*_=PnP|{%RDRZtRH_dKTVH$t>dnB+WqZnXxMN>!pY0ZJD)9fQd8e?hUR(54>mV z1mNIUzGuY!>R7-SqT>F$Hkkb$uafJi1KLuGJWiIy6_Z9IeUk7b@Q-kFodemqjaJ-K zzLUx|LJ0~uY*i%q^MS+ z6;s7)aDyPzapF^~+V;^OOw6atV^J4x_|5lF1qSn5gLGKLq@DFMY!EI;ZD?klvPw-H3D7++OL*r~31A_Up)_%N?cU$!gZKu$3yxUW?|I73Q9W zxXTS1rkpCFxWaxKUWAE2-VpWdvP4TN!9;AbPP4k|QRWdDV%-6=&49GMi?HETvLa<9 zp@mT2Bo=AEKruyrNk`aCu;R9Tx@d<;VYA>k9*W{Hecn&E>o|0}P6(a0YISxb0d#)P zsosAJ41TZ%g_m*Jwy9PWcf)(6SVOH#+X^$$DUJpOA03+WE^LGfG3)3qmnO~4A;$*c zknxHgcDN+FFq|D4ojif&foW$~XHKo?I!{)T8=sOb80x7&1J8et9Gk7}U{Abfz=B0d zA$6SMeM`BqWU!dBRpXs%0=}UDe7c^#(QCYkWCurtc=-C9tO)&u2pej3PI7xH1)_ z0pw1Lw86jADypRagciMQ?=Nlz*YO4Bm=zBFg?skiHR{2ivL$NZ7)o-4eBH?jmNSLsauit|Klo3(M>Ug&(~t ze){8_(!bG)!(NF~nb!@1?+~a#HEs zIHaY>#G!V(7AnAvNKBOqy6y8hnr_vLJ&|*zX>A;(V0@%`@2wTV9chqcnTP;X$Mr7j zQoSS&7XF!kp@!rKM}A&xb=L^J*r4ZDJs2~^Hv4&}JTsEMaIYhk5BQKUWMVu zFHbkxGfplluY-gJUi;ZN0QaS2n%rgJ;5R>sXZ2b94KOdPfh*idm(5R$`X?+ws5z+4 z(JvJ$A~P@kNIuy<8tpliaRrl!&Ww1bJmudzQNNq5cB~nt`FB$5hPGh9K0Cwy;Pu#w zX;5J5J96p686e_OfM#x8F8K~`pk5b=(d^&Ri#oz3=RQoRJ zKo5r>?1o>BAhBaJw^a3KzC3jDaaJbQay~Qc|3YXTB(Ab?g3NG(C2%n=Qj^REu87Fq z{cFXPWnNf|l3_wdyxaWe1A*eN-6=5=dutsDNRb&H4|;BLi%v!=?(iCA=j653AQKM| zi`i>kJIgn-Ifm_2{QjNZMpFtVuC=IcMlL#3^ErHcl<`u1)em^5SXF-JC_37`mL|c6 zTC>O`S8h&Q2CtmcPr}ThD+0|+y+0p@+6Je=lKbHZkgRB1BYmF)9a*Aij@0N6{f^Dm#2M{A^L=?rQ|GvyOg0C*CWU|@wF$;LW0RB2r4Xk!< z_EuvR7ehCKF<$M@j3_sIE#qHzTW8|S^_-6IB1Gy&265+2x|Wu+Lqr&N> zBX$=zp$fCy(rkoi0XASfmzWHj&@i zm?_4O$kF@2Ca~d%6;6=cx$a1!@(1@MaZQdjW9N9GO%9JG*K-=Sme}fhJPqGdFqLny zMxli(F?9q*^kQ)m4S^os@mu*SC8Lx|YxNDnf7^z!hIG*EC_en|X{&D#*}vGJnyeH0 zu_->gyycRPjw~E#xSo<$LX*m4&Vy@(4txlpZiNc$d?aOx8dR%7bMel0#HMS%LHpXt-K$I?Hff!ImHUOv0f^*+JZ#q>6xc#G z_9)c=`vMq_;ruvB1bO_?(@jOINPZgQz_4Rz!Z$B}CAUo0U9%Bbr`sxU9@u@OS@uJL zB5#h(O58(rv-ZEc4dhoKSk*TaTAJ1@Ym7`L8CuIe&MD3>aIlfBn<@(oiNnjiQM!B5248Gp z*}j&#xr*vvM+gzJeSMYCpy~J-`ndCM3$cm;)M2$c{1qR78l#t>*e4u+;lPyINvb$0 zpiER5Wt^Ma-z+ z*GGN8%1N~FcI_?1iy-dUZz686p&VtBfG#MT7}YT>M06XgX8(B#F4A|X3J;)SSx=LB z_nX~e*Fc-zeseL|s6VCHw*sS=Z5*rYAkh~F$zDK3b<`EBsL8aOMKmTj-jIJQ?&JM4XOC)&k{nVx zRVVE7_vdT2QpNIJTRG>cT^Nccl4GHs6^#IT>0z*46i-7P5urnIN**IR)e+Eykezk77IijX z#+_K%rxbAMM~eCJ_lid#C|V4ZCEh8g1_^0;Sn%8D3|;Ud zdOw;iV7UE*#c;@6p-;g@O!4g?v4A)6^(&Lewk!ii;zQzIhB(xq{lUQ-Y(LY1jfZXL zzQB?*aFRLE4S*-|)YV@WW2q_2$z@l}8&tG`tL{<}%eT!ZYyIngUVRlLyPn$Im5P!s z&gN!B@V;)$-qV)+LmN6dI#2_RWSd4g}8|b-OJUxm7Be zftkFm8LIOL`$_hfo;)tV+M${P!>sVt4|u)iok(9~D=S}STImGw4xyZ!mr@g``kb8y)$YZSGXppBC2?NDUqaV4z0AQ)&rmU3pH|DyOQk-??9n#RDNFt6X-Pgs9!LiL z-Gi4n2l-~Gq$JXo%>&GHwIhF2-Twj>0Y&RdK^Gug(9Kq5O7-9vlgk7}{`cthweLcj z#`t-^eq$cD1zz}MX z{5^XD&m-gDkd5g7!DFW;u_E;w(E&7Nr3jegMP(h{$sc~L%O)rqiihF5Gji{V~uHJ7}#fy zzKt#`YjE%1TiePZI43oLM!$x-qREAb23kWdJ(0{#ZJ<|~cA%SHqF$Tfs(FLb+} zB6CGq?GU%BkHugrGx(V^rP95wQ)e_e2Gsln8t!{M2_>)Z->7e3Wfr2iOpaZY>72X< zF5t7!+T5yEDsGG3%Jg6BLZe_U4$of6!iPUj+o=R%*rh)#J{ENr?xS+`EGr+7qzC-> zH2GTfZF|?$n)p{04aYCwGE!t$t7I-qt&qH|oB*%}10`nND&0&PHEIadA+#ytd;gw1 zJD^43@hQUc?jgJ>gQdpD$lwB_nM>-Up!gd~_*Jij<_H3ZroGWI+k{#%^es-#>iZVT z53vWR8BORw4tdo1oojh-^K6{1DqKim;CY0M)C*6pk!a85Nfq_ZK7fI|F-@=Y4`Q)S zevg;D&@XmCLSP5ENU$PgT8X*{nJW=XpU%Y$fV$S0byCZ2-!yz7UqyY=#t!+YpQ>lC ztl~X67=jZd`Sh!$8ujC@)vw8TfXEf1enXA1$#I-?3csnp2S~)bhuFouBby24t480X z$P}eC*kOYwvCLAX5x#r$HcDKrzdcv62Cm!_g%Zu>EkXL2blsQ%U)p)1#gLr06zDRz zTJA48?aB^6P!+z6E!58wn_XQt(>v(uDn10Y`7sM5@S6K&_CU#wC#MThvv-$=*$cP=!OSW4d~htw*yzMEga zdmb~Z4f|>uTn3LS3}&O2N}}Q<@MzsMK~pZf&9sFTRM+8 zH&djtxc6T(#T<@iTtn$J%W6TCHJxbv$!rEV-^{lfkd#K*{B^vloqPgwRugP4KeeTI z*wob|9etgw5$6foNd`Fz9D;uqOq`sr-Z=A%9{lcbg2}rcHWf4=d_WX24s(`Nt!gf(Fl9j#<`Sg$*BnJL3J-~5ZfLUi#L=1V=>ele(w;$xlTORNq zb8Kc%Xat``MP;_^pp3fUAFx76y&142#aS$dVDs@VlwG~x7(o_Gc8Tt!3Wn>4S4AMsSuJ4WX zqq!S%VSxC@MKfrcc{8Dr)}@$I>W@MnqF`4OB2tv!jdE5lQwjf{*IGQvhb~s3f&okO zk8l4T%9i)hT*2@ByBm)s-e)h`c<#6_mZ~H@P)gqt=thtKIYn|fJJB(33I!Y%jv!ln%scL2 z;_Z2xda#^{U@>3^qv3O`cJ&>VO}&OR2=gcV*P`EJX)6>whkmefnQ9b06c|FLx~`?4 zWgVV@e71nl(7ygcX+(r1pdtna*qWKiWQtD=KuPQ1^K8dT`T7gKfZJ3<=1R#vHeaKv z@a*E@ivHuHmzS zzf{?a#c*HcE$8}QvT%0T#m2&`FwdYr?^U+E{fTvQW03O}nHtj>a$F3W`Pelc0+Ec@ zH7j9ns#vh9@F!gAo{vvfT$!XVTW{pQY*aaGIQ^GZ*la1CR2}$ z%-@(RW%aHtn55WT?|>&6l#)DI3J_7jUw66vw-E>%X<9*o-~AdH=_9jOMsHG@ToL(= zDdApH%NuRHW!_jXw$P7cP>_n4A+a44_hyN>fptV@_nnM~fA;@8#b)<2?detas_uke z$m&ZI46(wYd4X1H@Syp9c>*Z4?jFZL{l$__DHMpgp}M**G(}z(c&9~&HWo)Kp~Q&V zlRVr51x{tmR+3C(SsjMgp#yMmmoXUh#p+m1f>z;iL^f(0bei%_emk-!Jx*^knN65u z4_*0VA><1)KguY?Rmo_hfnruzV}+8PU%2lhUSZfwV4QseSZ6X|0Oi7apZ z^}xzr+|^-vT&UhfE)l|$bg5y=-p@0@bJPJ;F}XN-2aU2(B(@?BW+i#e4ZLUrNb!H~ z%~bQ#JQvyA3queXdB=Z;!e8tL%{(>(l@VQQI7wn)1jXN1Y*m{1H@(QSbv9`FT7!6Z zcn@{rKwhum39Uc$7(OGMP3O(TtJ{(#O3|T;E!11Se@Mc?g$-aK?h@f_ennwk#&>)^ zAfv|uFZ6!e=OtFRO#GWq(xmkb@{lHs11F6kzn1w7PXGBvz}@Jb;BNIf7O&H15yBD$ zD{JZ)CQ#i*_5W^%dgCLdl98{Vuy{3^l%*c*Olzn8yB+Wsz8{sSU))gCO{R<%#`Kbs z5#uee@nNi?2O09|Ws+PRA(HjarrGb{{hVWnzE{ zIM#wSysdfNKG&&z=%k@2BqtCNc1cvm#Inq4d&GE-_5EgN8m1_lI9ja)ajmRIe6Zmu zpFoh4z}w;$anPGa>eqJvGy!h+*5oWF=WhpIbMDgZ8|qEY^;KLNN-f|5RM%Rd{5m;7 z@|#rqswe)jv?e?LeW!J~lqE`S!VlQW_R*N^QpZkVrRXc>V~YYqW2K($)@}V>kUENp z%Gi>cra`j$elewc>ryu*v^A;#vD}a^0Jz#JvGiRo`+T(N{Gn;{UXWgB7E|w^Hmpyf zvmyXD53F#rS+CEX5PS6$DCW>^>?jJeB%guGu{ z>GW+=fA@kqXF917r><`CuR+c7BP?I6pT7O5Dr*Mf;Zg2&!%`K!s zJ4*DXOIklbP`)1Zz!0pPk9O%D`%&_{RBf#G15r@fy?~|cUD4cZz1hh5IE}Wq>#og# z`~kqt&QGG}4ag~>&(_mW}nMYl$GQZfT)V{`_fMz~iEsDp{{1yAZ;W?*S=MzfmQ zA1+n(tOH@BLXyfndFBniR1zdP%<8=Z0r6O1qaV~)j6}kLVPuIe-tKFf}FBflo zKE9!bZ8DO~8}R2^YN5{IWSDqNL?Udh{O1^yOWWyWxt!Rb>V_hyna5owTg^&BXtoH8$yO-jlaa}G=tr2Uy&3ajZ?uI*A8Sc4Ex7JBUF z4aA@EE)DWpbAHZ|d333o!-mxDT!Y~XTmtCI)7s=0;XbPS0}4{dPAr%rq`%d-lU`(IO@3%ET=^BZVJfDs(S3;cL;v#rb&}NZ9yM{eYX2yx*hFu(G zXh?*ccP?sd9ZCt<73QZs6~|@E+_ImYa24AwJ5;>vTbXejW)197H>s2ajP_|(44GIs zVNqY55?@h%j%j)9tcPw`59`rQRJ|q@U(Y@g%Dy^#IW_Jz!XsljYd8**l)S%Q_>o`$ zGbHnqeucKTeHu{k?VM_2S0(Nd2QY(Nw4`TNc3`TD8AQtrPJ<>ZB!t{BY?Y%gx}^>z zBb2g?qL_0xkF-SbetJT@1+jE}Y$0H<$`Z?p#hsqRk)$U31j&T;>;vf}9ulcM~9im$$hb0T{ z0L>(k%bdWNOcPWMkCX2e_A`V;0h|7`7hF z#OdlC)J8rGEndmbm*}9VJ~-wSwWZ%)NYciq5x`$veI~Di!IB!m*xs&z2)aZ?&RrE4 zAtz#lYD&8jesZlTmokuQ>OjftBq7j(>pV7F-2e7q0Sk0<8Q6jmIIZXu8krRC_&JUS z3le0u1syuZV!s|r?6Au~C%^wU2RDs|!2i52NRlitk- zUi?i|JEo;Io;H?V{)HKBHZ+Xw{QD+F-$7dDCq)}Q9ohr9X+Eyks1?1DC~mZSp%hmLwa+H0UQslInNCVi=bf|$IWH8A*U>ZB#nuH07K zsBisY0FmCw(dnl}Fb|98NU?hv?>+>lmk3b(_dEvX{)z2?MkAP3JFZg3qr4=rq+6<@pJ$InZmqXiK*nz&(XEZ$s4c*$S1$ljlq~HwBUgc)pCcL_0#+1N^GJ_zqd{Z747lAcdYNF%@&#eDdcdI-+f z$OVhcOoUy1(B^tRU88_d4R;`;^5SxTNtgCrt|z6`aSWPlrc*wPhkr-SbJ!)7RiQ4mx8X!eZZET&6hg;mh{0 z$&{A&4+2$kw8#5&PE}JjFx7dJ@IM$DS=Q$LvwUzX@^n8iT?A)j!r(DObH)K9+En1~ z*6a{0yY;buLVC=4W(`e9_OT6$T^@*QGwXfquX^Oa1SEzm`ToVg-iB>sQ`8(YrXsuy z=I|y?sB>DfF*Y_TA=o$AJj*U*(nxjgwFKUDE$Sf9+jCMdT5$3BNh0`pZ;6q`)E8;+$VX}%wC^EI2oqai`5I`EyIpmFAQ> zcVo7Fnn4%TMl~X#u5W6BLRUS%)o~Q&sZ6qGUfH_hEn#& z!5IhwgD=}`|FXfG)F-&XA_9Jk7A=L0FFPd8R+KvqBaFKju(C49vM~Zf-tgkLA@PB{ zu_AL=6&$mlX0tABUXMIHta-J$YD3=P>yLS2e>2t)Z4dlnAdiGjH`){YfQ=woySCu< zwoy*`%bt)p{Y>O(H$0SEUSi2nvzSh$%(cn|odqi)9EtK8l||e`CXul+uS9cn;bk=K z3DM*#KSE1B8X`!g$S@sS0C|v@{vBA!(9W17Pb5eqe!tP=B;U4+eR%1;P1tB*Wl)gj zn46>@xud0;eRWr;w(?13--y2N2!lejtyrTCOx#>pb(?|(pK-0U!qNlFaB9HLUzh>$ zY}-y`;`zpTQ$cPnvFi`|k&2X^i3236NxN<y)mM3%8p3Zw)-R6!M)EONW*CEK=iRpkVgA z*;|`rOb=grZQtsWNg)KJC-Fj8#Es(EwKsY8hf;>?GgFHq=vo2=EY{B$!Sc{|WgNHi z5hU>WU}Y|=oKxRRj_tAgYAu=3t;YLjmgC-=w!+Ku%rJ{(MGHD46M;GQx|U#O;6Ub8 zpe;uzW)2GaRYbF>Cepu{(~05;wI-L}xrph}sC3>%c8QE^Hu$je>=-$vyWZ$^9Wrc) z?B|vc(=0KpH%4EoHRP2DY>iKzoCYd(J{pnIKTDC~Wp1mP06p~3`0B=jOs;J(*ZIB9 zhD1P!2{2fD=nho5mu(6u%&@ZE#J+4)k}Tn-tVJ=p4xUv= zAucvw-TuhfDac`Od(9?7Tec-7brX@%A8knIju4>_%CHXO*N)YmR;eK!}K~6KE;#QtmaR&JFmACARBeEaf($W$7=56fzYw&m7eI?=& zPqW}LlYFWK+0W_X7#76AZiL+FFp@qObh=u=wAUx4{d$>USHhq(T_( zi_Pq2oOioi902jKw%f!nrSt1kS4-$a6z5RVKjbc_t~g;bsY*d*8*EYidWWe$3D@ZI=Qz;3&j1 zmC&Zvk5X zcP*z(Gf6yMYz1Sam?8$noMZXXn7Cu@Oxtps<7ieN^sHqm;7If-2m!21cpSuhu@IT{_6OR-*XNTLeTQ@ZVrnt*OcK*pogz%2X#pI}Uwoh^!(4-4N+n`XTOoc; zcb}iX8NcO8X)*=&09E<9RIT%7>VUqavEw9C-9T2WU`12FdeXR&{?EWb>Ybz)`wmm5k%cg`v1=T5IeL166a8d1|{yt);inK^mz(VG?t zD3}lJr6W6LwTs{;pkMx#`Z9-c5|Fj}diinoP2spH|M(Mqx6Ap|>BF%?p2C(BLy`Dm zHaNWF*<~c3m+DH66)o1;a@z3+!L7KjRv&6cTudn&h4+#SSU!5slDM1vTk^2AR+Oy= z#Irb@uX|X6UnTw;Do9FiZ`H=e1npUC6Nv1o{dj)<2Bk`2rPlIjo@-rRS$lYNttaP6 zreQ3I6JyQ$tnZxp1;`$V`=>^2%GP$%9FO{pDb5a@1AB(EQ4EWE9A24N?#R~L1Dj@v z@S9Kn@_kF9|2K9&FRdO%(tL7Ra({LN6?u5x+EejNe1UV`4B{ksIXS}-HaDH1=z3ra za-wafx}`%hYd$iSy)rc0IjnKEv@c{2{NC0*WwyXSLVgdKN6^e5iLDF&s#SARAyNbB zzo&Dny;2c7faN%vs38qh2OhIrN;41rB_kxZWBBr;1B#ZPmc1Y9yU8OQB4i5Zbz23d zW_)%FvqCcF9uo%$?(k>asi}uxU-b&bylN+l4(zMD$Yj*{gE;e`;rirmJnM&}4Qxy@ zfMAb+qAf6{Gk+`s(}RW2Z_N$_Un>TqKu})2`hHolW7q)G)`(*d=6Zn|0|h_{Q|f7i zRz45Z<|Vf#YR2P(sSVj5Q-l?R`Y=V(qquZ?Jii*kuH{!o>!zG%{7&ZCX(h7F zr`*GCt8fE+S-zOh<$dI-0g%G#@0Ermu1_oV{m493`;x)~4{J+#-JSQ2q#wi-u|T)y zD`mvB#eD%bBTd5y@DJc|hvPu?yoWwQ+{wpJPS#LkJ(x>f(0;hT~Q;KIbpf#Lhm>+&E7W3*uBe{A9_Je!cdI2yq0 z#=&xN8?qv{r|_)x&f;M1k>UTzk%XT5ev&eX}90ll%=zO9xlyRAZxPq z_;GVE9*tHd$#b>jR%ID6o8a-)n2M{{k@A)R?433v64YmFfOx_UtSjJ z&^K~XdY#~a46XtQDQpK)c)+e_|3y1ScmZYd+c&mgdav15s>!u)<^r}v9`5{*N_vF? zi2$e==}O}!k9tI8V6yxEnn9CxR#Socp%6z(^UYKSF8|M@OKwy;$mLYv<4ytR2IBMrGoTww?PS`71d30K{&D`i9<~ zs`g3NLJoT|Fk0?msQ#7ix8>ndkONV!xQ1Yf_96RGXGX>E)wYBT##EDmSMKMCBjH#r z(g5y0vFxf|8TWX08^c)~z-HxN`sI;6tj&gnxd{qq{X6*fh!MYoIri6$<+9YNZDZo~Z!|i~ zUTQ9L;6r7g@9 z)O?T12#&-a{K%4noebfR(^TtFl*4nL6vfXzHJcvOU8Trs-#&Ex34FopR9BKwC3xBO zh=cVDtb?d+ZL(hL{3C!|@EA9Z$G%+z2~D72-R(8lE6>Ct3-Wx6scwOc41(AXHP>NWRm}SzIfz1^Ai;D(7 z941SR^B!RwP#Cd)5^rURZtAmGnz?f36+#$o(B$EX7xX}&PZ1;(q2d{RnAj}iev{zV zgXFm3zX4UL4^Fb5)jhw;qJc5_&oFi_CmDJ7Y8{z4G6o~Ea1nCH{%dLD60c#qkEnz4 zq?YvTB_$#=NI>RKz3w_D%@@%5jz?@_*v(6-zVAhnIj4xX6EWa_pAUGkxQ73LEKU(?%^P&2g>N7Ik=eQ{RC@&?N0ymrUk~CCFAg4Tb zB#y~a60q!7KkH;bM?d9UfL~qs?I*c)98yRR6T@uHuhcz`VjT;b(GV?Js><10s|DrH zNLz+X-Ihqs_UJ6j$1b^RPukM%AWUhG$yF1u(2;N1qn*d>bKAjUHcko0cT3abT^O^r zYkqN7hqBt4Fyuwb%&|;%CEEamp9S+Q&yIJf=q|FYNrVe0sHhL+IW-2dg(8Soi6=o$Wd#fZ5oUT0)t|NpnwTTPU)HCtFBz3f-|w*rOi-Ts~A*wAkO4!G-UTBvJKH?n}; z?@^9cyS(dE+O0{&CXO)R&OS$%Vi8g~(vyYtjplW_e*=ewmb(kzEJ`B4{wf* z#inJfEiI*tO|H#FKppB28=HNp`BWaG#RAmggHU(Bwt&pxKC2j}TS#xNoEag$adu~v z0ghiu)sVblYq3thJ9V>e~{OwpN7DjSU`k>xg@DAA{7}ABUih z_GaI`gDs6o_71zBh{u>1~;(DXdieFZixN8CZ_yk02qKdJfH(J zi|I$=6OVbZfqzmzkgB?)9l7WUgSS~y;>W9 z3}aO0R@qwz)2}yIVk08}$n71vN%@p|;v>#~vr@6xd07NCwz~R750ptrPvxJzO(F2` zGgJDdMhj(TWd$bm8-MEO?9A^s*1EcS=TF(0Uxqp0M_H-};8@Sl{7sh=QWPBWdscX? ze{A*hX8D^Y&6Uynq_@5%gXPwT+Am`9yE^%a%WdZdFN$vk-T#hgWaMYQdtrWc9PRWJ za`$rs?sYr-r}DM?!|xo7-fvm?le$R!$Is#+EvK!9VRW#68TK|I2wDGhSN}A&?|wQY z4jUUFx9nz^1=#u~gz?W9LpyxD2CjEBS1vEYJ?Rpt!`3Wt* zjOP3Gy^Om4gkEL?OufwFk#FrPzcwy;iU$7OB0A#N=T_&3)tfi@M)#UWB>(ON_w`4Q z`X_hnXLH8S0F?|P9#wvz|M08x43G3aRQ4B|t)BXJTF{fu_xI}x+18IZ|JzOXcUWsU znROychRo%mzJcc~b* zztMNgT&gm&gY}KN+3J+&M#!I9Q^#n*Ye)xqtr2;8M9(?{RyV_HuJH|*?s*}TM^V{cr5)ywlyx;7$Sv1>9NTfvTyAA zw_<1G)Edw31i1l{E10cp$(6L&W;DGPYEYwBmW0MN{eJ)>K-|Am_LEddgUDX^BbVrL@7_L3vGA7+5?wizn`P)@nNgy zc;n}Xu!9thmV4Y(Nq%fZfl~0zRNS=4uYZ#QK|89N3kYd&hP=eXNlclkb+O3gDq&7G zo3%2^>{aEt^jZatQAqHLrNHWIlV1los~(9RI?Ng)j#P!TjUT^u@a`o2pzL&^X9qaR2mXqn8k0t-UQV@ z6B(^fO2OeRN^i2>QW*3FtW{7m`2PT?Qd5+O2r>K(7?vkQo z=?q^YvQb>tIWqetQ8n2BZ+v3xg7UJn90ADYjh| zA`LMqUDCJRD~fJ{!RqNX7jx8n*Nl~fY+7Qa=HJ(30QMbQk?I*4TGRI8xy5w^ZVkm# z&}-QB_?!*~KNyrG#@y>Bh^AO%Hy{81N44G^G!E9}nFNwHkPI3UmSMu*RYWR46!uEJ#yi z>btcApLRKy`)5AtK?+!x)Dl!q`LTSTHAa0TytBA2___|sZ~4KBdb4H!rwY~pHm@Eq z>PT$z%mru$L3mpq) z^cD6poQ&VkYG`x>qkkeU1+3;Bg)9W^ZCOp-!8NbZZf$L`8}>S$MDow`?4xFhsBcSQ z*mD#7N&UbfD%u=Q1M#xqlG!jZ&sGHx_C&jgnDUx`?_-5W}717 z*9EXdj2b*=EHBm3&oc%iZ;{@DPh~x;=}t(|E{r(`lD_&h+Ue@07uAq$)W84G#79hb4DA$#!drA0)I`_rZTuNCiZom z9`7>_ytTv(w%0(b4AlpK^gUWh zBuvwpTI3Tl(zPYbiAAvZfQx|uds|wH9%YZVB+0YHmuR6!<93w^`^pHt8H~(<<2$I} zY^UTO+f@`uI>Z7Hbo*A8b#EGz>sADt3&&OHF&^mA=N$^74Y)84Ih8^Sndzq1dhRM{ zNF?U9qOQj)%U5x*+KBLsu7`$xIcy;;I6fRcWv;b!EVb8gGqk*uLBVuaflDT%i1f*X z6ZAYJ7`?p9(B)3IYNp99euhyAd=*W$91~4^WxQCe;alYS1lDvMj{^+H?L%rFpt!<` z+(!268H%7S0nBd`>$V$D^F-b=tMpf22xbLIZqo5&prrf9I}u?fd9Q~IHl@F4E(q91 zhdbd~u%C3J8rAbsN-0Tca)aIa<#e3B1jT7F#3iwokDoPu4Kt9UH?lSg${87NRk3{b zdNc#qnhhhjqhDIyNkBf(%?to*V01J;OAfccU60mHJ^por>_Euz%&6=J;!H^m`O9=@)7Tvmk_46c)Q)QQ@3#s28zb?JI`{e-8n!zMX65{<+KHaB!| z7TvG7QQNw}GwuGorheQhi_5L!(12gNv{5 zKc5+D;>*gN6AsEYXU`MuLy!3g^s4#18k)qQ7p8DOiBxNm>_ZipOrxW1h}ctqx{60_ zMEQB!W+={#xiwIPH?Gom@k!$)ZM()igKSww8XuQgVdC6@cvp|Dw>i_#d|~du z1#Z^=#)WP}$(pgqA*8f`l^$(FiVKy!T3g!w=ETLyc3&Gp?c`~0EJu2Uo(DfB^!M=o zhmb;b1Ktpk<&HuzzJWHX^&r5q;`NKoN8_iQ)atj#eIrw07-Ti91iMCe#VmO7*GgJl zborA)Fw@>xrZ~?)GVp8Kb#11XfnOwdT1vG;w3bJb{iqI*SphH>0^_44nEC1W#OWE= zPLc=X1vLg8@bjy_%@N8S6eR>$(^)N=eT|s4{0U~V_Vk0IYmkX3oQuNp%EnX9>#KIg21&I#WypP{d>XIqdNO^@0TfTDzStuW_Y|b2NX)n8)%O{ML1WdzO zi8OyrqU}KcSn6>8IU%r2R#ry^E_&iVu={F{0Oga6?s8MyI=Qyq#}&_#A%)Z23`b(v zG-ujP^0??I*#*~IYZ+Na{d}@tnM*DhTc>&HlW!|^&|9hoEMCCp9*aCV8y2Sf_)k{N z5V$ne<-Y#Tv|n~juHWLS*0P(ho;KEF`WmMeYNSfz$)rjZUbwBT42zE_h@;EI(=13_ z#bD!8;twRB{_smaPDL;morF!e>o1v&*!n5ZTKB9tZbF+fZ~Z`+Zh)50I^gsdE` zD7@9wy1h>a+oDO;@gjF zC%*bUzS~kFf9(zu*3ujj5R(*SB-@aY8AzuPm2vg^mFGGX!5w| zdnQdPoTGwQh&i$=dAk#L=0B$-knWiwIXO3f*>CJ^h%lBc&o@@F#F*e4|E& z2dxJreCO73LczmJXy4RiGNeyN#`D$GYKf~)*52%}DP#1)o0aC_8Eo%UWa~){tt*(U zc2YrwHigX9jCCU(*ncGZj)Q1I&Hj+LM&CWZyOtd@cP0&fkgrJYVL>X{kW-(PloMZ?+}*p(saSM)sU1;T2DXl zaE8lwNth@dYX{lvadrbyM!!$0HG73ny|MYzqf5@9@G4Gvh{nXzUa!)al|6&_Y`#w6 zMCZkRXNe%ZMJvc@^0Y!IuJ=FtdeG8@GOuX3b2ws)o44TDExRA{0S(4lw!o8Mo(#j; z2Yd3Z*4dx`uBF}D#9Rmpd11b7n^yut0$1+534Pr>6q{8_QtdsaHM+-spExnyW!I|-+a>3gy1n^7k7^K^N_f2 zkytgzn+p+`MdS)rXP=$~q8(M9Y6=m~!-e=;xxOBpeobBIZ#esk10+MqK9W5j(!^85A(}=I1t8x6e@KYDJG*P)nTz+lI&H}dUM=C z*;BfoiwE~4!HVkW!YmJUe!e%|55r2qYu5SEVYVM+AXuW2^SaR1(G zb(y4cWZe&*B*j1eu;q~fTj|3lwkfD!U-({oeAnhDyQ33FZUsf>x{;S4ENx zOw-Q+c7aA`YA9w*J|3;!j16)E7fcAdi#%PG2krEgGcLI5H(q30jpwjy;#+@*t!d1P zB}9pikhxEbHZWPOl7(1Q%(04S@{S4F+(r8v@Mh4BkRnuzO&h5l>rRvmyGkF)u_A`G zK;l5-hNo`<{ua64J=mdHq5u0p}c2M9@~G4>WtLXppN+JWMjB+MR; zuye4~Z3^VCIi^GL?Y%%JXB@Ev4?X+UUlTA>BeSHCPRWj~ zhh~DWV{eM*=j=r!)R0tvSO|7Sib1m3Q|`m~{2YzpkDWMJH9LkbrIasH^T4&sXp_k zT7h+5m0V?a{r0-ABt#CD`&W8B_7~0=xz!XtG$?9vRI^woX`*}$aBze&^irJTh`55#24)UZOBoP^cJV_8gUvfYMDq@Wrw`K+xpuD9g zP>A!ki??vK?W;>)jlW7umvouQd)2ENQlLVNi`;%FH$-em5+Um)L9D1VU_|8tV3kf3 zM4WHfLhO3^5XR)1V_I5250g=?|DjxXfB z{zUdci1|~^$hxCd?O?GBOt|M08z(Qk)MS3fEj3KkyNl9eXln18)=n(Z zapIWPu0{^rPKNpN4uqbbF}qw?RT7JF60yqaiG32fpPVw328E{heA*eQesuuNv9N|e z)$>udb{V-;RUK@k=r3glN=<$ui8SVx+%SNSF;UXp4*dKX)^OgnhsoX|3rQ^9^;Pcn zcSP4`URli5MThk2FG8_iti_x{d-_$AKH|#4t3b!;{NzBVsU1SJ`GI4ulwX^?gW=wv zYjE1ssqBn7s8+BPnTNZ7n)K*S_laYpmM7bibuLtxx%$xj{Cz{cd$oGwPLtTE>~AQH zEIoE87f>d2x%QpQ%HRrpV}PQ8Ae~ZzlgcD|<}wxaX2Wc~5896}VKmS4Ahe;Y~dmFL$761ew4ksG_08k>1fQYZtic0^wm9R_3UxIGmK z3ea-t73gL=dDfm<8>~SGZL&lVy~~YUn>_PO3L0M8eg{h zT|4U2`dC|W4CW%8n&&`0u>^oEZ= zIv?|+bEHx##v1E_?Kz;aT`dPIth^jZ?$&Mo- zx}wK4=ccVn1#19ki?U#+;{TR9rF5W;?xQ&-+U%|Yo_f;Elk``<9xpCvSH}y7>UTJA zTfd!(BeizMzja#&E*PG;kz_qk99wnvZ;x-H-z)bN3{=Ym?0rKDpV_^R;YL96aXSCk zCI19Ay6)67JE%WX2;)3M97}_@2Tqv6BxaUq$AdOpkwzV+@USCJ+ zZn-&fthvW7#OTTK{IO5r2GY2LK1}3M1GDB~{|2w>I?;v^iC}@2lbGi<#j=l7LB0@$ zk!}d{E_&L=5FiK;0lCc1P1qr4{gc8w>uTE3_4 zRWyD1R6BCpG$$bqo-epZ@U2YFOU4%5fg@(`R|iG~UV|kuj;@am%Y15#E!&4;UAB%O z#2E29&w!MWettxAz3~Zq&4p!R_FPkHLRmEhC8x>>G0Nv!XPRrLu~u z_1_DUfbej3+J}0GZd+gsVo{iN<&~!%2<|pIINK1|3*FfpFQI))8YH}8I*JYQbO6-a zkNPKlK!w?DO55#JTwSs<391S{p!-s<9^$s)(bI0kr-jN(JNmm*sfo}Rp-8qbh|y)R z!d#NwY*30w6r-UJx4+YqSDb>Co<-G-5V{1v$&&WvYTep#NSinv0rtKY?)mjbhxz== zHHt9to~>D~Mt)8+31NZHn1Va{lyv|+2R6RFA}nN>3gMTw1~c0ul_Hr);qB6cydI)f zjW#h`!(Usb&A@Zj%7veoAr70uab&lROClpO!*`LuCvaQ>cwTpX)9OZW8xRr{E8(x5%(8#Sgo;*(#_;*A{Sij9V* z7a653N?TE{SNGsuqg`7*#9s3ek)Kmf!Ugnkq24iW@Y#0weRxv)k`r@%E?vC#*hY;5 zuP|ou$&$uLs8P{`V>-Or{9dUg@>D>qB}$3a+OYXmN^U>k)VGB;^hk@{e6c((pey*} zCiOUges8<(C*zC<`FpP6xr7>IU$U8opW?v z&6}_vpHFstwm40pCY$!WuywlKEXJl$0vH}h1_H= zC)Qw;ouJyOG9qm8-Sm2}xYgzlh=O|g`GWOfHIIf1#pHv6N8NIXD)I^WcRxjO@h32R z>-@Jv*M414LDN7SB91W_ccyBwzd*vM2p!Ny@_Dcv`DWW*M?7sKpJ(EIn`6RubYdTB zTKTRXoE6VuDR~TDr6s7q9HIVA)0JE?cd;Y2p+X0RdUbxqOfxC6(BJ!LU(x8QAs0S zAg|z~)RtaJsMZAgwT|Vda)VmF8cM{t?3Pq!0P8hxlVxJo30zG++tZrH1Ux-w2KVkK zoaaa9jHDNjZ+eN(=4b9T-VwW-fy6OvPH6<@>JkYR?rU=MFvaI%gta|21XEg{DdU;Z zRheE&Q?-PWG0j2DDiO^RCJ6@7hpAu%7B*zTY9+*@UA?t4nSIibXjt&9)pODw?Iog+ zb5|T^W;@u^J)6tF9tKGY{3bv~cl4Ft4JE}dnr>1f1c$!ZrGL9U--i1Tr!5$sp;Q3{ zVWJQynNtA7qZeMjIwFuXidW43#`_Wn=%Q&3-r1jv^7!S|yqrFvCa$T>j!(t8|9~om zu5E93DAm*rH@3LbaU4|Vd(0w;ArfJ}nE%elwr(l)dii7ipM5RzG^32 z^&}tqscv4gHjgTUWG=EIxtw)V_Q+36bGs*|afiYEXv#?uA(Uf)!dZzYhR)!I&^Ex5 zT*iIH�DK?8jF0cN-(&C5+wD7^SKlbI+%t(g1% z(xSJEX(Sc^f1gR=x-z)0$oy4L9PC8MY&n$P@=ZOd*fK-h&GZdhpFCMtBj%{`=-43g zO{(kNePKM68_`EooQ4to#EIx+AdB857)j7Z0;6SIJIUlqK{|ja8I!7Ap)s9aTbbLn zq>RDh)j08F>loShu9KW?ev4FB8T@bzC(lqAyjHGjC5_2^+UgfO^v{!vpFONnm1

    L{LQ|PVKvU8A;%1pp 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 uComxK`mB@g^^c*-Uv1I2N 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%0Ak+5)BUk5!1MPC{a;W^hIdK!eF=$}LYN4` z753B5S}(`H>3{i>#Hu3|GGk4#M`%=SxPPib4b@U+#c;%#Q#5U4uavKu9&tl5yavsl z)V_m1Wl#W06m?^nba(;>mv)L$1)>RiNs+Pyd;MDL&V+hhzK0UT@1bNt%!k-Fw-;(y zW0ghY#v;*kPNPlL=&!tYUZNl=DA|7VuejBW58>l#uS_G;1r6% zl2|=?Agj?E?L2r^YwR?DwVeKNO}upFj~s zEcskH(sS!Mn2<<$W`IFBrEN}o&sxdafOB4aP4o*5q=DlX74>2d{#oeNo*3lD83VBa?58%Be6$ui8r)r^5Oo$yr+P>wr z+}_o&P=&=_dE78gTG}7$h=VEZh~-v>a8br>LnW1b?n*zh6bK^V8aaY>>l4CFO>>!h zv0)1Ci6~@q#K)5MkZVSzZ|s=1H(+#5Ijw|*S&ULS9r4p2{=}2IZpt=FDDOy3-+vs_ zt}Z2lnx|w(eh3Nbw*#df9=J`2F(teN?!~m-!IM|*e))=j=SohMf;@+R$Hz}>f% z&AcZ`9H_NI=vvZHvr%$OcGQOgCEz->KLsa3(OKFcz#v*<_JAu9U{nAnS#z1c0#@$-%IO!Y+~`=Q8G zQ+ypcj{(TZMX!E+Wj&wTpP$CL{o)K60g9Np6OkWQgzhaI5Ocae48aII&)zNg_llcjR$<~wE>Z;Oq5UW|qn-TsFX^5+e!-X4v4 z*J1Qb4-vob`1p}V#~>5VBaV-^#xSbN*RMAoG%Xrh(U#PDn=^wDn39T<+lMs+YxiAd zXCL(ix?~JyY4vaMO~#JxPTBKycHVL}_y%9P9@WRnX;J}F;gm1mO9%u}*U5k9#R1tI?C$6~7&extYEDm9_?x@xJ=zUYSjZ z*+g{Px|a1%tz(|D>N-#*&zRYQ)y#jQDymh6t*%*bDsR-FNpy}vmBMQMNHyPa73hq2 zMLo}2@#E2m=xDnf37^ZkSc;)x*LZkut}PgyG=o@K>q*BDC0M)B(2S>9qH{;y*b_}J z2QY`h(q7W+WmU5=vz8KfK$I|(aP|U}pRO%u_!?$Vv{ICKprfhLl6O`4qa~pWJ0H(G z&#kLlTzj(J^!krlqL!}Tq5f}E-L^XAv8hP=-DJxAL&`?Tl);}-%EOiB#r8xpr%#wu zA-OhEEW;6>xVkCd_dD-g@|6;cv8|I!RnKQ?zUNi4F6GlSNtD9NpxwJegVrTHn!V15 zgI6=d7-x-$mw&5PGiP2eeO2VWX5!MJvW_n9mmo6D8FWf7BKoTeW&c1<66+Ts zGL4EnuGDM^@qfh{y)h8wV^F1;l8hP+Z3Mk@^>Z#PJ$<6&>6TJEu+`3wrDsX}59Pu| zvt)KGrkS2)!f6G8rbL{~MQp4gLqX6FAx)sp>UcIZ#{1u`ZPL<|O(e+wlsV9AoOb<8#axs+ z8?2$FG#k`)-iO_BcF>^0zp3xY;+>fz z%p^qTUXmS5;bQEq^_mf^UPo^+^OQZJIC5h0O^@`~$AvJvRZ0D@b7mW(+Z5(6LSk|Q zOolU7c@Ge6k58I1h44W1(U zP_{~i`feSPeeXeN=kMoafWd@Co$`BTjOugtr=-6VUMlwbi$X$n2mT+BpZQ!8LuIPH zJRs(zcdb`O7R$GO0v%|%F-?a{-&fnb%>Z>a6Q#k&BVu%P_&fG~=toTSe~L4_-HRzk zKSQ~v)8J}L#LMNU&PD#C((!RZQO=}6&RWX?E2rD{?n!EEWEO7|aW52{G*f}K{lOL9 zW(eCsUMZUP?k8y8FjSJl3Q$uOa3=eDRMm!}2H1TihKviiXl>hHb z8R?rBOa7iA`P#>*M;R}QirV12dEbK(oemW~vKl$;D#mQ*pj$t?jb1l_Djw4Ox8i72 zUak`H=~t)|5f*{$%+EgMR7_lMCH*>+wjYUG10C9ERW>XJv#TmKnqR^&1@907$s(z$ z3A21$eF-dRQ^p9ddD{HMM))i<2cEdhc_Q;1P^@08V(RdWX)-8w zESDuKPFUIFImE>r<9V86R;zC?=r%PyW`YIK)DD^bXkrjNT&P$xD(26#cHWnz#L3L$ zUn`cw5dP>5bBm~Z9Qy=9MG1C%4Vfcmc;hR7#UC>tU_+I+X05Ng7NHukf+s}v`?H)1 z1`cMsKyORg0{`le<0Xz65)9Ph6JeH!M!^W6^wFZT(a829pQh+Zp;ymAC|Q4(d*JHH zw&X3m-r-|KvHd4i=;_`HzzKwCkE{;NxNV`dS6DssSI+Mrm_?O>xer1fd}CO2HsmHV zIeV*NvK-4*+GR`UVvx#3wJbMt6wB(Fa@po=xu|eVOw4)<<#!cjn;b=d|HcAMcM_xK zYH4HW*gtwuiD=+8wgf{oCDRx}5}V6C(q6Fui;t%Z%=GwFPd@k&%!a0tD>4mCnmn=t zQL^0zA(`9-+SK_j4l}2+e~ltfd?Ju%anLsno(P(9&&#~E}5obWaBc=IZZ9U zT=RZS{i2M-`8ql|z9{CTBcPZ;z%%eS4`z*nrOmm=bjTOyjJAHc$wlE=EzcHu$i&fk zEt<)DW+?hhA0RdNX-ywf|1~A!UGdfDdXk{xapyh%GslqUF>lRQX*psg@#Cw1e7gaJ zZNL{;IR&E;ryk*(k9{vE*b4|9DG3}!E7_cuN&9f(a-(s$(Wr|^YN8Bl-#jy8)m&wz z6_HvYZ!7`PulIo{!+i7B|DoWCeks#^$=73Ll+ggK%KH<+1P66Qh)GA3hACkv=383o zc9%DO9`C)rkB*>h)x`uE3+%P*FHRO|9kBDil2ZMX)?zH>Hr`>Fs+S+miL_S}9_l3b)D z`XDN5zOSZuDnkRd%{~_k)qO);`@tCXVk6%RjF(E(Eq45wbt~0(-dU->dG9gc!?oaQ z3}5^3yXO(CNU1pWg~Iq?MRfg|kNaEOe?2 zN-N}0HZEBCU>C9IA?p6BZf6#t-lE?2(I>>`g8bBZt-m$E^u zqE{7Z04DUkUWvFNKM`D^q?FiFb2IY?i+!5a?2y<)7&ZiZ$cZ#-m2RfOm0R>!;^xULVp2hmpyBQ2^4DjVUH}e50EtgoE;=ZloM@>2iY` zmcsg-gmXV}(|MlmHgOh?F83WhBw-HQJd&0{f&nsz?2JpQyvCh2cUa9`u5viTJhLxy zo2m!WQb|k@M8}W#9Mqwf_v{eUe63P8QMT@>k{!S0>o%A`DB0`jpF}5vi+56g4di11 zticb(acTp;T_{xjA62U^tm0OC?wgCE=Y>v1dzQdhHtgrLD z`7X2TeKSM`N53A-DRn$$wyp~#tpjy}%5CjwhBa+tdlL+^8Gck;)>q3|+(~~p2W@m7 z=*2z<9Tez4oPlRFovwfK1<%S;e}z-kfPOJt4%fH8=~vV*0Mhv=B!}y zdhbYSxdFS;A{)2FUdqH>`P(ynYLQOY%bI|XBugQf4SuW$q2=>+kZGIaOTQ+%2{O2x zDDT~YnwPtK$Z}Dwoea#zJAM)Mue))~SeqWof1+mjAI{G5DeCus+Y2ZqAt@~a(x7yM zptOK2yGwV2bhm=kx^&6XlFQQFpmcY4cX#^R&mVBlJ@b9Q%szk_b{5{(b)DDwIu3tb zgd&*U1vZ(t0%kKffWqC&eNEgMxX1k1)`#*!81w{=F!T_D7{ z=(visTS}>xn%#27l>4I99?1E72E?G^flVcBZ;`{MbwZ(| z>_42J%Z)JNIdg#F@+nIZNm=tW_LRG#?&R}8MUcZY5{SVz*2b6iR)NntGEzZsL#Cqd zNmdUWp6g{5-h3fW?Mim-vRiBue-*u~7SVXTm%N8s2Bl#b>zlGGa`uqMZA4Y^gM)^L>QROR0= z4kuF;i)52cC{hWIvzEZLF8V}O;bH9i!khV#TSUD655?V>WD0d8W$4IA++4>WrPTDB z{N953tZw1UOJt*W>XC4mN|C5FX;%Wn>*$D>W(br6nY#|90Hrv`+~KlHI(P8>xasn ze&5=RPb0lk53Cs<+9@U8TQlkY04UUBG}}K0E}%a%vK))o`Si*by?tTIx#YIK2!1hr zEC#U)hE|!3hC7gKAD0l)$LK(=Dq`xP=f|25CfPX@3SLS7i*p;ONv=4@(Zq#vTCZG| z(mawuTKthcHL3iY;t*D@Rj(yYkzT#X?yfpMFDGqBjjT0|id0p%lBa^)Sz`d7&=6Ka z^vaXli*MQr{w_;Z8Y(f=XdyUzHgc8jZ?r)rqEIyw>}G-6^oma7SP0^l>^BL_%(w2q zd#buoffVyY_TvG(ls2{tORRMX$)1HtYNRRf8Kl|fd2;~bu&RD)mQCCfuE5!<+-hBJ zm!VX1wAny475{79gYQW&qSqyE3Ui^k4qkD=cU7idz6Kr-oItN)$F{Bwx{fiz%5~=s z=?fHm_p~Q9BV)ozC35PMJptCZKc8amc9`6vLRyzSy;~G@1qvOWDY*k+xLXcU*Li!zHOPN zu>|agjDU8m7(G&_l9Wj+N8|m5cQP;@3=;XRRe6(1@Jgy;JQIggw5>)@nCT{s#@}!6 zvB+jQ=QzM5<)-n}PE(HqRUgwTyt3(L5kU&*g^6YtPLDRT!F;LyRfm}{qE1usu~!Xh zCjyA%zcveDP=T)ZP1hobV0wTnMQ$m|>M@x%%$uv~;mCs!Io?(ZZUa-l?eQi@0dp=nhgAF59Z|4B3F9r9K2ut*6uF zyyDL`W1*B^gD?#~FPCHOG~-f$n+@>{j}`Vh7Ii8SNZ~etJjh6X3sC~5?dggs`j>v* zU)@80WK$X_pR#cc_yihPw7Tc3H;Z>UBsF8w3llC&DQQq0{8{m#x=iOIq!wOmZ9S(| zia$m@U6T#8Ac`1FO?2PJgDXR@#L?zq;?rc#){&HGKxd=LL|XiV9Gsw zE9PvHmc`;5a26@hx05vPP#8mw{*%$bHJGHhSE|7^s z3qrI~uv2}F(y&}Q3p*;{kD`nE^sm__T9}Ywu!ME56=m4-o{K?;ZgY}v=busC5C9)Wyz*p=6Vd-pV*0J$o=71~o42S#% zSTD=!6m+I%BHsh}B*)VZjxXh(rx{%=QRk^GV95SqXtWLRfsW|+z1L-|rO2F4x+GB=;R{n`yF_4FFNSp3lH~O=>9Hgt}wh9NWYf3@4@M zT->ZL!r0bgQ-yOndh+XZ9dRg&wwoeXBPWcOwi&8ghRGj06-94BZ`}wL1d=$@R@sYItx_P?_o;IZjOtn{(w=I zuOXCLY?~ZlDRipv=j{5u=Eo?YlSY!lxXm|(oHW{8b1=tN{lu?&Tz(h)6ytXfY% zRHZLRV>~kjfty<4Lsc_v>oSUcH~G7;{TVt3oiZX5HLD_e3dGm+2K-uFYV!U?6??t= z&h;RK8MVib07tw!DtIle+G#njugCXvM$Yd2l0zEDy!V+8)mpKV>tgP0n(J0xNpL4= z-S0AivUuPq6#cI{lt&iLm^C*iPnm>N9d4@tb=1N*R$;z+TNPX|hrL+Ki@uZ>QWvg( zDcgIUAA*&ItXeH82<_{_9s!_7ih_7&rFr@@S*D7%;QG>kj5CUbL5NqLwN3)W4can4 zt4danH8^d8aCwyUKlBxtoXfbc!4$<&(I{-r-S`KT_zCd8eYrYSRd8DI z4t&6v7jB3V3^DPiQHGe5-?YL6T**%?M8;*_1_EA{o(`3O@5kKw7@S0)0 zgV%Qrb-8X1q(*7qh-Dh-*;ca9bP~vK1>|~1Y;;k3m{Yp66~gJ#=)yC#tWTrrDTZm) zH0~z0gyAk|^7$@oEdadQ3besH$6UY%{UUMuud&c0%d%A~~QGtO+u@SVuglk>RH;2vOA_ix%pXmDR627wc#poo=SdMT;yU zN*ppR)uM5Vw@=Ks>ZpDgE)R-I=NZG8Dm>={kk=WA`=XFple*9qqZfd9X4E>CJ84gl zfydiRX>ICe^ljzDmhErfsJEAYmKn;iB}j5@NxJu2I7BgTrD;QIJ}20mxq zea(vqnEAE1)jOcMTeMT9SHh6_C_RJaF%D{8+gXd>Tl)?e(fGi4(7 zs*l{|;@2(`(|*orNM`T@yA&J)L@z?(o0Jw&HYXX%MRhL=VX_^;f)QP5k{WGNv-|1i z)QxG1q?gn#B%I|JrspvKYHfzw0hZ`(@vF6}cbjPMeI~JDUN-&%P@?i0xA|+6){;=as>!*w*NF6GiT(_q8nRv7Co_>WObn4gG?;esj!yottQ5vVYHdNkkkU#mDKxfT? z+Np~xqRNgxPa0A_w=Of<+Y&$ALYzbQ-^@vLS}iWUH{@*S{;hKtLauco|S61M(jBAj$A@)X!ODJw(QMX32`_z)>H z{FaqVuQnian9{a?S%k!^Wh)#Z4kktHHZ?`oQp?JlwU#FTxv~696&lVhA0HwH zmJ&Y@eyyfqP;Gs({Gql=OJ|_>jeedYb?V*J!;8(oW!f^)GEL9HZRn*P=(Pj)QTEbJQGj^Kat+0s0kHw;uR(VWPP4B`T~x1-8J&gSo@H zgo@qEh}I1m5&=$iEK0zm4`}yQHDSFZNKWK}mYuD|(!8!5438+yPu%n}4S97=r*@iY zfZw{a5_J`}F|nH$db>eSzHu$!FKinA0Yu{=FskuNj(zAnz*#)XSY)59e|w@MA+47; zk=~6o(2FKM7^m%`cr%126-7Yp6j9eeJs_0^w@43*-q|(!{h`5ZIj@hxOmgB4NlTCb z6l1&Ym~<)nx(;eD9;TY#KK{!8w ziP)$FhYsVns5TO<;wO)h08LOxiMYlagtE>=nP6C*&)%jYAKIEtpeI} zu+AQEFt z8jK*;_5h6WMyczQbb+B2N`m(TlcHeS-x4n?3GT`v zs-(#K^3D&s!!)oA`{&LY#UdONlivRThCgWv*!>SkJ_jo1nFD%Wn#QR{q*x7fLnBt1 z(y}w8KewX=*7X!W##@q6@V6+erXXl>maZwW8^f*(2yW4wV%5~)MNh6Qu1-hCgEGS| z9GkNvrbpkQ7dx95DASOH%Bl>QU&VLU&IqP}vl5v)etj5_(1tZu=w;^2yggC;hPUHK zahJ2#TJc{#@4?oj2Moi4$@mtrR^W=sz~^8s_sgtAUIk8(16!#>4Y`jmDd=vtP>jPy z|10M1lBM``L;l+=G4FtwV7<3mV*MwaUbuY0!v6pkxgnK`z{A_-9D7jL`T|HTUzTM_C4bT;pqfp2J)&8v_a7iynGmbW zZs#9hb>NTS#%kzPqFA`;R|l4vbBL}iEH#vomMvq}MNW|z>xz+dRTpzyZ~nsSua?&z z1ManmPxRE&BB;M)+;p*?9N}kA42As`Hv=)4mkjV|8O@F4?5iTnk2u0huWoIiK?%iN zgQ`_sfr28eeEZNy)~y#&0=mm&qM=WmezIQ9s;H|VtAy)M7E8Q5RVLZ7Lo9lBow}VA zxm1@7M>&7S)Upz|e*B0i!oFUEbLFZEo*wGt@=CB*m3`*zeZx{#GGkh(;;dM@Khot& zR%`-GtVrm4sr%UQLzdGS|AfO*iuY8baVdYmL`quuD#;vBLIJ(lo$l-sQstEc>cv#* zqEs%}7E3cdIFSj4uby23#lRu4zH#*mSXrc(CLO-t?$#O%7%D;q;+~o=->7KlX#cLn ziYWsXbgM7rMmYlPH9D2X>Fx4MbKmQIQlQ1TB;+)F|o38 zOWDq4_p^m>zkV7CxulyIOxLNo;ugc0EBf!+Wm1`1hst1QPQbGI2wGk!pUf!ZG|gNn zF|Noa94Gm03IS%!*MZG-b#GDLP3J2M<&9s(OdpFDn6M#SK$^GlV|!Ylw37CbE2R5$ zue1C2Dpc6vqKo+q(@27yzXJ62`Vtvw8Uk;+FxR}xRj7&EqUG&b#}Q4W4b>^VN~!Y8 zlMGFrj6G8>BW}8%?sBndQCHZpD@D&l+(5c!&ju{cOw0Ig;+JBpt z;6kH1Nni8;jr#go+TC8HSL9EwGIkf?Kn`fx3PwYswm=Ag!ha3O+$2O=oA3}ps!N16 zgIL~%0(szC$G`pB&~dLAvVGj_ou#|=#)@R#6DXUe`%Fc5j@mBA)xVoj6^gSrbPUq? z&_*%89GSqO-_Brc{-ryUxj@m5X{aL+f5IEYFl_yT{RlOjQ>_%yJninG@z>Z!QAe-% zl|lniqBi)CxY1PsQ|y*PPa;qHpu&h!Avy7l1Ux@dYB52Ir`ubinW8&=2XQt&b?OJ# zDXl}0DA0bXr7i2KT8Be!KbuD077)(@ZnHn%gI3kO02n9^^l6pZLAA)K+b&3nP5&Rj zz-(m{w6q4M{Djw1pV?H&Y86R+U!RN1m)=Yu@FV>&r?t30H2?Dip=->^N)R}9O)K*Nc`ZiJL>Q!GTdxs-Ci3fvIy`$(>&Z4O^ zFMu$rK{!W^m3t<8!RbM+24pQK7>|M)Q>jC~_(v}P+IdGVdmH7CO(q;eO=08$dZx-G z9RA_;qJXs!>n-@hg#>cAV?2wxuC-&BL?)_}pv9_O_B{{A79;;M|4a9m3Wo;18Y$P{ zAp%8-aQsi_h1}X&W-E9gJFoJq3L-VT*uQ4cyzh$LHU0`%0!6)OiQ4M~4k78EfNE%~ z;aH_((MNBn2aO1?W!amvS%G|U6VQNJjS%AUi%t(2{*|Kf+w4mC%dtW4{kxYxvtAt7 zbzJoz{6}!3;*TVri^{|Do*DNXP3rr0#=XE@fq+qt(fdK|$G@Omuu9#W0fPKb&k&mp zKXI#U_f($NFVy|I0RaO%@7jZ)UEP5IG-ara{bN{PGFzTxPH)RUykNxM47bv0YM z!pU}?)k_z3FX$lV+caaG9!o71>Z4f=N0Nktd4HjBmDtmH@vi=shSkVt2z?uAW(|r^ z7lI-7qE^-*J zXan#>!HQKg6~jq%?bWJSL`o^wDW6AyP9CgG_B5OQmeEdQIj{{ z3WhYdc!|=xnv=m-(5dE{(d847Lj9Uw5$JM%mhrHpBdzIVjh-ny-R!H`mE=b(t)&sS z5GI}9L*mQXx-LtKmyM+-qQ+B(5nK5-di@T6FtHSwd%eGO%6>H$@rJ?y*} zysw?b2)}sa?zuT02|?5bj&eC!9-2Qprj2|vF(On)nbyP7`c4#R3CXD1Mg9R2^Y@{| z6Kvux)%4rBFS9;Fx**&c@?O|5yZ#tU;hI{(eB%ZkDaNsaJu-8_%|2rjqePCsps%QAUG z%@RlYQk0B*KpjAn5&@iCBCY|&98?CG$Y>X^aT@lXrLCf80QDuC-r7-kJmXsnsBQk5-fad;9{Zjw)k?zi&{I>=`1)dYO@zjp#g}#zY(=J*R0B`k zXhN=UW}670&?T!3*PD?xC@Xb#4zvaO&E<$ z%y3HaTSNobqJvQ>0h6tz^*ro;%59`so{)0*o)KOxTu*;1hAC>+!^82@H%PRBUKG?HLyo61&n;fFZ+_e6nrrmW zrP>>79i$q@5-xG$cg=9%{`Ix1I~SCw8GWYe=QC-=joW$OHlX&gCV^a?rSAvZHcPZ^ zvUy+d<_q5;(b$xRxcMW};x;tjt-HI4Q}F_K1gfl)Yewz0y{pd1J!QTa(=9;vsAH$Z zal`}ORCkd~i~5BMO=hmq|DX1v|Bnr-K?;3$dCuTnd3X{}wpZzefo&=V3)#*x9#?P^ z)l|`b2l*yxddF0J!UhbfoS0&v8DYtnKS$x>;>7{Gd)E(YdXYz~*6Hqa*q0qD6|8fb zV}~CSMD4f!_3SlL()Ra_iX9EHz76jsSPZL#HSRjal7G8DWV|G_WSITf9cxp%3apIG zI9Md#x3e9z2hpz?UV z*YU__@NI{Fe3tPIx|~dgs_68KB1UT}8Ec5w)97RhUO>3%^|ip7i>(=jsG7TCW?KvE zsVf|rslupCr;h>@5@4yFmMC{Vy-CuYJ}PB2u`BMatpS`IsN$3icfKOJ;rsK_s^-&+ z`SMD7XP4^;ucr))(t=KVOp^-z!5uS!;t58VN%b999p=0xl94S*d%}4Cj}Ol28Id+g zA$CyRL60|!oJGz{O&b|QmEzJo@S_*tO%pm>LX8ps>hZY_uA;2aEHLVvJpEQ%K#`@9 zKUTAXZj98Z&r$xPzFaVJVM%5UytrxPa9JV)DNdvEs2n}AJUR^PMs&(j)Eq=0+LLo4 zzi*w}3rP_b?C#le>n6mPL1w-^D)J9fxz&A-Rv4#U<`2!1IMrkddEsVFQvlvmdtK~( zJS8Xo2xYtrk&4OS1Y@y!PUIK+zx*kAkyDY7go}p<}|XT2t++oW;LV-(0PK z=S5mA;iGdplv9&9T355!!8Sq&5!myV3LRIg4jugC`h{=CbgX#STOcGHP%~Z({_vXb zl4Z|l^04t2CC&C&{d`bOqQa18VXSX_!{t*A1Lr;+y+JAn#bP|2gTsP5ns``)GHHM+4q`PJzRf@B5=P1icwN`uzTU6j&bzj&y~dB#^(@Og z9S68w=XJB1xOe`beY9~XFJQbbB=mO0f1c+-@b>@a?`qE`5B*I$Co%}&{&a*DpQYBu1p|Z%VjsddZIywucf)Druqa zW_YT|wEYsTDS1Bg`b=Utx};9nId!u@hi7Tkv$^xW$7|p%T_!MRJG{Q@4@-L7Mz732 zg+w?!)oRol-q2c85&JMara}&OU=!m4PA(6hPA*Ula+P;aYb4rn58%=9N01Ql6UCET zlOxz*)MP7{b|dN&@BNrp_Eb||z)#zM08V}sg&QN_q-geueXlfwd2C7Q^Cr@2b23B5 zfC0MaBbAzYKFE`UbrZ?)H}B@>nn>l(u=U|<5;7S>@*C*N!(Hk>!1qqqkKBc6M=;B< z-`6S`AClGO6r~^nBzuB8bzW?S?kfEZa@>U+;RXpC>G!inB~EPv<21>V5la zhyGY%$WTM0>-y@&w*=-bH58Yzh}NGEQgmn&#Vy~qnoPJT(lg<$1W>h4j~q4WvJgYk zWGTITGOIsyc}rp=niS2$_k}i6H)>Uq0e(Dpa<+lBCmUm?U*&2J#i{v!IIspSOv|kH zDX+&79#THWM@IPi<-A`X{s(Ba$oU8OajwFMTlwe?)|JATDZ%eti!vu0(Y~>4C!gU> zek%|#GsEf@hdObG@FX(3cvuG*^0A5Q=eJ7jvOJ;N92hVK8do#a83pVn3yjVO{N=L1 zO3FQEY{VUn>VTWqbx`Tq-rx@9>4*Br8G0LLCaBm?_^+qb)+PE<6x&NtL>MUJ%NRh$ z4DYweP_1>GOatOxtaU}ytER=`5r2VR&V1cYfpfzRyUSm#P}CYVlw3f6TePwM2oF9i zA$_Ca8+kRPo60mAtX z^|2n_j<(+QW9y!fW}HM@15vBQILS%T5*QjeMqM17)cLs$^UbxUz26Q`hpMxx9EYdD zjk80m)oBJe|EC)Mf?t0)qvTfBDo@oFud5^P)F91Guqc+(?o!&7=e>dy`%Y*`)ou5k zWRA#zlS%-V-uktsQ?<)bI``c|xY7Hw8_OG--D=a=(u^*+-Ik&EeB9rLBBMj>e*n3{ zF{_3mKw`CTK&7@plZWB=j4R+hiJVrf){QAN#y-+rjYc!& zyCu0U=RV|PQoygPdXCsHCcn5fVn_W!ji%jL7kOSx=95VtWyJ;USZ^&3o~$}o%K68) zqAt(4QlWvDt8I4KG_5uxhrXWYaLBqQx6@fhv+nQwmgG%)z z_WiE%V`0$SY%zH!t$nc-hluch0CNOnSLo2R_Hk9asgO{sQ%a6ane4fb-kd&gGRf(y zpR7XMydDh)2UR<-oGJxC!h0(nS?;giU2V)+12?pJH#9}kC1y)a-4~XPGVMBP_43JK zVA0>7YZ|x8JrgTnTxzkK59~{4wGMhGfSP&#liThA@La!`2dP-C5 z=gX#l0Qam|q2QDDXO~;Gg+jH^&&MBJrW&oboMEK``7y8)r$j_*N2Ma=9AnS$lD+lc zHDI>un`S~MePXS)G?Mdz<61J0bdq@35F+kR^Gscdb(c)mf8Sd zW1V=6rp0)kVO`dQ&$$v8&59!B)x7ptCotbyHm^nQWfm|+hZNNJ7N?Q^9(4HTV|A$T zkPm1uUlqq{tJ@JfuQ~o#zj4aAfD7_F(&F%JG_sgdF>iX|0}Bfi@9D8BbR#bGnYWWd z4X)JpB#CKwnjM~Ls8p0df|pUfo=Npn12X6b@rZYHdoKP<`>G4M7a<}jWGqWcq9%%1 z&Q=|>Q3Mki{Ipa4ctX95+J(!Y?V**-c_mo2dM&sfrD=Dw+Eo*mS?Pv6e^Gq3+!sYXVl(~FxuP~$GSj4 zuj{ZV2ldJYP{+FWwWSxqqHzeUXEDMeG%zZ5K?@=W49SU}jpUR^ZH_$-sIcgHqrxhP zX*?0SWOfk}tx)$iOwXMeKA##9jD4(5!+%@Mg#+63bA2rfPO$hHJ&RSFE4pN&py}v$ zs@qgy=OUw+(!{Z`4J*BlOH`j&OF|3QOuGKW-#mmKX~Pt6&m?wu7&BJ9>8uWfRr7}s zquLfvEo=R{jFu%T5~l2=m`v}Kh-Fy`yzeHm;cMxPWNM4?$?^H>CE5~D=MR)KRpyn; zV_D>wQppPY3y?Ijia{i6!7K_Lm0)d)Wh!*=s;Adv83+tXNSq9c`ty6DpWU{Vybf2FRbHO34D>F(FR99 z+X}BvN^SkLvJR9e`;QbK$57nxhkt-3Lv>9|idZey1DgTCM#6!%s9d#8`EP=F1gV;I zEPVMKs6_w;TJ9=@ZF(XZirmjmlcmv%pRJ_>Fup_GJTGmPvKwD9n2Y_=v~b6O=AM1x z#T+)ctb`iZhNn15!}tHLKgMpR&0W5(9Gf2Li*(~9BXIV{P};LViI;P&Qxvp<%Frd) zrE%GMzTms6@dx@&jMuf4#Ml2e9<+(Voav%)8w8O%%Li)ud!Ivh@~X7GXar;$oSwbr z&-h|nlkSE^==adNk}{fRqk0@C7X0+GOYci zcr^0+YVp)-pnB79DiliJraBX=28ia($tN@GKN-v%>Qrf}aN2nrJ_|lr_qpW5j3kY% za67PBfLQ%v5o?an&dt@JHuzn&p;__Mci5SwRvw5=a|iLA)BE9n^f6ASs;XeEaMUA+ zrr@t`Ha9J=R;2HU%Uo%311atv0lN(wxD#A>%#6z9xHsj-?NUTk)x0Z7*@(Xt3Lh_J z$Xbd{G8eN6T2si1<#2IZvlgjvbCJe>5&J3omh^dN0dt)eC^ph*hu!95AP<;4?mD42 z&V8iIXNp?~>nq7+oz1K;1FJCQul2u>~^wEqErK1>M;#m{p`axbl_SNb#RxsrJ@zKp2e|aHLj+^NbqXgZ{xa)RiJA!EwV=p8O&_W zI>^vDNSU_<8!tN$qI|y$_-t*Ri6mV?wEs$Z{b!R z*Hm~9XA7ZRRP`0~vAe_@6o9e>(1J3KT?H_BqqUB)cJ*D~e~CBnlPA)ZT5`-9EjUYMv44B2QECUx)vO-e}=9;x(qajH9Osr7+mxwaT!DeS1Iq zTIVZFq3=EY=`>kvIy2aBI)BCGera6wJF!BVZtLf9xOiNT$R18!S8OQt!a;Ynpu17G zNn*F^Uj(qDuT)6%mdsiyZ-2wLQ4{IinEcF}-Y{zlK5m4t<*$pm551V-^k`A0}Sxd7F0P&f$Vc9IT(r@$ zBDg)wr_aRLx^*jI;VMHVwEqB`#XZv9C#B2{yHxcDq>U9#9AP?^&%U>DrTQl{%v#`P zCQ1N`ka-)iBnDSG#55=DZZ1w%_#JukD&LG#nz~2)Y*o8u<^85V@m_xjP+EvxddI~F zc%!Pxh(b#?sDsFnOAjzx(=1hdx#L0qkhehwi>q0+wqg|BJ#}as-D=meCbp8VPv3>- z5uxnKkr^463iH3BT=w;Y`Zg@4B@CspA6+L&-ud;oIWGu(nM@yIdxdPB1Ej;QFd28hqbD;_I|G@ zz~u!k$6S|M+Cr11l{ZE~H6evUVN`Z}xtaE(Y6`|I4t(X)9|Tl)w}srv^&(T-NN zuV0f_hoilmo9`f;EWe#pLt|lDi^WzCusxUXY|GwSP^6p9<>^@VEV~rx^wb~jFeF|$ zdH3w&7(aT2<+K}e{C-hp6Lr!4HEL5|DcGYaB1XMsr0wyVylS&2q;Kuxo&tIu=}Ac8%wP*D+3*V14{e(+z22%-yP;D7Irm9s zo>uC|G)i?g#$_<7Nbl$mTBx0VG)R&J>UI$Rw#az>O%*Nn1np_SY_jS^BJlAZk+SnG zKy)ueS1l(1)0ES-VPHG|bU2)w?;n5!>w^zHdS%{JwNKoC@3QqU>vdma?nz|atEEUU z$&%l>R0I*Pq%0^eyi{D}(d@EsD3!_6&%`I;TMn&EQK-m8g?#Mws#Jpax5}~XU28Ke zqzHdw5#xQ}U!H?Z6zfQ*h^f)vaLeNK<&jtH%)sKyiQOE%R)v(aQu%u`T;awl^``;l zC;ssQ`RRKV&_6&~A%|@6QS0lQXZN0|H2!o=0k*rtp5P@+|`Va8(!R1My5Mh`dh5BR$(#>a6PIsK-C;t2c1VBn;^Z%wXRbefu z>lLV=zSrdx>%saj7wOec)C(KE@^^=&jZfIOS+i+@g>Sm&>|X8CBa*OkFKZt!IAG*+ zY*J_K|NX?ib#`2L%#D4{y8dI8r010wr_k%&vW#q8uMiXA28|4P^t#Qmv6Rfvr+X(L zzL1&(F3ej`IJejEHrl1TeENlQh~ecR>i2oh|B;(OzZG-P1t(X>l1-pZ>OenZU!ypv z^saGHR=5k|W}{aZJn7fI^}WedM8t9>!24VBio){sOp%kFXHLdp%9sSxcRh^>8wI&V z)s85|VqB6Ns0fk^h3dayxK@d(=);uGz*>SE$G^U;BrH~k`k5=tVx~FmnKrNoFhU3r zg$yW>&(8I|Pu16o(p~wQ*adf{dEs5>0McwB)130!X$E9~{jT|`7`4YRv!~9xQ)INV zwKImaGZWT*EQjTZ_!P9z*n)4k+3?n^_-SALF`Fr1pFSo4Z{qmHo370}Vb%a0TO7vC z>}bMc!e9O-NI0iXIC&+VXFTF=t?JNM){R^onb$on5dDeIv7h=;Uf{*W`pj>`m@E<50D|ST?x8S2M4LTra<} z*lljPJ>GFltM=j9blP4EReeQFtd+LHRq<+~`AqPAW9O~ZIfEy(_3V^oFA^%YD7uY_ z^V{^`28lVv7GJZqT`p3}pP^_@~f&*V?5der?Zp}*!k-xvYm<6(#ty% z+^XX#N!Z2axT!|;Hr-af)+{M&_lWm&x{l}F(QM%ITsTQ%_n!x3{x@T#EcD{kSkfK zW)ZCEYTbJ?tsc9jzm?)ONf<|#S-G~_k%!-SP}A6ho;m{hTN8#WVA1N>Y2fu0lqPs3 z>KIpc67X7-<{zL^n_i#guBUt#$Q}+ViV@u=L-y~;`)S6ZGGPHXTiLuTq0BT(mHwCm zo39XXb(M{@a^f>of-8Wa@xc`0L1`JkstC)d#XMp8v59cW&V#ojO`i(BLkf!CNNTz$ zY5*bc^U^Qh(#v(c(<7*+sTBVQ@Z^0drYYU2314XWY_9o)VGtp1Cn3?1;S!ri4r$U3 zP6j*Gm+$Wa1v;A8%UDn&0cs5nEicb!CUwIMu;vEPXeE&2`RoFFxy&sJ=Y>GzEB7j@ z3O$Ejw{E8eP|Tv`@%lbI>&mBOBVJ;{BH~=mooI_~1?J3A;mIjs=q3>G)>JbzB}!m= z!}_)j!745ALWL2JjN@4SQ=|w-?-c^u_ge?Rd*h;1WYttITWNS=!vk2QFm?uBOjyEl zf|xcCNE$(Y*{KbjW|~V(H_J3$#h=Y8Za>rfRA7wkI*G_A9N%=&KG#*4shHNHXJt9b zG&K280=OSH#HWz;-MvRgPdR@<&$^XGzU_wA6?B zk+?4GPSGh3?W>Bk<`X{MecP8`a6_*7r^6cJEuy zyD^N$Z>x&ybSMyP!|(Od`kZ?vk>SMp62n7b7r}%^on=H%St76hu=7G}#606z&OJvk zkO);iwUtd2ei>ayHwn?L!moYJb_{2X=$Ll@Vc(1;{MP=5HIaG<7@%?WjXgCb`KLVF z9|?R3MWzx3ihK<$=K9p?!_qzH2^b`2bA-m8)E+CV(1F}+ZUED3$mvd_N478f$jJX# zY5Ja*o2^UJKQKXf*15GUZ5{=kGaU9SG8GH!HemBmtaQZvu!oi#(GGiw#=pC29;ym9 z9%%WLvr;nI^E4?af7E+Pflz)0bYI7iV5?wA+)UQGV2HCp+AnR~Z8ea-A5$!-ez(72 z%ccQW;qY6@e71P)(skH0&KSQzDCS6Oecnq%5f?HHxGq=^Vc5v0%e5`BksR!^e(afw zQ{@`kds2k+e1>Hnk+B-J2Z8L?gSB9_qlFu6N=I_sU#>(lW{dhIoLb;-XG z`$4V^`?_%L3LG6sS~{I8O*;LS+WUMi5J##JgQW!Db-c|-s29R^ivsfxPE=O+hXTW? zZ7n@=Ri2Njr8->}^}54C{z%kqWkYW`-baYi<)wWtAE4qr;Ab0b@KXi8G&8pNBl*4Yp~yGl5Q|Gq==%>4|(YW3Et2FKKx#!NLbCYcx? zJF{#MJF9P5&-nDZk=Em3dc({>$byOz3iNhF;n^>Hrfv52%L3`=VGv;&XO0qn>xqa$ zd2mbOgQ_ApRkN-izvxT`&vXJ3Ts@~u72ED~QDj2&T};%e2f^4Fx$KU9bfEaV1wD25 zX)ERPTsre{>6XJ*Vnya8xU#9VhP?w0Q-{IIu1Xm^*-w)=BJ*`RWacUkxoxUE9D6d6 zkv45x^_w`-b4p#Ku|6+kNkQbK7EmShwXJO1uxSxT9<>7I8b$Sx5gb}49gQ#c<1^tR zZ!t@B`Im0c|3t-TurpmM7El#gvBLv5`Qc<6QCgE(TlH! z3Lthx$l3`iuSpV5G)0Z2vIIJMvTS0@Y|COfVi(avU}ow{I>(H*1dh~n{+5PAQZh*X zqr_m*FKx81&hOcB?Vg6yQj%(Hc@#jFTj?MTG1;%cW7Zt+f7o4OQRF(t7DU`({9$g^<18r1&%P*IwVLfUte0WiOlzHb zj+qyePE_}qIz7GmO${tAfyN_0w@CqQjwd}IK9}q5JFTWVB|#S6el|ZFJEx$>NQ1aO z)EQNK`M8`)*^&T!!N+N$psh+MLY7%GT0(7deDt9-wR=35^q{qB2>xjm&Vyb>OEaT&WUcqEpDqgT-uh-3un;V zmXdTl&bF_o`e!cIgH-CIg-787sct7 zY)T2PCf?o%DS$p`O6N?bj5LdP8+9 zOFbPv+VaqDm-K41@tkOaLO)v*=*1iO^be5fNZpV+Bs?`Sw#Wx(#kIF!R!1_X#wSLn zE*l+TQLX#9rb6k=d^8-p^Ba0asP(_t*V#rR##pcOCJz}RYBr$1JEf$thi8Mc%NO!(duoyukZjm}RceCh@1Jjtuf#h5myCk*&?=%CK&r z4FD-vb&M)G9GYTF{JMPP=!MmT3Z*`QwpK$T-ZoYHr%7p0e+hSJQa8?f_g=euOPDSn zb$ry%Ocdi_vp0WZ`iZ-H1b6*`J`^}{$)z4jqN*;nU?7!iaGKDsN3D;!@NmuI+U5>( ze^BuvGxrj7Un$skP72BLQwBAjKA)lQ>F&dS;F!O7a_g{tmEW<%1K+9HR|cB=q{Y_g zeNb_K;%cR%ISHLDR^_(rco}&grJ={2V#CG1_6iBeOwV6FACy`hYlZkYMM-mYrxhxT z1)!f^{vT&&)z(G>tx+gnp`}QXv_P>IcXumL+%33kaCd2;xVu9kxH|-QcY?dS6DSbq z$@vNAT;w|QOfoac-tW7X$cy#4?Rj))5R9St(JbSWksm5=m8p2cv&L~$7K5w@-m-+1 zXWKy2m??FxZGhwHekuypKcr=q7aQMCL~bWOZ4|PJ(Y)5GwQaL|SE{=D%1FEsR$i+8>n=bTZA!H#S*@x-Q}wl>-HrUD$Z zvLMn?bFT9G{P2YSL||NEylbP6cx3AMTZTrAdu7L+^UrBCeXXL|6mWjP^P5I|FeS~& zvdAqE6v6?=r_^ZMh7qDKpX^lO(SLr0B_8qTRvJ&0*|ZiIvs{ehB)kh*GmhQi*96!K zmfy+EnF7LO`HxS$CG)C4?s$~g)X(X>TFUko@V5$7d&-P9W8y=%hZL9?9Vcu}&ZNS%$cqvIZl*5vUNB?SjmgIW!Q z7dL_w?Yt$G3Pp3CqroKd|^i$hjnXo|1zJ|w!LspGTA*^ zST&yKTvfVI>YL)A?i`AiA-LQMdB9=b2aR{z$6Zd;@QEs@?Rs4F4%jNkAko;tf-ROS zH2o`F!DRh}#{*Gshoo4*+^O4q$byNo{s^tFw|`heX<1Y%_GO&eLaw4p*$=hd^4C!9 z?>mz_YTtZvtp<&ekumx3|zhhRtMhaPZ(!qWadGGu7t{&N0VC ztV+aa+cjas2ShlKwH;_1Zuc^N+3y6Oyam__JjF@_$2SwyaERb%?! z+)2yr(N3&Ld0R~zIggOe!@Em#`=1(?KNz*#Ljd^$3kkDy0S1x)ViTAh{QNO>Ag5&P zxr45oL~tY!QL|7wTi44msfna`)sfYy+fP%xxZ&xBXB>PtK+Bh-1h?aWQn>&v90{?EU z-ngnT4C9j7;fKP}rqJpPLm#s-QZg9r!r>}(h}?vP&d=EQzn&+oK|)F^B2V)_=T_++ z+qsa)B#XXOa{Pr05g_DrLReg+w*lb=mVo;JioEr$Uk}yVo%OYxgPm8DW_SL6dW-y) z)2o+O65V__CKS4PmEb9Z zO5WT&_1!?2A^4d&@P)_?F8b$KM}REh#GLe4tdFLxYn*s7LqNuD6IfZORKO&$Kh$si~DUhzdzSzG?LLB}|v81LIMtAg~ix-?aVU(tloz+%)`SiS;v8+f* z+s%@7fS1W0{x~UEHc;A6-_68I8pBVswPDYOZIq|6_u;Ru*E^W*%p`jOmdaML85@l5 ziOZQ5BwUk((SiVeQ_vF!aYryz`}M@0tk4`AuzrZQqB|^vL9RZsld1MvuMq9G z>yFwOtrIYd_xm4Gksd!Va40>4?CJCiy0fQ`eAesE1u9~moK_^Y!$kL&!3(=9?aLh( zZ^z7q=d-ihKcrNIv3#~cE$EEJ&jb7KkD!1us+XBtdErm-iYVjQ^+fd~g$)QLrVcMG z!Xly~%#A?pL3NWJ`|5}cwwD7ZC=Oo??i8coFz=Ajty(MI=K z_DPU2v3FD?#K%2W1PEZajwXLW%q`0J{Zfnqayc*MDr^PDAmK0RRZ_$0Q}bwd1r++f z{h$=<1OYlnA*DvV@l{N@A~*BsC2*hlmVLaUQ=7YF#DPw`amg(UWj^=boWy9jMH^su zAUiymQ9Nmc!8JTSzU;Se?Pej(&(^l8HEu`W4r3Bb{O}*6!2?~Bxeiz23&^}8kGF#9 zMLz4|g$M5CK7t5e-M}_GALv*q+%Qk^vqg|Vy7Ds@Xsil2|B%c=%IZDE<#S&&){Jrj z)rU?cidtV$T6uOC|BJw1hZtUr=MC*i!3wN6$Ld?{xCbRghCZ@(9kgq*zG6VP^%q=Je)Pap@c$rc2=ia={O=YXXniWm@96xwR+!*@$g~TUbl%^`+`yMk{g8 zJ*Kn=_pBH0Kcr0>z@X@kZrZ!s?PNB%_yNk(LPvGDo&8mX%IY-i#j9j5R?4JmBHc~S zHE|4je$bFOdxI--4J)U^R~+K``eh3T~MVd&rHOiFaMYXO{!xw zUd%X~K6Ua=WTqGfUP9M8&9^f7g@^b@kNYup#Ip#4wE_a?<20HAuRWIVvDWUXB@}ak zs&D>VS%PKL3^pz5nzoYa=I)&9E`D<7Z|o$&)iCY>+(P-=n`R$*oElWI#u+MR+BICv zMvXI_Jybob(3f2dU^J#$3&#{5hJSs2&S}B>szz_4r6f`|BxOwK`=FZ5M;nawP$*>- zMcTa(rp|o3kZFaOM}8TMV?s%(^jo%pc6cCcXkNL6so$KyG-v&n0OGI zfZ2Z#W9}a7`BgQSov#o)20f3&&4UXOp;d>@XA)RqpHrZCiGc2PbxL*8*axq9&Dd0> zME+#&d2=h-&GZ?DAM2F(yEiZMi~{i*0|kovzvz8jfPyJ{?9C_}?Z-2HOr|Vx#ZdzT z%M7c--hoSlUgt{aebs=EUy=?q2+9}EKlH2DSXA*tlQh}6^V0Yj6s&=k>Z*R9FC=( zTw?kdQtF<|OAU%ZNmZ3t8cH63#g_oOpn69>3a+H{|8~lJqjn8AJdy>3_ow%wWJ2zC za$89IZpu_oK9<`lbsSj}a(z-uQg-A6j1iN7R^<%$T*m-nU+VrL#lPpffs(1Hg>(-X zH`OwKd{;A6O;{dYTB`C~r_>12Wf_p5;rbi8Ks&H%lc8NOA%#EkZI9T8DD_SIqr|{+ zCLMLv?*j6mHLkz%dbqpPi$jb6pipWBjEtC#vJWG zoVEZj1A`T{snZQ+6JuQ|orXU4R+GYKD3vE(YmtQ;glo|QDR z?PLO7C2FN&W&7c*x<0<#+`o>c9V*jD596of2Uwd+CdBN{CzVo=g$C&TM-2x$dJEAb z|GHCTT>t))W@_Zkc2_L!*`}3*jwbI>l-y@0of*TfC|WjKUP|xMQ!T~`nwLeC`f?Ps zHG^X;+A`oti@r?-IWDfo3 z4t4thpEw&q4lMlamZ?TD3*_OY0Q%7wt&9Wjyxxk#f=@;Lnzf_P-znDS^CG&#P15Tj zJ;yzjK2|FH(t5Gp2ZP&mGybRkDKClnj@x>c zj`rm9Uea-Y)g&KsscuPOxra=NDao!D&{nW^<6P=x0&^8*GQTdn92*po@$V-WG_c2fQs3lsgYgyo-c2X@ zGJUOxNxw!*#*1*u%DoNzQK)rEx|4fP%Y#>633`FNrEy((ZI3A}Rb;->WP9g9Roi_B zV349}Jscg)Q6jA5nu|AEtLj_jaxfa?U&QnsWlz}G)NkSgZRr4Qd!i)hbJ;QCr%+I< z`Ye%=Q`kG_!L=?~7}J^&d*#tduOF(@r)%zk4q}~Zr)=lS6ePRW7-aS!!uvKt z{ddGA1MX8Fh%UF}ZmA%$@(H?WAB=l;uJXH*` zM7(HT+%0S}6ldL!B+m-$DT>7v#6Pe;S0+yAnA$oMQ4c9La=Pny$9Z@gyG+k&WvCx7 zmy+OHF>n@quM@`^jztl&KGByP5W7H_8|($NlG%Rtt*ND}Qc}_m)l`3~`j#wZ!~LST zWLykzA2dk>C@QFYrvHqcg#^NVF_RY=RgzbIN_Hc)Bzf;f-T<*0PN#4jekcmZc|AqZ zdXPP5*(8r&Ek0C;9G4h8pV%ZhZRIo5XZCk_zo4SYJ+d3qnCnI|q%7_-2Ow5W(@M3V zydx|Ydj45xy2dw2Z)I$wmdiz1(02D#BWhToUM^4>Z!HJ97;HC*$mB}s#@u=#&w+&K zwJ~gSg}I*><%UdX=T$Q1>e%a6o(Q++2Th5Cf?9(eb(0?Jq3Dg77F4_h1xb&xgdg!m z1~MQf_%HLQ1vV<71?b!{Sw&obRdBwfR=S7{BkdHg9DSzk`#pvp2XsM^avw!t#Ol zc78oTm$03a$LEedEh(WOWk_BvagxSJ3~86kS%Ej@Eiv*1y;;yG8Rzdjj4cnm!_{KEAO*?kxrM#5x&Y*I za~}$Lon)Dil&syU^j@+gy$}`y%|!Gh;HPmn;i={)4>ySs1O9`W%3rQ!^tI9LZT>V$ z3q`wQOsIlNzFJ?M6F-X#9)-rXo+WKX-=BPVUBRkE|sOa8#~(5A`JOJ}&;^dd6uI8OP>W%`4z zNT|Y@ZuE_x5|>INVU27FMKeI(!9m=N|9r|xF$TTu0ZiFxn!+6{QR>Dy03>5&*o@Lh zEMBd*r*(mqvFWcPClJ<8n>6HQjSw&vB4q2~o@v6CERcAK>ExBz4Jr0W*M3=K;rVF6 zW)n%1-=<9rc}(%@%(n7V5HpGs(3aE3-(8-a4l2N4SWKs+m<$C*%b>T*Moz_%cY+`P zLIUWt`H)7q%-Zc2z7hI)b=pkAz6x(=C7(lH%#dJ$XbFb3Uj4a1C?TNi$=~DSp5-4z z0+ohw7?2jbLmqL`y^x>(X!+thQY_ljHo6(kXhbl~YY$gv$7Ty-9E<-IGjF{r@7ee9 zkfwI0f;#8>{!iigLU})Qg%-uLSW_zM-O{X-HmM2P5!fa0Pjf7?M+iy@4d-D^uD_{~ zaK~}2wjPD?bFRjzp z*9XN!F{0DPaW+;mj>Lv9%GIS%6*wC*rqqRr!roJRfP^DZBFl!wL?ot%0~ti z#HRHz!Ox@3$8*z>z1%3$R~?Y7tuXiy&27axGMPHGsu42ubl6XRFWUWDRQ98B z`Xf$oHYXC$twspsO-6n5XJ}vh9(=ZG5#j7R8*;N9`>^-?=ap=-vEr^2CV5LGtWYAD zIA316y|0t6D?v1cqZsI%Nw+%SLf-&%Y7^=s%|?G1`nxchyB+ECK0&wJ{<1bXnr|6) z#$flgd5-Bl+0k_He%C%Y_J|=4+AihhPdX(jirM`20y|)+T(eoW03^PwA~m^FJJ-)+ zNAVH>aV<7s7ov$omA$N!+gI+%Q4~ zbwzmj_z5wTH_x8iLVwFJGfO{@W;VUNHCOGR*MX*V#PE)E&@nt_$rA|@*?!Hnt7~>Y zkSc7fZJU3PDCPvld&EzgJ6u(j8DgxBAGp^MQu;sLhz-3y8t&_UYO=9>Q$F!!n4ew} zATboEgQNzu-HUVmRT%)w_M zMVeMRF7GI2=HsGwNeC1eMc_c38nCPvdx-$$XfcyytO58xAtKqJzGB4uM}2IF>>IKU zHjY{X+i|@7Er|?$H@cyA$zt1!KdQAX)+_`?yXHvmHJPwMbVN!-4cPvO=*w!$97ub& z;T;L6YS>inKLqrBhDG?{J&${R(ZvAH$v2ym>}6&YQ*N*jyayEzAc~SScU6f@Sr^`( zD~h^a!hwZQyA7T6+ab>ZilDBB>&E3Vy`fJchrfSfSAVPBzgmopT>@_9hVwxYiOLZs`aMkLy& z{CoEvIR1!DS?O)Vaox@|f6PRXjuamEMS^K+eRIbnnUI{9AIce|DLTzPLFB4HUjzB^ z?CU?IpXN3jR5P5AIEH1(Zr8U`05tfwCp;&n-@JFL`XBJV*g&Sd{bKPI44^of+S3no zj@IKk^Z75U*^+o?+g+93Jy%MhRRrgA`J~&m8Ww+@wtL@OQOnHA6c0Kuuw_Gd?4iErU(@XeG77y{7T~!*>0f&&z{iD6 zXwSs@wT<9`-P4=tl~(`*mz zKC_eZ?;`#T$qG_!?-RtV=XLLnxsxqanr7&75E>uTm@UF?c~KYh)tYuCld;%xKv?y8 zGW{txU}E=OShZB7cx~95ge>fBcSh{PADv`#_DJkHx;4UKZyjKJ&G2yb&r0LBl^Y~2 zlT_$FZ~n|?f0oRA(H}sBQ9Vr`H4WXim`Jzl;{H2xPaH7Q_vLL?7+mq13H{DDHJjyv z&f@dwNIj-GAU$H^)2|SdWGrvHw1{7D2FE{1AV(nrp4)sS?Ddtlcd*aVNq6b*L>AJ> z7q>)O6Zrlitvf31XPib$%bmUSZ`hps?R#;48IBQ0ystOQRf+#ZX|KO_C`nM=Lg@WP zy~XA+cU_=BoPr!#q^Z%5s~GPKrK>W<)C@Y=YP0dFMw|DG8S@e%Atv`JfAd|yS`9AYwtpT3B61f}{bQX* z8smkaA%OOkA9#KvGa>x!f!0|Ygg`;v{*5C?>yB(CYSnUVamM2e&Q0gTF_F6&*|~si z0&TCR*60`RmU2}qY%+Rg1YW?c8NKAmu9vuCc&Is@6#IalMEHtR?flz&U#^lLJhYVF z@hbGE+;&M`l0pRYN1N)6J+WRxo<&nf)^68t_Y9f38PN=dF%GW*f=P>#k*bMjqqUyJ zI!(jLQ9-X6MJLT5L`*CP5Wp1tNZl?o z2d3_OwE<^G8-McIFdzsWd)p~qN5yk=_Vj%jsJ5%T7!9#llu-}OAY*{>BbO|jF&;C4 za{@KU{rxcYqf+Dtz72Q&2^zWqB-%I?8dR-fs%#^In~auUlAew3i$@C9bYr>f>i8cQ z*iA*Q5M{!s{h75$3TvT(K?>EOqF(h^fD=ohXyb(*_Ql#CH<4%;R)cj0TbcY;z5_m~ zWSY~S%6D!Jnp#yTV*ikCC%3&{5n+1tDxV9^Xl=%d>W>Xi>dq`)wz-H(YlTlN+ObD} zq`;oG$YJv6nUQ~E;TK)L+mG$I?pBilQ>Q>3-D(!sYw-ZIQZiP!lt{Lwh|=jbN^JYp z0R(*WU#He_Zng-21g7`NQgCbdPqO|l)~Bb~g|k1@p|hOYDOg zaqM7?eLGe&y}he$Ln}&_r2BAJuyJ~$0=*hZzx|Tno}KXvrY3!AE^LX#wE1<)swTs2 z=DWAHVOHKhBxhN(RJQs^CRJ!3igq^)4YOs(ZWjJTGjpMk33KRMbi%YPw*jMzm6QulXTn&7K(Z@f4qrC z=mT8NaDTXiV)VVU`OhIwgD)pE+!>|Z4=U2krdwcmDh`<`Tr6zjOaO0k!8^%cvE2TP z5RK?9dN)*1D4?LUwI=c0-Osr_UejE+gN>*5**sQ>4{bbWyrXPC`dL!&lun%PdD!be zpNLteN+X1TcUoz@e-1XS^=5$B|3A$<&w#<3RlA7&_N7+KmMS2Ec{tbp9U~>J4k{(U z&yZ`qzhZNad$zLKKis{A%gcGFnCv!2RYJX6CY;#ZS~q{r9+e>37q9m@Oprl1yR34( zp!)vJd(X@R!uu*Uv1`tI)rvS-r**{WOk<{9!n|77i~SrICq#S`LFuDG7 zRuM;KXFW7E2ncO?qNee+E z*t$4X;T#*|U`JjuMPTNb^iuW}ItzSc6K2?#tq7Y%h7W6sP#f8OE4p*$wbllflL9*V zieC!3x3=qe8FU#tt-0-9wxH)8xZ5!_#Qw?1Y;W)xV%1doM~AzmMbG1d5EHaOT`H+( zuD~8(v7ddaT-VK4kh5FDQg)B7<7Jk{{Jc>#l8NYXkao$*rX#vNHu)gmLzPEpu@0~- zqdBK5ypT~nkAch7nc;{^e~i53pe|zTaxI|Hv^0Vva6slVhCyfL2ODN(#!kQS2H3wx@?6wtAmEi`=^(^cc8g=Xbc6N&RG&;&BRk2Ery3C*h>y%0 z@iG)EFNpXPl{};qIo>MuhVAB_pmgONK9wvv?$3pjdAOc3Rb^w%T+G7wCwIq^P!hM* zyxb#083XK41E6?AU-9|Xz*#(KDI?L-*!NAGk1S(d{=zu9+u9&n3MY7b0{6RXSyuO#|?IhJhH zs?wk_E%M}7+o0Ug^HH4U@y_@m<7GFNvxGnIO$t&DjK3r}s7fpqapSt>t>v}GKYKJB zZn~D>_dN~~lD^a!O#SFMMuEJ^Ib3Cq*#dTfQx~8a>!oaPd=n_Prwwht4lRPOWjYfmyUeO7TaB|4pcQLF` zX`HE#K%B8imeDnlKLArVN5!l^k7m(HJM+^g9LfsLaZz2e)h~G%VeSc-daN)DNRlhn ze8hSNA!;huRLAOS_R)p<4X{Yx5lOJ0_=$MYtgh@{HL%sBSX+TRWpDxHqE6l=O!}mWx!3GIjf@D^3a9P z^y_B}SA30kT)YHty->IK?#k)hFrpg`b7l8RL(3IbR4jj3_sU5!h<@PSB}zQipq{lW zwEfkb6@RK3i$4pR>(?l{e9s9w+j#;grlX?HYT}Qjd+=Z5rRy&GP# zm$hm&s->lUQ_hitk^j9dMv6GXvB5Gz;ZL0R^=#A1yX+u>MT$!&CHWK67u--{XG}#Vd-JH*a|9Q)vOH3{m`@-?Q4y1o``F%JY%_eqRf$I} zmSe#nx3q)bGwD&U!5~DaGndm=4b9ypR<;>QdLMoCx#w=DL5@hwYs!1CJYBu=I`2i) z<+iyLzsdb3Zh&nwNHOLe_~_4Wk&kMkOroA*qb8{)jcKKF;6nfQapJm{mDtaTmsx9} zL2&Yqpd9QfdXOaX$dpmJqN4D@zRb#sSmDl!-&>ARDVO~k7!tHztB-}eE>6fQW&{Tb z%L5r!ZEQk2nA^tVKV>>v8d%LVzZCfeU)UHkqCyw*hJ5v0$2zX>3o98L!GvXX>H&ad z_`W2Mb}R$f3K!mU*6eMyo^qz>`*=}I{7c2Jmg0G`Aa@%DU|g9d(KA~6yi{hXXiUBT zU(j;-3Yd{0rU@P_8_mP4gK$4cK!ShiKNGek4k!?ZGD3z)CdBS%`AyG8-#-*KHpG8M zi&Nq|R?|Fz(FxlLgEBPx=Ar^T7#{J;ywZDNg7GWWKR(R|cyCz8ccT=F#TW6?d-ePW zE2UI7TVZb@AgCs7R9^|2LFl)KS22UjNB03GW%pGFEKI-bLvn1HH0oR zIcx4pyOp1RITYE@*DD9KmLLjObupy*v&x3?{1U|S=*(AD0IkPM1HW=07YZBfUhxN`CJ#NpO zmkuZq@=+J5L9|Kr2Zl+1&wJ)4Q;mtB{grgmENlqi@b!F{@-|r=mL8!OI)xTS{iZvn zs-57QU{(x5W|TLjA%3y8u`*RPka#C$3oFL0eK|mSf^wjIeKddoJTz|LY<_NRzaKqV zzFfUSM>bTpZpf&oEOdv17s`W;wk`secRMurd3nc@t8AV!qzEqyU=k%T zp7Vrd0~%*fiJB|5v} zTd_qa`V=&G0rY5d?Oi@%b=OJ>Ma^WiBi{LTh*<+=#@tBU&$`@&xF6CKc|)oU zitj0{B;gmA8G*WE3l z%U=_%dJL_N1pe2vqR!zR9|`2A-G_Y@wvr(X={eB*PwO??dXIaD@y!d}UvxR-kxOX> zV_h=U0x!I|Cm8<%GPJ(x(s*?bGjOb4h}IG{pE{9ih|a}6W|Y@zcDYUgnpv6-=Hlk5 zfzKX*Cupr1KT+XVQS;t}A&51fMz^?UK_-j^DRDUhPeABwY=@iwPJr|+^K;UktU03`K3fm1{PD@->&MPDnDu4hPcW68>qRuZu?2XF zK6i0^iDP2l@@qJ(h^l*X@w-w@i777STMr~ORj&ylu`-7*k={7k8okOcECy?=XlEm8c^Y9FnP{F z;+PZNYSJthU-B#$hlFy-j#t=Vw~+N!l}>}X%*~k7psY?FVsr{}(*A7R0!C09BbbF% z(u(Te64FGZ0)Se~B%Ly1v4tQ-dc+=$TBb5gS2@@aH0g3IzCJi|Q;V9{5}vP=-6Q-5 z=$hl?OZ%1W;pag|g)nNc#>8hEf8h+`thuB|ZWvA07)8)QoJjKfc49&~R#;gAN<-XD z%H@D$u8sXWO02_5AI_^$^+&bl;j$!}5f82xf0_xX3L+2@jIZ+j?f>=V4fsps(6`P! z@BcEsVS}xVYV$K3BOxEFqFWPu`s6oRT6Wy3kfnIAvg{E|h?HCCX1v%&jq4s{S?Gza zqhKknS~f=2@}7p+qSfoG>J?-kV(a5xfsJ~!`(ru5LSi2EOMndXgoxi5Zp z{I<3I4UHVRo7pGV`s8baw4>yQl5P`T!$0Th7rs(p5O~z5z>@4{6sM!>t4376ZOl1Q&y}2I^SAa7&mRRE_W$L z5i#JB*WQje%%|Vvq%*7bulc{WX_tTbtTqXkzB9Zo|9wanBI8Y@bMSt_4lFM=6LOql zywG@7nc=x$6Yc)Rah>7^=F@!M))?l{xS#0lSr=SE;PvA=BeT+djK~HVTtVaFlFo3C zS5$mk{B@+b4ykp`ez(*(BKS`XySt&TG};TdveKa{8LCxrMMmi1Kcpq7We>l|mGx&Q zpQg=M>PlXnMLI-M^XD9^N)$!nage-+_~e@xVCWT9L(qdid1}tjpDvFkc@Ckih}_sv zQSJMuJha>Y=Eagc*s>Wq-V)!Fh2n#w90O1^sIFoonY!jVIbscYC|}V4veNA`#{UqV zKEVU7lhML@M3CxQ*LmpaA5tjaen@=7yD4oEenU2n@j8?X26Pde6|`kH;`@nd24*G1 zG`rdTb7UCTJCd$eT@YEeIoI22*xx*Qz-KWdaib5xXq#O0z5N)Y*mE5cRPD7tee3Wa zR^uO`7H+?~O>)+D>XUQ3{~>)#GHaG^F!|ocULq1!;Nvfvwe$6cmm$}s*@DC`}H#45bi_j$hsn26N?V{Q`+8Q@plBWAQD+aM^bxQ6H_R5+u|6Pvx*R4U<- z7;|n`Ki21P(ivtrSyd!}Ze@RH4pUBYa~QogI_j{)^R<>>WL%8`N>Nk=z#)$55C9wvh&8m;8Si)?IyZA0H*X5`RT$!l9; zaXf^|?w`S>xEk^oV5D@|s9*8|{iCPn7aIfbI6x1#$BPP+v&*UhMClfIHYq9wO%N_t z-_sp9E_iYf{y{NV)KdFU!tdaL9^eCzqS?oATsbM3r}JvFG-?#~`St!I8z?i6AT=mqPWoXpoUDyG4PUogGL#4Q8xFtEkG_ZXI( zh$OoZb^a<_MNJtS?Fc11F(>2MvRUl2xGOBU{QLlpDZ;fe%Xp4)Cc{Mub{}$SG16Fq z$$P-Ou{(7sZxi8I=vmV?*#bTaph9Sm^?>2VF_XFSIXJ>P-4Opr?c=L7c#6_WszJ}m9`%> z3S~_XvOM^ZL2h{V(K~TZfu;`Q8fma-$*DKMY<2f!!2$RX7qqc4diVrU-)|796r~R9 z6PC;JMu~q^Im2CG-du!13xUsIc5ECe-v0ZUQGo{e_i)itqPg$Tm<@`gdy%j3XmJ-X zDqq3|kI05$a#>V{Pw{(!lGpv-3$ko10RJh%?jWlgtMK8oFgh=jxvNle%ZoQrN%f8r zb{D+qop1q;s)W!>D7kEeK>zC8jgScXLfy4su=@znXa~IdB&61L+rQQ#LKQ~dbe&ze z_3`u*?cwtYtJLFtWw~c1OWt5=i4;9)(;_+Rlgn&5SJkh|QcT=}j`08n?6Qn8$d&$i z8(~9cEi3VFG@IDo@`rexlc05f$@Y|4EeH^I3GX!hs|Zx1q){MJPsTA=t>LO^4?d(c z2w61*oV3dMrK&fBD2M^cKERjgg~T!o1^%O@wVDHN5ek12x|-EP%Ec5*kv<3ce!j@O5&~xrd5)y1k87A|%uIakL~f;is&?otjJdb5 zt8@mBy}sYE&4UO0o!vwkUeD_S4LTw^IVu#C*KM;6|xT4!2Zt}oRYC||m74SF%b z_Wy^JZNapr35ra<6(yDqddLks+MLXNvwpmJtYbdn=`uOjeNWN6D*e@HZs5$iGDeL6D6ACglTUj_wH&es*}37HzT zG?+CGmxMLZ?D|E-;U&sTXjeA~RF$H!a9eJ^Dn$yaC}Sf!K9v?9slTO10;} zT|&g~8pEqM=Oiv%lUbd<2`@#{`x0kzi2b64dRZ!w>gdj?tZT^j;|=un#Nk27^jvMp zhOB*^GLTPc)O=85s33C9XFjy%Yx*7ZNAlodjr+JWViAVtExRG#-K&-!rKK5gh|%DB{Xv zeiI$pIYbvozMs|y-Mk!4@jj4-K&C$a)o8eTU6>)5G8$qGD)S+lm*paZy-Alz&=F)IQX{hYySN?mpF?;E;rnmLKWXfeug?;%@XZAzN zMJnH>-#d%U`*dw<$CL>`no;s(UgP6)1>7}M^yBy#MYf1vRffR1iHTaajqlPaIKwoH z3y?9xj|LMSRN2rm{Ks*H=Ga2dQ>KguRRxxI#`u-qvsu~%!IE-PU-vx|j+*C1zWc+r zMw^lXtMmX5e(XoHzQ3W(cV#1Gn_fIP{{cI~{CYhdoDkv=HOf*h&xS=i<*hYWhXYrR zZvq#pSUv~?WABEtnIOs}|00`RWm@Cg94~_7jGs7=OFLQw!*(GnRnyz{BEfvzud7`E zN2j71hoDqarg2&Wq?%RLz&svgw9=jky{{PAwmPJT#~RNz1&ITb{?@}LN1KLT&X-GX3RoGk@%JeLRG=gt@e4u%3 z*(KaD+1GloL#fQn(%pHdq{n=6jH&M37GvOUGKGHmPiu&(sp>?t@H|C-1U^TNvjF<_ zX(3QX=D2F)4&F;|7INH!KFsQUEB!6TY@GJ})cS;$^j9sUlM9Cj`Q=by5gYaB|sVebu9WV?fP_XkscUcd5Nqy46bY*D}R7G)9g- zZ-B8Vc_k;Dg}*_de-?1uMV4eSD>`^Q5X~PRuMZPWnpyc(@eO9B!djaLuFA_w0>RPF zN*#Iu*w$ej_ZAc{IiMz&b8|GGFK( z@Eshs(EZXDO)FO39WpiVTOZOis!(h0mt?&}%gJCuHB2pw^N=j8x_J$pv8~PO+0DhX zaDsmQLa_PX?jKJ57q%MkJ4^j@tKS6ptR?b44+GDt#?ge#zuLRdK458q2aJ8im+tMA za3k3Yc+0D!v*9$7DibS|v7?N-*^Ph|B|a(wwhhw+j8(5cW!3bFEtFEHvyY28{KuXc z6{QyYeLF@dST$tQ+%z{H+gMYB0O_Z(R1s()FEr>NNUn2;%i0?EWwqr}*l{^Jl%~V5 zIRl8|eI28qqD2tBq0O`^WIai3<2Uf`5XpNnF;Y2WKSIB{aDr|Wq)n~k8l!Sc%Vpq+ z=P>q3sZleW+2gz~iqx5Z{M#@x-Qos{U^Cfj@ul@{9SL#_!y) zxTZ%wCsWpR?s9NoixXR@XOtJ1@+H=KvJp)d*ztlj%G;veB^umvkUn_6D(RnekL(>E zt7EA#e5{<5&?TOKS9A_GZSRY6FKPNk?l=*D0vgPaP^Y2YOuoSDo6S^|cJiI`h+|uw zO~?R!@!?%r!2j6giY)nLj=$b8W*3|)bh@fPbk9*+O$=Ed;RB#siB$bxVFr9dJIIs zXmsQOBn#!Z`nA*E5$AvYRHNG{R^C0nhQ5`N-4NGD8Aahe+{|#I^`Nvzi7AK>k3Owq zouxhTCYpk@Cc1o!dw<$!vz!-t7^rX*m`pcs&9l_nWyxpEGTAZpCaFHGk1@<^@N-5U zpds-}SI~7pno-L+##sncL&i9|POc0tR5^wYq$OzCV227B|$S%=@CUg#zm^m=+?fIxl%V489{1H@1=tpA3 zmd*Y~E!2z9fwQk^hSLrvtyPzwzi1u&*4uY7irCjh!i0=Wc`roJLhTW*xxEFqKIvhA zSN9>PFwpR;Rw|<(rlSd8xm3on@K|-}sqyiofW&IcDTEo&M14jYg(e&3b%~?Rk$eG7 zRG{EVZ;!nf-6?4tk61-w^pmM-B>+K#^AnoYa-5T8S{Uja>pvmMmvyZJ?7!EPU@uMs zeeneQw~T@i1i}P=TT&5vtyX7MmF!L+Pp^78A+Lnbn5b;k+6A1Rct0Xp(BoYDp*1+V z+@YmSx+5J@QQB@-*#D+?ij8cY#D>gVK}tavjs;`XJ?LJwOgzJ3=DgqT5jgaA6IlU5VDb9M>)KjX-H8!uc1)W0jYCSFSL(G84X?vQ7v zPaZ_gpH{M+Pq)^XlUN6HXpP9|W1|*e-duebhGEey6=i1+m%in_sWbP_9Cql9EBKK` zi{FhYXr|!v>Pi#=G=h$G6Rh#MCl ze{4=?p{OANQ6zuUqqT5wQJVlAvLc5eCZ=P>6_{Nv9Pa20tx+ZF5x@6unjeW>dMDqv zA$W{*nf`nbPKPB^;9!M#IE&~RQHCU_b1bzzUK+Y1GNvt7GI%vsR)D-35 zkR#%DQ%r|EOlf})C>BnWVGO02o~PrqNfCIsei>g>5Hu&6dD)lqji<%BK_Hr8_D) zOwL+rBrSK-@&>F+X9__%7}-TB1oae~`3|I#IP)*Gv`g@+$*lZll_ z8}Cwi#P1FF?2r)aTjh2(MHH_JB#~%$mEKWjz2kzXrNdGnn-2SPW1GlCLvsf~=od{p zlXofHyv{CbbMvEn#T&3ogWq-MpX(C?C?d29eYBdn5^>+fA?GB`*Q0&OGIIy0Lz3*+ zxi4A@z7LPTr-)IsDOIi>89gk!VM~^^J82X)%#UDbf%X1B1T-I>7{%=DC%KQzRs9j; z=lbo-C%^mBvX;lT%nR-9@xq+FhC5LENzbjeXt8jILc`U_Ud>#d-?WWR@1tp8+1oT7vx!^g6A)`=}#@$u5 zm(p|q>di@RH~^q=2LxbFwa!_4F}GiT1;d#&$!sMakRZNEBaOQvp|0=qolbw`nr z5ZNofb8X6?88y|}5T?+7ru_Nt1^6FUWd6AamZT|hci`)fs}DLfJ;)jg z>YZ!YjWYv4_jx84275TTEAjIuumh1**d{~6SS`Hwqi=Lwp`;h)u^E_QTp6!sCb7CF zUBvkh>&K<2bM2>P*=qbW%O3tFL68;Jxu85F8;rsso_XSMTVQx|O=w+g9)Wkd-l z%L~t8PNBk};S+o8w9`Xga`yfc_&Pa>xwz&5rX1xyEaz5n`Q?L_KqBQqJdH0gZRQU>N^+j3;J`|+ z(y~ty=R8lsb~KboS~P1M$dogaf!&KfqguaQoe}eCNdawUWS%rbY$M z(Ql)KDso&zcY7RxV(Zd@b*}a)aAH$ekcoLx=?HUN_N$#ZZY=LV$FoIrG3$~^KbRz| z?#~m}lL`JL7rGz3qDh`qSSz69pUo-fo@?I6z#U>%Ld=Bq>KhZtwNLj^59tveEao3| zKU;yiRj~tQO<1tLE0J5Pt<&1r%p_}*4(Yv)ZRi zBHTz3eY;+xvh%SC;1=lC>)74P@Zs0swP=!Uz8Ix{Hs&F&msV{&Jx(j_v;O5Zc@idM z@&u$f*YGP!Q8qjAJ7vF47FOE~=g5c>G)asq>WF&KA>S;zFe( zu+Sg`QA8N*`Nt;uk|8I}8eKgFX8p*HrVtWinj zV6c+&TL~`Mn9`SklIrXhu%{MCsa{83@5&z(zB)F`#+faD8n3x%vTx}64@9Q%3zNP4|Kl6zXsL<@U z)S6DRxdi5r)WwwM+~du~wC`lNfld-fw~UGRSJzVe(*`hE&CR5xRd`jb?UhthE5=z9 zYhbfWvv{NKCa*lJJ}q{O%%UL>XKo6f(*3OossS*irwjor*vfNRxH%Fd47ug+H8Nq{ zy2ic9+is`%b7=lsBb@_dja1yKfY!#ohXVyJj$;?5=;w!B-)?7SHH|w&siF+}%EcPR zhCCD+Fo)80to3hZ)Q#z$w{&27RIE zUEiR7`bH2%xAo};Fs1v{ji3A73TJtBXdH4Vd!&7)=4TTNmS&8%RV_V z`gF$o*_fi$`-(f==ytQSXH8M(=8dZKtx{ppcS7hIIVa8=%=-w8wx}I>?(cu}YO}+g z=uj)B=!9!>N_Qly?8zIg`vW)k8XE1pl0%5wzHUgO!kMzvcqm6LF?k=x7H8C3y>>AC z3M%rp3fw=?be=$PhWOF1ruNrn4=n?(4c}PC+!5}|Um?;=CN-;HzIUaPXWmG2q+Fb4W06jE zj8xqb=-uh6ez9ZWS~vjp6rye=$f+o!-1!Bvt)qh&JZA_$C-a}&Ua1zyD(;Q7Hi`x; zFClM|uI+aU6dw58%E=2SKM2W#I?(->K#f%1nx@c&TxTL5Lt$ExD?2x zZl81+xHqUf5WNGphnDZ^lxc9t68QS)$7bXsANYuW0p8fMD$A$+p|${OWE388XrVC! z&>@P(9GgG}t%{>Y%E>TE*H&n6+PX2T=%VeFqgXwNTj;*Rs0~)OmdX_0@w}OX_nH|# zm`Y&d=F)W^bD&zzanh}DX|0=FmiVUaRqv;;R9}3FJHJQy^9r_mcS?Czd+#;DPQTmu z8`I(={q*VRHp&^&^Y=gW*M5sjRmAYxE;@$Cz4paqfLbw`a@-}29$W%PgB093()`QF z>sg%m=mQo4Zw9%sAHmnqU5LCwHn`c2zbr3HNsT-rV%rCLH;wx%U$g(|`1;Ilvd=%P zoy;uM*cD0I`{tT>>yYZ=JsDoi1~%o?&;L&2L*H#2hfZvsVkVpTH;E}Y2R77Ab>pl| z#A-Z!uVPz`^$!slxfn>}FQLKY53VEHDTfh`|7)s?~h5h z2lT)|w@a(+1lZuqdv^fNPh*IQU-Nv+vh%`c38%7boX@vB`pdHb3q;@n?`4^<;n+t@ ztRATf%?`AOg6Ct#%NVN%puSROl>2?uEYv_UyDnkHD3+p`F

    W4-hA9yhdJ{CxXlX(-j0m;p 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 z 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 %wn8mMv32H$=8K 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 }N_rtjM3PSe0#we1gdM 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%0A=n{HYgpf{IN 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%0AtkFUb}3bOAfqttY|{oo6|TAO(9fZGl7$e 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