Write a python program that shows a graphical animated rendition of 20 balls bouncing inside a spinning hollow heptagon: - All balls have the same radius. - All balls drop from the heptagon center when starting. - Colors are: #f8b862, #f6ad49, #f39800, #f08300, #ec6d51, #ee7948, #ed6d3d, #ec6800, #ec6800, #ee7800, #eb6238, #ea5506, #ea5506, #eb6101, #e49e61, #e45e32, #e17b34, #dd7a56, #db8449, #d66a35 - The balls should be affected by gravity and friction, and they must be contained within the area of the heptagon by physical collision detection, making the balls bounce off the rotating walls realistically. There should also be collisions between balls. - The heptagon is spinning around its center, rotating a full cycle once every 5 seconds. - The heptagon size should be large enough to contain all the balls. - Do not use the pygame library; implement collision detection algorithms and collision response etc. by yourself. The following python libraries are allowed: tkinter, math, numpy, dataclasses, typing, sys. - All program code should be put in a single python file, with shebang for execution from bash shell.