A potential future and a hilarious ending. More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More MMore More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More
A potential future and a hilarious ending. More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More MMore More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More More