A = (0.1486326731455292, -7.804794144421207)
B = (4.3665387624554075, -7.86066045023988)
R = Segment(A, B)
C = (-0.0468993972198295, -8.894187107885347)
D = (2.858148505351212, -9.005919719522694)
r = Segment(C, D)
O = (7.969915487759871, -0.7935727641776357)
c = Circle(O, R)
O' = (18.08171684093984, -0.8773722229056465)
d_1 = Circle(O', r)
xR: x(O)
yR: y(O)
xr: x(O')
yr: y(O')
e = Distance(R, r)
k: (R + r) / (R - r)
X0: (xR + xr) / 2.0 + k * (xr - xR) / 2.0
Y0: (yR + yr) / 2.0 + k * (yr - yR) / 2.0
P: (X0, Y0)
E = Midpoint(O', P)
F = Midpoint(O, P)
f = Circle(E, P)
G = Intersect(d_1, f, 1.0)
H = Intersect(d_1, f, 2.0)
g = Circle(F, P)
I = Intersect(c, g, 1.0)
J = Intersect(c, g, 2.0)
d = Segment(O, O')
Y: R * d / (R + r)
h = Circle(O, Y)
K = Intersect(h, d, 1.0)
L = Midpoint(O, K)
M = Midpoint(K, O')
p = Circle(L, K)
q = Circle(M, K)
N, Q = Intersect(c, p)
S, T = Intersect(q, d_1)
a = Line(N, T)
b = Line(S, Q)
i = Segment(O', S)
j = Segment(O', T)
l = Segment(N, O)
m = Segment(O, Q)