public override void FromBytes(MySqlPacket data)
        {
            ProtocolVersion = data.ReadByte();
            ServerVersion   = data.ReadString();
            ThreadId        = data.ReadInteger(4);

            byte[] seedPart1 = data.ReadStringAsBytes();

            if (data.HasMoreData)
            {
                Flags = (ClientFlags)data.ReadInteger(2);
            }
            ServerCharsetNumber = (int)data.ReadByte();
            ServerStatus        = (ServerStatusFlags)data.ReadInteger(2);
            var serverCapsHigh = (uint)data.ReadInteger(2);

            Flags         |= (ClientFlags)(serverCapsHigh << 16);
            data.Position += 11;

            byte[] seedPart2 = data.ReadStringAsBytes();

            if ((Flags & ClientFlags.PLUGIN_AUTH) != 0)
            {
                AuthenticationMethod = data.ReadString();
            }
            else
            {
                AuthenticationMethod = "mysql_native_password";
            }

            EncryptionSeed = new byte[seedPart1.Length + seedPart2.Length];
            seedPart1.CopyTo(EncryptionSeed, 0);
            seedPart2.CopyTo(EncryptionSeed, seedPart1.Length);
        }