At around line 97, if 'value' includes a colon, then when the context is split up based on the colons and joined back together again, the components in the context string will pushed to the left by the new colon added by 'value'
This part is a duplicate of PUP-1747. I'm going to mark this as a duplicate.