{-# language CPP #-}
{-# language MagicHash #-}

module Crc32c.Table
  ( table
  ) where

import Data.Word (Word32)
import GHC.Ptr (Ptr(Ptr))

#include "MachDeps.h"

-- CPP and multiline strings do not work together. Consequently,
-- we must put all 256 32-bit words on one line.

table :: Ptr Word32
#ifdef WORDS_BIGENDIAN
table = Ptr "\x00\x00\x00\x00\xf2\x6b\x83\x03\xe1\x3b\x70\xf7\x13\x50\xf3\xf4\xc7\x9a\x97\x1f\x35\xf1\x14\x1c\x26\xa1\xe7\xe8\xd4\xca\x64\xeb\x8a\xd9\x58\xcf\x78\xb2\xdb\xcc\x6b\xe2\x28\x38\x99\x89\xab\x3b\x4d\x43\xcf\xd0\xbf\x28\x4c\xd3\xac\x78\xbf\x27\x5e\x13\x3c\x24\x10\x5e\xc7\x6f\xe2\x35\x44\x6c\xf1\x65\xb7\x98\x03\x0e\x34\x9b\xd7\xc4\x50\x70\x25\xaf\xd3\x73\x36\xff\x20\x87\xc4\x94\xa3\x84\x9a\x87\x9f\xa0\x68\xec\x1c\xa3\x7b\xbc\xef\x57\x89\xd7\x6c\x54\x5d\x1d\x08\xbf\xaf\x76\x8b\xbc\xbc\x26\x78\x48\x4e\x4d\xfb\x4b\x20\xbd\x8e\xde\xd2\xd6\x0d\xdd\xc1\x86\xfe\x29\x33\xed\x7d\x2a\xe7\x27\x19\xc1\x15\x4c\x9a\xc2\x06\x1c\x69\x36\xf4\x77\xea\x35\xaa\x64\xd6\x11\x58\x0f\x55\x12\x4b\x5f\xa6\xe6\xb9\x34\x25\xe5\x6d\xfe\x41\x0e\x9f\x95\xc2\x0d\x8c\xc5\x31\xf9\x7e\xae\xb2\xfa\x30\xe3\x49\xb1\xc2\x88\xca\xb2\xd1\xd8\x39\x46\x23\xb3\xba\x45\xf7\x79\xde\xae\x05\x12\x5d\xad\x16\x42\xae\x59\xe4\x29\x2d\x5a\xba\x3a\x11\x7e\x48\x51\x92\x7d\x5b\x01\x61\x89\xa9\x6a\xe2\x8a\x7d\xa0\x86\x61\x8f\xcb\x05\x62\x9c\x9b\xf6\x96\x6e\xf0\x75\x95\x41\x7b\x1d\xbc\xb3\x10\x9e\xbf\xa0\x40\x6d\x4b\x52\x2b\xee\x48\x86\xe1\x8a\xa3\x74\x8a\x09\xa0\x67\xda\xfa\x54\x95\xb1\x79\x57\xcb\xa2\x45\x73\x39\xc9\xc6\x70\x2a\x99\x35\x84\xd8\xf2\xb6\x87\x0c\x38\xd2\x6c\xfe\x53\x51\x6f\xed\x03\xa2\x9b\x1f\x68\x21\x98\x51\x25\xda\xd3\xa3\x4e\x59\xd0\xb0\x1e\xaa\x24\x42\x75\x29\x27\x96\xbf\x4d\xcc\x64\xd4\xce\xcf\x77\x84\x3d\x3b\x85\xef\xbe\x38\xdb\xfc\x82\x1c\x29\x97\x01\x1f\x3a\xc7\xf2\xeb\xc8\xac\x71\xe8\x1c\x66\x15\x03\xee\x0d\x96\x00\xfd\x5d\x65\xf4\x0f\x36\xe6\xf7\x61\xc6\x93\x62\x93\xad\x10\x61\x80\xfd\xe3\x95\x72\x96\x60\x96\xa6\x5c\x04\x7d\x54\x37\x87\x7e\x47\x67\x74\x8a\xb5\x0c\xf7\x89\xeb\x1f\xcb\xad\x19\x74\x48\xae\x0a\x24\xbb\x5a\xf8\x4f\x38\x59\x2c\x85\x5c\xb2\xde\xee\xdf\xb1\xcd\xbe\x2c\x45\x3f\xd5\xaf\x46\x71\x98\x54\x0d\x83\xf3\xd7\x0e\x90\xa3\x24\xfa\x62\xc8\xa7\xf9\xb6\x02\xc3\x12\x44\x69\x40\x11\x57\x39\xb3\xe5\xa5\x52\x30\xe6\xfb\x41\x0c\xc2\x09\x2a\x8f\xc1\x1a\x7a\x7c\x35\xe8\x11\xff\x36\x3c\xdb\x9b\xdd\xce\xb0\x18\xde\xdd\xe0\xeb\x2a\x2f\x8b\x68\x29\x82\xf6\x3b\x78\x70\x9d\xb8\x7b\x63\xcd\x4b\x8f\x91\xa6\xc8\x8c\x45\x6c\xac\x67\xb7\x07\x2f\x64\xa4\x57\xdc\x90\x56\x3c\x5f\x93\x08\x2f\x63\xb7\xfa\x44\xe0\xb4\xe9\x14\x13\x40\x1b\x7f\x90\x43\xcf\xb5\xf4\xa8\x3d\xde\x77\xab\x2e\x8e\x84\x5f\xdc\xe5\x07\x5c\x92\xa8\xfc\x17\x60\xc3\x7f\x14\x73\x93\x8c\xe0\x81\xf8\x0f\xe3\x55\x32\x6b\x08\xa7\x59\xe8\x0b\xb4\x09\x1b\xff\x46\x62\x98\xfc\x18\x71\xa4\xd8\xea\x1a\x27\xdb\xf9\x4a\xd4\x2f\x0b\x21\x57\x2c\xdf\xeb\x33\xc7\x2d\x80\xb0\xc4\x3e\xd0\x43\x30\xcc\xbb\xc0\x33\xa2\x4b\xb5\xa6\x50\x20\x36\xa5\x43\x70\xc5\x51\xb1\x1b\x46\x52\x65\xd1\x22\xb9\x97\xba\xa1\xba\x84\xea\x52\x4e\x76\x81\xd1\x4d\x28\x92\xed\x69\xda\xf9\x6e\x6a\xc9\xa9\x9d\x9e\x3b\xc2\x1e\x9d\xef\x08\x7a\x76\x1d\x63\xf9\x75\x0e\x33\x0a\x81\xfc\x58\x89\x82\xb2\x15\x72\xc9\x40\x7e\xf1\xca\x53\x2e\x02\x3e\xa1\x45\x81\x3d\x75\x8f\xe5\xd6\x87\xe4\x66\xd5\x94\xb4\x95\x21\x66\xdf\x16\x22\x38\xcc\x2a\x06\xca\xa7\xa9\x05\xd9\xf7\x5a\xf1\x2b\x9c\xd9\xf2\xff\x56\xbd\x19\x0d\x3d\x3e\x1a\x1e\x6d\xcd\xee\xec\x06\x4e\xed\xc3\x8d\x26\xc4\x31\xe6\xa5\xc7\x22\xb6\x56\x33\xd0\xdd\xd5\x30\x04\x17\xb1\xdb\xf6\x7c\x32\xd8\xe5\x2c\xc1\x2c\x17\x47\x42\x2f\x49\x54\x7e\x0b\xbb\x3f\xfd\x08\xa8\x6f\x0e\xfc\x5a\x04\x8d\xff\x8e\xce\xe9\x14\x7c\xa5\x6a\x17\x6f\xf5\x99\xe3\x9d\x9e\x1a\xe0\xd3\xd3\xe1\xab\x21\xb8\x62\xa8\x32\xe8\x91\x5c\xc0\x83\x12\x5f\x14\x49\x76\xb4\xe6\x22\xf5\xb7\xf5\x72\x06\x43\x07\x19\x85\x40\x59\x0a\xb9\x64\xab\x61\x3a\x67\xb8\x31\xc9\x93\x4a\x5a\x4a\x90\x9e\x90\x2e\x7b\x6c\xfb\xad\x78\x7f\xab\x5e\x8c\x8d\xc0\xdd\x8f\xe3\x30\xa8\x1a\x11\x5b\x2b\x19\x02\x0b\xd8\xed\xf0\x60\x5b\xee\x24\xaa\x3f\x05\xd6\xc1\xbc\x06\xc5\x91\x4f\xf2\x37\xfa\xcc\xf1\x69\xe9\xf0\xd5\x9b\x82\x73\xd6\x88\xd2\x80\x22\x7a\xb9\x03\x21\xae\x73\x67\xca\x5c\x18\xe4\xc9\x4f\x48\x17\x3d\xbd\x23\x94\x3e\xf3\x6e\x6f\x75\x01\x05\xec\x76\x12\x55\x1f\x82\xe0\x3e\x9c\x81\x34\xf4\xf8\x6a\xc6\x9f\x7b\x69\xd5\xcf\x88\x9d\x27\xa4\x0b\x9e\x79\xb7\x37\xba\x8b\xdc\xb4\xb9\x98\x8c\x47\x4d\x6a\xe7\xc4\x4e\xbe\x2d\xa0\xa5\x4c\x46\x23\xa6\x5f\x16\xd0\x52\xad\x7d\x53\x51"#
#else
table :: Ptr Word32
table = forall a. Addr# -> Ptr a
Ptr Addr#
"\x00\x00\x00\x00\x03\x83\x6b\xf2\xf7\x70\x3b\xe1\xf4\xf3\x50\x13\x1f\x97\x9a\xc7\x1c\x14\xf1\x35\xe8\xe7\xa1\x26\xeb\x64\xca\xd4\xcf\x58\xd9\x8a\xcc\xdb\xb2\x78\x38\x28\xe2\x6b\x3b\xab\x89\x99\xd0\xcf\x43\x4d\xd3\x4c\x28\xbf\x27\xbf\x78\xac\x24\x3c\x13\x5e\x6f\xc7\x5e\x10\x6c\x44\x35\xe2\x98\xb7\x65\xf1\x9b\x34\x0e\x03\x70\x50\xc4\xd7\x73\xd3\xaf\x25\x87\x20\xff\x36\x84\xa3\x94\xc4\xa0\x9f\x87\x9a\xa3\x1c\xec\x68\x57\xef\xbc\x7b\x54\x6c\xd7\x89\xbf\x08\x1d\x5d\xbc\x8b\x76\xaf\x48\x78\x26\xbc\x4b\xfb\x4d\x4e\xde\x8e\xbd\x20\xdd\x0d\xd6\xd2\x29\xfe\x86\xc1\x2a\x7d\xed\x33\xc1\x19\x27\xe7\xc2\x9a\x4c\x15\x36\x69\x1c\x06\x35\xea\x77\xf4\x11\xd6\x64\xaa\x12\x55\x0f\x58\xe6\xa6\x5f\x4b\xe5\x25\x34\xb9\x0e\x41\xfe\x6d\x0d\xc2\x95\x9f\xf9\x31\xc5\x8c\xfa\xb2\xae\x7e\xb1\x49\xe3\x30\xb2\xca\x88\xc2\x46\x39\xd8\xd1\x45\xba\xb3\x23\xae\xde\x79\xf7\xad\x5d\x12\x05\x59\xae\x42\x16\x5a\x2d\x29\xe4\x7e\x11\x3a\xba\x7d\x92\x51\x48\x89\x61\x01\x5b\x8a\xe2\x6a\xa9\x61\x86\xa0\x7d\x62\x05\xcb\x8f\x96\xf6\x9b\x9c\x95\x75\xf0\x6e\xbc\x1d\x7b\x41\xbf\x9e\x10\xb3\x4b\x6d\x40\xa0\x48\xee\x2b\x52\xa3\x8a\xe1\x86\xa0\x09\x8a\x74\x54\xfa\xda\x67\x57\x79\xb1\x95\x73\x45\xa2\xcb\x70\xc6\xc9\x39\x84\x35\x99\x2a\x87\xb6\xf2\xd8\x6c\xd2\x38\x0c\x6f\x51\x53\xfe\x9b\xa2\x03\xed\x98\x21\x68\x1f\xd3\xda\x25\x51\xd0\x59\x4e\xa3\x24\xaa\x1e\xb0\x27\x29\x75\x42\xcc\x4d\xbf\x96\xcf\xce\xd4\x64\x3b\x3d\x84\x77\x38\xbe\xef\x85\x1c\x82\xfc\xdb\x1f\x01\x97\x29\xeb\xf2\xc7\x3a\xe8\x71\xac\xc8\x03\x15\x66\x1c\x00\x96\x0d\xee\xf4\x65\x5d\xfd\xf7\xe6\x36\x0f\x62\x93\xc6\x61\x61\x10\xad\x93\x95\xe3\xfd\x80\x96\x60\x96\x72\x7d\x04\x5c\xa6\x7e\x87\x37\x54\x8a\x74\x67\x47\x89\xf7\x0c\xb5\xad\xcb\x1f\xeb\xae\x48\x74\x19\x5a\xbb\x24\x0a\x59\x38\x4f\xf8\xb2\x5c\x85\x2c\xb1\xdf\xee\xde\x45\x2c\xbe\xcd\x46\xaf\xd5\x3f\x0d\x54\x98\x71\x0e\xd7\xf3\x83\xfa\x24\xa3\x90\xf9\xa7\xc8\x62\x12\xc3\x02\xb6\x11\x40\x69\x44\xe5\xb3\x39\x57\xe6\x30\x52\xa5\xc2\x0c\x41\xfb\xc1\x8f\x2a\x09\x35\x7c\x7a\x1a\x36\xff\x11\xe8\xdd\x9b\xdb\x3c\xde\x18\xb0\xce\x2a\xeb\xe0\xdd\x29\x68\x8b\x2f\x78\x3b\xf6\x82\x7b\xb8\x9d\x70\x8f\x4b\xcd\x63\x8c\xc8\xa6\x91\x67\xac\x6c\x45\x64\x2f\x07\xb7\x90\xdc\x57\xa4\x93\x5f\x3c\x56\xb7\x63\x2f\x08\xb4\xe0\x44\xfa\x40\x13\x14\xe9\x43\x90\x7f\x1b\xa8\xf4\xb5\xcf\xab\x77\xde\x3d\x5f\x84\x8e\x2e\x5c\x07\xe5\xdc\x17\xfc\xa8\x92\x14\x7f\xc3\x60\xe0\x8c\x93\x73\xe3\x0f\xf8\x81\x08\x6b\x32\x55\x0b\xe8\x59\xa7\xff\x1b\x09\xb4\xfc\x98\x62\x46\xd8\xa4\x71\x18\xdb\x27\x1a\xea\x2f\xd4\x4a\xf9\x2c\x57\x21\x0b\xc7\x33\xeb\xdf\xc4\xb0\x80\x2d\x30\x43\xd0\x3e\x33\xc0\xbb\xcc\xa6\xb5\x4b\xa2\xa5\x36\x20\x50\x51\xc5\x70\x43\x52\x46\x1b\xb1\xb9\x22\xd1\x65\xba\xa1\xba\x97\x4e\x52\xea\x84\x4d\xd1\x81\x76\x69\xed\x92\x28\x6a\x6e\xf9\xda\x9e\x9d\xa9\xc9\x9d\x1e\xc2\x3b\x76\x7a\x08\xef\x75\xf9\x63\x1d\x81\x0a\x33\x0e\x82\x89\x58\xfc\xc9\x72\x15\xb2\xca\xf1\x7e\x40\x3e\x02\x2e\x53\x3d\x81\x45\xa1\xd6\xe5\x8f\x75\xd5\x66\xe4\x87\x21\x95\xb4\x94\x22\x16\xdf\x66\x06\x2a\xcc\x38\x05\xa9\xa7\xca\xf1\x5a\xf7\xd9\xf2\xd9\x9c\x2b\x19\xbd\x56\xff\x1a\x3e\x3d\x0d\xee\xcd\x6d\x1e\xed\x4e\x06\xec\xc4\x26\x8d\xc3\xc7\xa5\xe6\x31\x33\x56\xb6\x22\x30\xd5\xdd\xd0\xdb\xb1\x17\x04\xd8\x32\x7c\xf6\x2c\xc1\x2c\xe5\x2f\x42\x47\x17\x0b\x7e\x54\x49\x08\xfd\x3f\xbb\xfc\x0e\x6f\xa8\xff\x8d\x04\x5a\x14\xe9\xce\x8e\x17\x6a\xa5\x7c\xe3\x99\xf5\x6f\xe0\x1a\x9e\x9d\xab\xe1\xd3\xd3\xa8\x62\xb8\x21\x5c\x91\xe8\x32\x5f\x12\x83\xc0\xb4\x76\x49\x14\xb7\xf5\x22\xe6\x43\x06\x72\xf5\x40\x85\x19\x07\x64\xb9\x0a\x59\x67\x3a\x61\xab\x93\xc9\x31\xb8\x90\x4a\x5a\x4a\x7b\x2e\x90\x9e\x78\xad\xfb\x6c\x8c\x5e\xab\x7f\x8f\xdd\xc0\x8d\x1a\xa8\x30\xe3\x19\x2b\x5b\x11\xed\xd8\x0b\x02\xee\x5b\x60\xf0\x05\x3f\xaa\x24\x06\xbc\xc1\xd6\xf2\x4f\x91\xc5\xf1\xcc\xfa\x37\xd5\xf0\xe9\x69\xd6\x73\x82\x9b\x22\x80\xd2\x88\x21\x03\xb9\x7a\xca\x67\x73\xae\xc9\xe4\x18\x5c\x3d\x17\x48\x4f\x3e\x94\x23\xbd\x75\x6f\x6e\xf3\x76\xec\x05\x01\x82\x1f\x55\x12\x81\x9c\x3e\xe0\x6a\xf8\xf4\x34\x69\x7b\x9f\xc6\x9d\x88\xcf\xd5\x9e\x0b\xa4\x27\xba\x37\xb7\x79\xb9\xb4\xdc\x8b\x4d\x47\x8c\x98\x4e\xc4\xe7\x6a\xa5\xa0\x2d\xbe\xa6\x23\x46\x4c\x52\xd0\x16\x5f\x51\x53\x7d\xad"#
#endif