             guard let q2 = self._offset_point(a, t) else { return }
             guard let q3 = self._offset_point(a, u3) else { return }
             
-            let _c = (1 - c) / 6
             let m0 = q2 - q0
             let m1 = q3 - q1
             
-            try calback(s...t, CubicBezier(q1, q1 + _c * m0, q2 - _c * m1, q2))
+            try calback(s...t, CubicBezier(q1, q1 + m0 / 6, q2 - m1 / 6, q2))
             
             s = t
         }

    }
    
    @inlinable
    func _offset(_ a: Double, _ c: Double, _ calback: (ClosedRange<Double>, CubicBezier<Point>) throws -> Void) rethrows {
        
        let n = 1 << degree
        var s = 0.0

        }
        
        if t.count == 0 {
            try _offset(a, calback)
        } else {
            t.sort()
            for ((s, t), segment) in zip(zip(CollectionOfOne(0).concat(t), t.appended(1)), self.split(t)) {
                let c = t - s
                try segment._offset(a) { try calback($0.lowerBound * c + s ... $0.upperBound * c + s, $1) }
            }
        }
    }
