^^^^^^^^^^^########^^########^^^^^^^^^^^ ^^^^^^^^#####^^^^^^^^^^^^^^#####^^^^^^^^ ^^^^^^####^^^^^^^^^^^^^^^^^^^^####^^^^^^ ^^^^^###^^^^####^^^^^^^^####^^^^###^^^^^ ^^^^###^^^^######^^^^^^######^^^^###^^^^ ^^^###^^^^^######^^^^^^######^^^^^###^^^ ^^^###^^^^^######^^^^^^######^^^^^###^^^ ^^###^^^^^^^####^^^^^^^^####^^^^^^^###^^ ^^###^^^##^^^^^^^^^^^^^^^^^^^^##^^^###^^ ^^###^^^##^^^^^^^^^^^^^^^^^^^^##^^^###^^ ^^^###^^###^^^^^^^^^^^^^^^^^^###^^###^^^ ^^^###^^^####^^^^^^^^^^^^^^####^^^###^^^ ^^^^###^^^######^^^^^^^^######^^^###^^^^ ^^^^^###^^^^^##############^^^^^###