private static Stream CopyToMemoryStream(Stream s)
{
int size = 100000; // large heap is more efficient
byte[] copyBuff = new byte[size];
int len;
MemoryStream r = new MemoryStream();
while ((len = s.Read(copyBuff, 0, size)) > 0)
r.Write(copyBuff, 0, len);
r.Seek(0, SeekOrigin.Begin);
s.Dispose();
return r;
}