Skip to content

Commit 07db0fc

Browse files
authored
Merge pull request #1 from oguzharunb/master
FdF day 3
2 parents 82f3fde + fa2f2fa commit 07db0fc

File tree

9 files changed

+255
-53
lines changed

9 files changed

+255
-53
lines changed

Makefile

+4-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ LIBFT = $(LIBFT_DIR)/libft.a
88
MLX = $(MLX_DIR)/libmlx.a
99
BUILD_DIR = build
1010

11-
SRCS = fdf.c window_management.c read_map.c libft_extra.c
11+
SRCS = fdf.c window_management.c read_map.c libft_extra.c point_utils.c
1212
OBJS = $(addprefix $(BUILD_DIR)/,$(SRCS:.c=.o))
1313
CFLAGS = -Wall -Wextra -Werror -I$(INC_DIR) -I$(LIBFT_DIR) -I$(MLX_DIR)
1414
LDFLAGS = -L$(LIBFT_DIR) -L$(MLX_DIR)
@@ -24,6 +24,9 @@ debug: $(OBJS) $(LIBFT) $(MLX)
2424
$(NAME): $(OBJS) $(LIBFT) $(MLX)
2525
$(CC) $(CFLAGS) $(OBJS) -o $(NAME) $(LDFLAGS) $(LDLIBS)
2626

27+
%o: %c
28+
$(CC) -g $(CFLAGS) -c $< -o $@
29+
2730
$(BUILD_DIR):
2831
mkdir -p $@
2932

fdf.c

