Your boundaries are not all the same length ... some have three dashes on the end, some five. In Jason Hunter's multipart reader he says the actual boundary in the data is two dashes longer than the one in the header. On the front!
What errors do you get?
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi