constr

D = (-4.349824255979125, 1.6234005204654767)
C = (-2.2173867323818737, 4.534149914507322)
Dx = Ray(D, D + (1, 0))
Cy = Ray(C, C - (0, 1))
DC = Segment(C, D)
de = Line(D, Mirror[D + (1, 0), DC])
C' = Mirror(D, Cy)
Cb = Ray(C, C')
α = Angle(C', D, C)
α' = Angle(C, D, Mirror[C', DC])
M = Rotate(Midpoint[D, C], (-α), D)
f = Line(M, de)
E' = Rotate(C, 180° + α, D)
D' = Midpoint(E', Mirror[E', Cy])
g = Segment(D', C')
h = Segment(E', D')
A = Intersect(f, g)
B = Intersect(Line[A, Cy], Segment[C, C'])
E = Intersect(de, OrthogonalLine[A, Cy])
poly1, a, b, c, d, e = Polygon(A, B, C, D, E)
i = false
A' = Mirror(A, a)
B' = Mirror(B, a)
C'_{1} = Mirror(C, a)
D'_{1} = Mirror(D, a)
E'_{1} = Mirror(E, a)
poly1', a', b', c'_{1}, d'_{1}, e'_{1} = Polygon(A', B', C'_{1}, D'_{1}, E'_{1})
F = Midpoint(D, E)
A'_{1} = Mirror(A, F)
B'_{1} = Mirror(B, F)
C'_{2} = Mirror(C, F)
D'_{2} = Mirror(D, F)
E'_{2} = Mirror(E, F)
poly1'_{1}, a'_{1}, b'_{1}, c'_{2}, d'_{2}, e'_{2} = Polygon(A'_{1}, B'_{1}, C'_{2}, D'_{2}, E'_{2})
G = Mirror(A'_{1}, a'_{1})
H = Mirror(B'_{1}, a'_{1})
I = Mirror(C'_{2}, a'_{1})
J = Mirror(D'_{2}, a'_{1})
K = Mirror(E'_{2}, a'_{1})
poly2, g_1, h_1, i_1, j, k = Polygon(G, H, I, J, K)
β = Angle(E, D, C)
A'_{2} = Rotate(A, β, D)
B'_{2} = Rotate(B, β, D)
C'_{3} = Rotate(C, β, D)
D'_{3} = Rotate(D, β, D)
E'_{3} = Rotate(E, β, D)
poly1'_{2}, a'_{2}, b'_{2}, c'_{3}, d'_{3}, e'_{3} = Polygon(A'_{2}, B'_{2}, C'_{3}, D'_{3}, E'_{3})
L = Mirror(A'_{2}, a'_{2})
N = Mirror(B'_{2}, a'_{2})
O = Mirror(C'_{3}, a'_{2})
P = Mirror(D'_{3}, a'_{2})
Q = Mirror(E'_{3}, a'_{2})
poly3, l, n, o, p, q = Polygon(L, N, O, P, Q)
R = Rotate(A'_{1}, β, E)
S = Rotate(B'_{1}, β, E)
T = Rotate(C'_{2}, β, E)
U = Rotate(D'_{2}, β, E)
V = Rotate(E'_{2}, β, E)
poly4, r, s, t, u, v = Polygon(R, S, T, U, V)
R' = Mirror(R, r)
S' = Mirror(S, r)
T' = Mirror(T, r)
U' = Mirror(U, r)
V' = Mirror(V, r)
poly4', r', s', t', u', v' = Polygon(R', S', T', U', V')
w = Vector(T', B'_{2})
R'_{1} = Translate(R, w)
S'_{1} = Translate(S, w)
T'_{1} = Translate(T, w)
U'_{1} = Translate(U, w)
V'_{1} = Translate(V, w)
poly4'_{1}, r'_{1}, s'_{1}, t'_{1}, u'_{1}, v'_{1} = Polygon(R'_{1}, S'_{1}, T'_{1}, U'_{1}, V'_{1})
R'' = Translate(R', w)
S'' = Translate(S', w)
T'' = Translate(T', w)
U'' = Translate(U', w)
V'' = Translate(V', w)
poly4'', r'', s'', t'', u'', v'' = Polygon(R'', S'', T'', U'', V'')
A'' = Rotate(A', β, D'_{1})
B'' = Rotate(B', β, D'_{1})
W = Rotate(C'_{1}, β, D'_{1})
Z = Rotate(D'_{1}, β, D'_{1})
A_1 = Rotate(E'_{1}, β, D'_{1})
poly1'', a'', b'', w_1, z_1, a_1 = Polygon(A'', B'', W, Z, A_1)
A''' = Mirror(A'', a'')
B''' = Mirror(B'', a'')
W' = Mirror(W, a'')
Z' = Mirror(Z, a'')
B_1 = Mirror(A_1, a'')
poly1''', a''', b''', w', z', b_1 = Polygon(A''', B''', W', Z', B_1)
R''_{1} = Rotate(R', β, V')
m = Vector(B, C'_{2})
A''_{1} = Translate(A', m)
B''_{1} = Translate(B', m)
C_1 = Translate(C'_{1}, m)
D_1 = Translate(D'_{1}, m)
E_1 = Translate(E'_{1}, m)
poly1''_{1}, a''_{1}, b''_{1}, c_1, d_1, e_1 = Polygon(A''_{1}, B''_{1}, C_1, D_1, E_1)
F_1 = Mirror(A''_{1}, a''_{1})
G_1 = Mirror(B''_{1}, a''_{1})
H_1 = Mirror(C_1, a''_{1})
I_1 = Mirror(D_1, a''_{1})
J_1 = Mirror(E_1, a''_{1})
poly5, f_1, j_1, k_1, l_1, m_1 = Polygon(F_1, G_1, H_1, I_1, J_1)