PiperOrigin-RevId: 322180317
PiperOrigin-RevId: 320320140
This is as straighforward as possible, more cleanup/rewrite to come. PiperOrigin-RevId: 319849713