\begin{tikzpicture}[extended line/.style={shorten >=-#1,shorten <=-#1},extended line/.default=1.2cm]
          \tkzDefPoint(0,0){o}
          \tkzDefPoint(2,0){a}
          \tkzDefPoint(0:3.2){Dcenter}\tkzDefPoint(0:2.3){Dpoint}
          \tkzDrawCircle[color=blue](o,a)
          \tkzDrawCircle[color=red](Dcenter,Dpoint)
          \tkzDefPoint(30:3){p}
          \tkzDefPointBy[inversion = center Dcenter through Dpoint](p)
          \tkzGetPoint{q}
          \draw[dashed, extended line, <->] (p)--(q);
          \tkzDefPoint[thin](35:4){w1}
          \tkzCircumCenter(p,q,w1)\tkzGetPoint{Ecenter}
          \tkzDrawCircle[thin](Ecenter,p)
          \tkzDefPointBy[inversion = center o through a](q)
          \tkzGetPoint{q*}
          \tkzDefPoint(30:4/3){p*}
          \tkzDefPoint(35:1){w1*}
          \tkzCircumCenter(p*,q*,w1*)\tkzGetPoint{Ecenter*}
          \tkzDrawCircle[thin](Ecenter*,p*)
          \tkzCircumCenter(p*,q*,o)\tkzGetPoint{Fcenter*}
          \tkzDrawCircle[dashed](Fcenter*,p*)
          \tkzDefPoint(0:4/2.3){Dpoint*}
          \tkzDefPoint(3.2,.9){d1}
          \tkzDefPointBy[inversion = center o through a](d1)
          \tkzGetPoint{d1*}
          \tkzDefPoint(3.2,-.9){d2}
          \tkzDefPointBy[inversion = center o through a](d2)
          \tkzGetPoint{d2*}
          \tkzCircumCenter(Dpoint*,d1*,d2*)\tkzGetPoint{Dcenter*}
          \tkzDrawCircle[color=red](Dcenter*,Dpoint*)
          \tkzDrawPoints[fill=red](p,q)
          \tkzDrawPoints(o,q*,p*)
          \tkzLabelPoint[left](p){\(p\)}
          \tkzLabelPoint[right](q){\(q\)}
          \tkzLabelPoint[above right=-3pt](p*){\(p^*\)}
          \tkzLabelPoint[below right=-5pt](q*){\(q^*\)}
          \draw (120:2.2) node{\(C\)};
          \draw (2.5,2.5) node{\(F\)};
          \draw (Ecenter)++(60:1.25) node{\(E\)};
          \draw (Dcenter)++(270:1.15) node{\(D\)};
          \draw (Dcenter*)++(300:.6) node{\(D^*\)};
          \draw (Ecenter*)++(180:.5) node{\(E^*\)};
          \draw (Fcenter*)++(240:.9) node{\(F^*\)};
          \end{tikzpicture}