public static MServerTable FromFile(string filename)
        {
            MServerTable result = null;

            if (File.Exists(filename))
            {
                using (var stream = File.OpenRead(filename))
                {
                    result = new XmlSerializer(typeof(MServerTable)).Deserialize(stream) as MServerTable;
                }

                using (var stream = new MemoryStream())
                {
                    result.Save(stream);
                    result.InflatedData = stream.ToArray();
                }

                result.Hash = Crc32Provider.ComputeChecksum(result.InflatedData);
                result.Compress();
            }

            return(result);
        }