A = (-4.96, -2.16)
B = (1.04, -2.16)
C = (3, -2)
D = (8.36, -2)
E = Rotate(B, 90°, A)
F = Rotate(A, 90°, E)
G = Rotate(D, 90°, C)
H = Rotate(C, 90°, G)
a = Segment(A, B)
b = Segment(B, F)
c = Segment(F, E)
d = Segment(E, A)
e = Segment(C, D)
f = Segment(D, H)
g = Segment(H, G)
h = Segment(G, C)
I = (6.54, 0.96)
i = OrthogonalLine(I, h)
j = OrthogonalLine(I, g)
J = Intersect(h, i)
L = Midpoint(d)
M = Midpoint(c)
N = Midpoint(b)
O = Midpoint(a)
P = Midpoint(L, O)
Q = Midpoint(O, N)
R = Midpoint(N, M)
S = Midpoint(M, L)
k = Circle(E, Distance[E, Q] Distance[G, J] / Distance[G, C])
p = Circle(A, Distance[A, R] Distance[G, J] / Distance[G, C])
q = Circle(B, Distance[B, S] Distance[G, J] / Distance[G, C])
r = Circle(F, Distance[F, P] Distance[G, J] / Distance[G, C])
l = Line(E, B)
m = Line(A, F)
U = Intersect(k, l, 2)
V = Intersect(p, m, 2)
B1 = Intersect(q, l, 1)
C1 = Intersect(r, m, 1)
a1 = OrthogonalLine(U, l)
b1 = OrthogonalLine(B1, l)
f1 = OrthogonalLine(C1, m)
h1 = OrthogonalLine(V, m)
F1 = Intersect(d, a1)
G1 = Intersect(c, a1)
K1 = Intersect(c, f1)
M1 = Intersect(b, b1)
N1 = Intersect(b, f1)
Q1 = Intersect(a, h1)
R1 = Intersect(a, b1)
U1 = Intersect(b1, d)
Z1 = Intersect(a, a1)
A2 = Intersect(a, f1)
D2 = Intersect(b, h1)
E2 = Intersect(a1, b)
H2 = Intersect(c, b1)
I2 = Intersect(c, h1)
L2 = Intersect(d, f1)
J2 = Intersect(d, h1)
k1 = Segment(F1, G1)
m1 = Segment(K1, N1)
p1 = Segment(M1, R1)
q1 = Segment(Q1, J2)
s1 = Segment(U1, H2)
t1 = Segment(H2, E2)
a2 = Segment(E2, Z1)
b2 = Segment(Z1, U1)
c2 = Segment(A2, L2)
d2 = Segment(L2, I2)
e2 = Segment(I2, D2)
f2 = Segment(D2, A2)
M2: G + (C - G) / 3
N2: H + (D - H) / 3
O2: G + (H - G) / 3
P2: C + (D - C) / 3
r2 = Segment(M2, N2)
K2 = Midpoint(M2, C)
Q2 = Midpoint(N2, D)
R2 = Midpoint(D, P2)
S2 = Midpoint(O2, H)
t2 = Segment(Q2, K2)
K = Intersect(g, j)
s = Circle(A, Distance[A, B] Distance[G, K] / Distance[G, H] / 2)
t = Circle(B, Distance[A, B] Distance[G, K] / Distance[G, H] / 2)
c1 = Circle(F, Distance[A, B] Distance[G, K] / Distance[G, H] / 2)
d1 = Circle(E, Distance[A, B] Distance[G, K] / Distance[G, H] / 2)
T = Intersect(d1, d, 1)
W = Intersect(d1, c, 1)
Z = Intersect(c1, c, 1)
A1 = Intersect(c1, b, 1)
D1, J1 = Intersect(t, b)
E1 = Intersect(t, a, 1)
H1 = Intersect(s, a, 1)
I1 = Intersect(s, d, 1)
n = Segment(W, H1)
e1 = Segment(Z, E1)
g1 = Segment(A1, T)
i1 = Segment(I1, D1)
L1 = Intersect(f, t2)
O1 = Intersect(h, r2)
j1 = Segment(L1, O1)
l1 = Segment(L1, G)
P1 = Intersect(h, t2)
S1 = Intersect(f, r2)
n1 = Segment(P1, S1)
r1 = Segment(S1, G)
T1 = Midpoint(e)
g2 = Segment(P1, T1)
h2 = Segment(C, L1)
i2 = Segment(P1, D)
j2 = Segment(T1, L1)