+75-23
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
/* ::: :::::::: */
44
/* fdf.c :+: :+: :+: */
55
/* +:+ +:+ +:+ */
6-
/* By: ebabaogl <ebabaogl@student.42kocaeli.co +#+ +:+ +#+ */
6+
/* By: obastug <obastug@student.42.fr> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2025/01/02 11:39:32 by ebabaogl #+# #+# */
9-
/* Updated: 2025/01/03 16:55:03 by ebabaogl ### ########.fr */
9+
/* Updated: 2025/01/04 16:36:54 by obastug ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

13+
#include "mlx.h"
1314
#include "fdf.h"
1415
#include "window.h"
1516
#include "libft.h"
@@ -18,35 +19,86 @@
1819
#include <limits.h>
1920
#include <stdio.h>
2021
#include <unistd.h>
21-
unsigned int ft_atoi_hex(char *str);
2222

23-
int main()
23+
24+
void put_pixel(void *mlx_ptr, void *win_ptr, int x, int y, unsigned long color)
2425
{
25-
//t_vars vars;
26-
//t_mlx mlx;
27-
28-
// char *map = read_file("test_maps/42.fdf");
29-
// printf("%s", map);
30-
// free(map);
31-
//vars.mlx = &mlx;
32-
//if (init_win(vars.mlx) == -1)
33-
char *map_str = read_file("test_maps/42.fdf");
34-
unsigned long **map = map_string_to_arr_2d(map_str);
35-
write(1, "helloworld", 10);
36-
size_t i;
37-
size_t j;
26+
printf("pixel sent to mlx: %d, %d\n", (WIN_WIDTH / 2) + x, (WIN_HEIGHT / 2) - y);
27+
mlx_pixel_put(mlx_ptr, win_ptr, (WIN_WIDTH / 2) + x, (WIN_HEIGHT / 2) + y, color);
28+
}
29+
30+
void render_and_put_pixel(t_vars *vars, int x, int y, unsigned long point)
31+
{
32+
int final_x;
33+
int final_y;
34+
35+
final_x = (x - vars->anchor_x) * vars->distance;
36+
final_y = (y - vars->anchor_y) * vars->distance;
37+
put_pixel(vars->mlx->mlx_ptr, vars->mlx->win_ptr, final_x, final_y, get_color(point));
38+
printf("anchor point: %d %d\n", vars->anchor_x, vars->anchor_y);
39+
printf("coordinate: %d, %d\n", final_x, final_y);
40+
printf("distance: %d\n", vars->distance);
41+
}
42+
43+
void render_map(t_vars *vars)
44+
{
45+
int i;
46+
int j;
3847
i = 0;
39-
j = 0;
40-
while(map[i])
48+
while(vars->map[i])
4149
{
42-
while (map[i][j] != ULONG_MAX)
50+
j = 0;
51+
while (vars->map[i][j] != ULONG_MAX)
4352
{
44-
printf("i: %lu, ", i);
45-
printf("z: %lu, ", map[i][j] >> 32);
46-
printf("color: %lu\n", map[i][j] & COLOR_MASK);
53+
render_and_put_pixel(vars, i, j, vars->map[i][j]);
4754
j++;
4855
}
4956
i++;
5057
}
58+
}
59+
60+
void fdf(t_vars *vars)
61+
{
62+
// mlx_hook(vars->mlx->mlx_ptr, ON_DESTROY, 0, close_win, vars->mlx);
63+
reset_camera(vars);
64+
mlx_key_hook(vars->mlx->win_ptr, key_handler, vars);
65+
mlx_loop(vars->mlx->mlx_ptr);
66+
mlx_destroy_display(vars->mlx->mlx_ptr);
67+
free(vars->mlx->mlx_ptr);
68+
}
69+
70+
void set_map_props(t_vars *vars)
71+
{
72+
int i;
73+
74+
i = 0;
75+
while (vars->map[0][i] != ULONG_MAX)
76+
i++;
77+
vars->line_len = i;
78+
vars->anchor_x = i / 2;
79+
i = 0;
80+
while (vars->map[i])
81+
i++;
82+
vars->line_count = i;
83+
vars->anchor_y = i / 2;
84+
}
85+
86+
int main()
87+
{
88+
t_vars vars;
89+
t_mlx mlx;
90+
char *map_str;
91+
92+
map_str = read_file("test_maps/2x2.fdf");
93+
if (!map_str)
94+
return (write(1, "file couldn't read", 18), 1);
95+
vars.map = map_string_to_arr_2d(map_str);
96+
if (!vars.map)
97+
return (write(1, "invalid map", 11), 1);
98+
set_map_props(&vars);
99+
vars.mlx = &mlx;
100+
init_win(&mlx);
101+
fdf(&vars);
102+
51103
return (1);
52104
}

inc/fdf.h

+29-13
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
/* ::: :::::::: */
44
/* fdf.h :+: :+: :+: */
55
/* +:+ +:+ +:+ */
6-
/* By: ebabaogl <ebabaogl@student.42kocaeli.co +#+ +:+ +#+ */
6+
/* By: obastug <obastug@student.42.fr> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2025/01/02 11:39:37 by ebabaogl #+# #+# */
9-
/* Updated: 2025/01/03 16:42:07 by ebabaogl ### ########.fr */
9+
/* Updated: 2025/01/04 16:03:42 by obastug ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -16,26 +16,42 @@
1616
#define BUFFER_SIZE 30
1717
#define COLOR_MASK 4294967295U
1818
#define DEFAULT_COLOR 0x00FFFFFF
19+
1920
#include "window.h"
2021
#include <stddef.h>
21-
typedef struct s_vars
22-
{
23-
t_mlx *mlx;
24-
size_t line_len;
25-
} t_vars;
2622

27-
typedef struct s_point
23+
24+
typedef struct s_vars
2825
{
29-
int x;
30-
int y;
31-
int z;
32-
int color;
33-
} t_point;
26+
t_mlx *mlx;
27+
unsigned long **map;
28+
int height;
29+
int map_x;
30+
int map_y;
31+
int w_coef;
32+
int s_coef;
33+
int a_coef;
34+
int d_coef;
35+
int distance;
36+
int line_count;
37+
int line_len;
38+
int anchor_x;
39+
int anchor_y;
40+
} t_vars;
3441

3542
char *read_file(char *file_name);
3643
int init_win(t_mlx *mlx);
3744
unsigned int ft_atoi_hex(char *str);
3845
unsigned long point_to_ulong(char *point);
3946
unsigned long **map_string_to_arr_2d(char *whole_file);
4047
size_t ft_ptrarrlen(unsigned long *arr);
48+
49+
unsigned long get_color(unsigned long);
50+
unsigned long get_z(unsigned long point);
51+
52+
void render_map(t_vars *vars);
53+
54+
int key_handler(int keycode, void *param);
55+
int close_win(void *param);
56+
void reset_camera(t_vars *vars);
4157
#endif

inc/window.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
/* ::: :::::::: */
44
/* window.h :+: :+: :+: */
55
/* +:+ +:+ +:+ */
6-
/* By: ebabaogl <ebabaogl@student.42kocaeli.co +#+ +:+ +#+ */
6+
/* By: obastug <obastug@student.42.fr> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2025/01/02 13:34:08 by ebabaogl #+# #+# */
9-
/* Updated: 2025/01/02 15:12:21 by ebabaogl ### ########.fr */
9+
/* Updated: 2025/01/04 13:52:04 by obastug ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -15,6 +15,8 @@
1515

1616
# define WIN_WIDTH 1920
1717
# define WIN_HEIGHT 1080
18+
# define PADDED_WIDTH 1800
19+
# define PADDED_HEIGHT 900
1820

1921
# define ON_DESTROY 17
2022

point_utils.c

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include "fdf.h"
2+
3+
unsigned long get_z(unsigned long point)
4+
{
5+
return (point >> 32);
6+
}
7+
8+
unsigned long get_color(unsigned long point)
9+
{
10+
return (point & COLOR_MASK);
11+
}

read_map.c

-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ unsigned long **map_string_to_arr_2d(char *whole_file)
9595
map_2d_ul = malloc(sizeof(unsigned long *) * (line_count + 1));
9696
if (!map_2d_ul)
9797
return (free(map_2d_str), NULL);
98-
printf("line_count: %lu\n", line_count);
9998
i = 0;
10099
while (map_2d_str[i])
101100
{

test_maps/2x2.fdf

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
0 0 0
2+
0 0 0
3+
0 0 0
4+
0 0 0
5+
0 0 0
6+
0 0 0
7+
0 0 0
8+
0 0 0
9+
0 0 0
10+
0 0 0
11+
0 0 0
12+
0 0 0
13+
0 0 0
14+
0 0 0
15+
0 0 0
16+
0 0 0
17+
0 0 0
18+
0 0 0
19+
0 0 0
20+
0 0 0
21+
0 0 0
22+
0 0 0
23+
0 0 0
24+
0 0 0
25+
0 0 0
26+
0 0 0
27+
0 0 0
28+
0 0 0
29+
0 0 0
30+
0 0 0
31+
0 0 0
32+
0 0 0
33+
0 0 0
34+
0 0 0
35+
0 0 0
36+
0 0 0
37+
0 0 0
38+
0 0 0
39+
0 0 0
40+
0 0 0
41+
0 0 0
42+
0 0 0

test_maps/3x3.fdf

+55-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,55 @@
1-
0 0 0 0 0
2-
0 0 0 0 0
3-
0 0 0 0 0
1+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
8+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
10+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
13+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
14+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
15+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
16+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
17+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
18+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
19+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
20+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
21+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
22+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
23+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
24+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
25+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
26+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
27+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
28+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
29+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
30+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
32+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
34+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
35+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
36+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
37+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
38+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
39+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
40+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
41+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
42+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
43+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
44+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
45+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
46+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
47+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
48+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
49+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
50+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
51+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
52+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
53+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
54+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
55+
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 commit comments

Comments
 (0)