:::::::::    ::::::::::    :::::    :::::   ::::::::::    ::::::    :::::  
 :OOOOOOOOO:: :OOOOOOOOOO:: :OOOOO:  :OOOOO: :OOOOOOOOOO:  :OOOOOO:  :OOOOO:  
  :::::::::    ::::::::::    :::::    :::::   ::::::::::    ::::::    :::::  
::::::::::    :::::    :::::   ::::::::::    ::::::    :::::  
  :::::::::    ::::::::::    :::::    :::::   ::::::::::    ::::::    :::::  
 :OOOOOOOOO:: :OOOOOOOOOO:: :OOOOO:  :OOOOO: :OOOOOOOOOO:  :OOOOOO:  :OOOOO:  
  :::::::::    ::::::::::    :::::    :::::   ::::::::::    ::::::    :::::  
 :OOOOOOOOO:: :OOOOOOOOOO:: :OOOOO:  :OOOOO: :OOOOOOOOOO:  :OOOOOO:  :OOOOO: