/// <summary>
        ///
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static JTActiveSafetyPackage Deserialize(ReadOnlySpan <byte> bytes)
        {
            JTActiveSafetyPackage           jTActiveSafetyPackage = new JTActiveSafetyPackage();
            JTActiveSafetyMessagePackReader reader = new JTActiveSafetyMessagePackReader(bytes);

            jTActiveSafetyPackage.FH_Flag  = reader.ReadUInt32();
            jTActiveSafetyPackage.FileName = reader.ReadString(50);
            jTActiveSafetyPackage.Offset   = reader.ReadUInt32();
            jTActiveSafetyPackage.Length   = reader.ReadUInt32();
            jTActiveSafetyPackage.Bodies   = reader.ReadRemainArray().ToArray();
            return(jTActiveSafetyPackage);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="package"></param>
 /// <param name="minBufferSize"></param>
 /// <returns></returns>
 public static byte[] Serialize(JTActiveSafetyPackage package, int minBufferSize = 65 * 1024)
 {
     byte[] buffer = JTActiveSafetyArrayPool.Rent(minBufferSize);
     try
     {
         JTActiveSafetyMessagePackWriter writer = new JTActiveSafetyMessagePackWriter(buffer);
         writer.WriteUInt32(package.FH_Flag);
         writer.WriteString(package.FileName.PadLeft(50, '\0'));
         writer.WriteUInt32(package.Offset);
         writer.WriteUInt32((uint)package.Bodies.Length);
         writer.WriteArray(package.Bodies);
         return(writer.FlushAndGetArray());
     }
     finally
     {
         JTActiveSafetyArrayPool.Return(buffer);
     }
 }