D=A'

C=E'

d=a'

E = (-3.542713690034189, 0.7110913828179533)
D = Point(Ray[E, E + (1, 0)])
A = (-3.9574576155932157, 2.198608702420727)
c_D = Circle(D, Segment[E, A])
C = Point(c_D)
α = Angle(D, E, A)
B = Point(Ray[C, Rotate[D, α - 180°, C]])
a = Segment(A, E)
b = Segment(A, B)
c = Segment(B, C)
d = Segment(C, D)
f = LineBisector(A, D)
g = LineBisector(E, C)
O = Intersect(f, g)
β = Angle(E, O, C)
B' = Mirror(Rotate[B, β, O], d)
C' = Mirror(Rotate[C, β, O], d)
D' = Mirror(Rotate[D, β, O], d)
e' = Segment(C, D')
d' = Segment(D', C')
c' = Segment(C', B')
b' = Segment(B', D)
M = Midpoint(D, B')
C'_{1} = Mirror(C, M)
C'' = Mirror(C', M)
E' = Mirror(E, M)
B'_{1} = Mirror(B, M)
D'' = Mirror(D', M)
A' = Mirror(A, M)
l = Segment(C'', D)
m = Segment(C'', D'')
n = Segment(D'', C'_{1})
p = Segment(B', C'_{1})
q = Segment(C'_{1}, B'_{1})
r = Segment(B'_{1}, A')
s = Segment(A', E')
t = Segment(B', E')
u = Vector(A, D')
B'_{2} = Translate(B, u)
C'_{2} = Translate(C, u)
D''_{1} = Translate(D', u)
D'_{1} = Translate(D, u)
B'' = Translate(B', u)
f_1 = Segment(D', B'_{2})
g_1 = Segment(B'_{2}, D''_{1})
h_1 = Segment(C'_{2}, D'_{1})
i_1 = Segment(C', D'_{1})
j_1 = Segment(D'_{1}, B'')
C''_{1} = Translate(C', u)
k_1 = Segment(B'', C''_{1})
l_1 = Segment(D''_{1}, C''_{1})
F = Translate(C'_{1}, u)
G = Translate(B'_{1}, u)
A'' = Translate(A', u)
E'' = Translate(E', u)
m_1 = Segment(A', F)
n_1 = Segment(B'', F)
p_1 = Segment(E'', A'')
q_1 = Segment(A'', G)
r_1 = Segment(F, G)
s_1 = Segment(B'', E'')
e = Segment(D, E)
poly1, a_1, b_1, c_1, d_1, e_1 = Polygon(A, B, C, D, E)
poly2, c_2, d'_{1}, c'_{1}, b'_{1}, d_2 = Polygon(C, D', C', B', D)