Distributed constrained optimization via continuous-time mirror design