public static BloomFilter Load(string filename, bool compressed = false)
        {
            if (string.IsNullOrWhiteSpace(filename))
            {
                throw new ArgumentNullException(nameof(filename));
            }
            if (!File.Exists(filename))
            {
                throw new ArgumentException(nameof(filename));
            }

            byte[] fileBytes = new byte[0];

            if (compressed)
            {
                fileBytes = ReadCompressedFile(filename);
            }
            else
            {
                fileBytes = File.ReadAllBytes(filename);
            }

            BloomFilter result = BinarySerializer.Deserialize <BloomFilter>(fileBytes);

            result.InitializeHashProvider();
            return(result);
        }