                 }
             }
         }
-        #else
+#else
         self.withUnsafeBytes { (bytes) in
             let bins = stride(from: 0, to: self.count, by: 256)
             for bin in bins {

// We provide a compatible method for targets that use Swift 4.x so that we can use the new version
// across all language versions.

internal extension Data {
    func withUnsafeBytes<T>(_ body: (UnsafeRawBufferPointer) throws -> T) rethrows -> T {
        let count = self.count
        return try withUnsafeBytes { (pointer: UnsafePointer<UInt8>) throws -> T in

    0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
    0x2d02ef8d]

private extension Data {


    /// Lookup table-based CRC32 implenetation that is used
    /// if `zlib` isn't available.
    /// - Parameter checksum: Running checksum or `0` for the initial run.
    /// - Returns: The calculated checksum of the receiver.
    func builtInCRC32(checksum: CRC32) -> CRC32 {
        // The typecast is necessary on 32-bit platforms because of
        // https://bugs.swift.org/browse/SR-1774
        let mask = 0xffffffff as CRC32
        var result = checksum ^ mask
#if swift(>=5.0)
        crcTable.withUnsafeBufferPointer { crcTablePointer in
            self.withUnsafeBytes { bufferPointer in
                var bufferIndex = 0
