public static byte[] Combine(this byte[] bytes, params byte[][] withBytes)
{
var combinedLength = bytes.Length + withBytes.Sum(b => b.Length);
var to = new byte[combinedLength];
Buffer.BlockCopy(bytes, 0, to, 0, bytes.Length);
var pos = bytes.Length;
foreach (var b in withBytes)
{
Buffer.BlockCopy(b, 0, to, pos, b.Length);
pos += b.Length;
}
return to;
}