Voices from the Edge of Consciousness
An exploration of hypnagogic and hypnopompic hallucinations—the voices and visions that occur in the borderlands between sleep and waking.
Est. 2026 — Crafted in plain text
A quiet interface for loud ideas — composed entirely of text, light, and restraint.
Built with Astro, Tailwind CSS and TypeScript. No images, no video — just animated ASCII, tuned to respect your motion preferences.
.. .
+.:-. : .
-.BX@ ..... . .
N.+#B . =:.... .
M . O: +-:-.. . :*.
X . . #+-=.. . . B
% %@#=+-..... %O .
X+%O0#+=:.... . .
X+N0*-..... . . .
+N0*-.. . . = .
-##MMN*:. . . . . .X
:#0XOXXN: . . .
=@BW%*%BW- .. *
%*=@M#:X XB+ -. @ .WX..
O-..N#=.0#OX0:.==..X .#= . .
OB..:O.O.. XXX@+...B%*%WXX %
O-. .+ N :. XN0*....::. X X
O:O . X =.. WN0+....: .. N
N0.: X +... 0. . :.. @.
MW--. ... @ =:... - -
WO@=.. .:% @ .
XM0=.. .... % .
XWO+:. .:.. :
XM%=.. .:.. X +
XXO#=.. .:..0. .-
XBO#=:.. .::..= X .:%
XBN%+-...--..-. M. .=@
XXM0%*=+*+--=.. +. ..*@
XXXWN00@@*##+:.%=..........=%N
XXXXXBMO0@%*+%@%***++++*@NB
:*.: *XXXXWNO0OMWWMMNNNMBX
O*-. . XXXXM XXXXXXXX.#
:W-.- . ..W*..
:WN. = #. . ..XW0
.XX.. . @. . .#
. .MX.- - :X+. =
.0+X.*+:@ M+. = .
.:NX@X. XX-.: + # .
.::... XX*0#
.: .--... .
B - :+=:... . .
WM W . . %#=:.. .:
BO@N* . ++M0#=... @.
O M0 .:=@XW0#=..... N =:. .
XB X+..-#N.XXO%+-:.....:NO#. . . .
XB W.=+X XBO@#*++*@NOW+. X. - .
NN%X XXX XX....NX.
XB++. +.-
X=0+== =
=#***:
.
O@. ::... .:.
NXX +: ... *+-=:
O+* :-:... :.=0N%
+0.+- .. .. # XX#
#*#-.*: .. = -X W.
%%*-:.#. . -MXX.
O@@=-+ 0. .. # +0B.
@@O%=@= 0- +.0:.
+%#O#%:# .*. .%=-#
N%*0*@:+: %. .. .+#0
XN+*%*0=@ %:... 0B
XX%+@=N+M.+=:.
:XXX#+.M#X===-..:*OBN. .
@WONX0-B%X#+==+%X@+=:: .
=%.:O#XXX0%W000OB X.-. .
X= .M@+XXO#*XXXMMOX : .
*-B XO#BX0*+=-=0%*:X -. .
% W@+ --. W0%=N . .
+.. .%. BN@*N ... .
0*:... : .BN@O..... . .
M%-..=%=+%- .:-0#.... :
B0*--O0- . =
XN%+#NO%:. ...... .=
XXO%0M0.OB. .::... .=
XBNMW%.= -. :-:.. .:#
XXXB0W%.O-..=+--... ...#
XXXWXN*X#-=**+=:... ...-*O
XXXXXNNW@#@%#*=-.... ...:+%N
.XXXXWXBNNO@%*+=-:......-=#0W
=:. XXXXXXXBMO0@#**+===+*%OWX
*-. XXXXXXXXBMNOO000OOMWX
W*=. . XXXXXXXXXXXXX..
.X*+. @+. . . . . .=-
%@=. M#. . : . XX0
.X#0#@X@: . ..*XX*
. 00%#*-M+.- . . :XNMXX#+
MN@#+-.XO= . % .XXNNBB
.XM0%+-..X%=-... ..M .-XXXX
M . XBO%*=:.. XMN##%W .#
X# . XM@#+-... :
-.. :..XBO%*=:... .. .-
X*##0NO XM0%*=:... . .%
XMO%*=: :
XWO@# . .*
XW%-. . . =
ONN# . ..@
0%0% . . . :#
WO@@# % . .+@
W+. 0%+. ..#.
WMM B%+.+N
WWM.0**
N00M
. ..
-.... ....
#==*%#-. ..... .
@+#WXXW- ::. .. ...
0*0-N0 N. :- .... . %B@.
O+@=OX@ ::........ : X*.
W+.. :X:+==:.:... XX %.
X% ::#+-=-.... . %.+=
X:: **=*=:... .%-
X:X+-@*#*=:... . . M
X*N-@%%*=-..... B
OO-%0%*=-.... .
-00=@0%*=-.::.. . .
@#%*@O@#+-:-:... . . .
0@0N+O0#+-:-:...... .. .
#M@NX=O0%+:........... . .
M0+*#+MO%+:........... ... . -.
O-::=%WWO#=... ..... . .* .. .:
0N:-:#XNXXXN+:. ........+. . +%
MW#*.-:0BO@NX0=. .....:..# .. .+-+.
NBB.=-+OWN@0OWX#.. ..:-..0. .# *=+. .
OO+...+NWO%X:. X0-. ..=+-.O- .M X+=
O0=W =.-N0X@=X..XB#... %#+=X:...# W-...
XMN-- :.#OXNO.:...XXO@XO@#*%XMWX....X*= ..
0X.0. .==X.++=:::@XBMN0##%@+#*=-=-0# . :
WOB.@. X 0#*#.*XWMO@**## 0%%..B :.
XBO%.. X ..+*.. .
XNN=:. . ..+. *
XXO@+. ..N- - .
XBN*:. ...* .
XW@=.. ... . # .
XN#-.. .... . .*
XXO#=:.. ......O . ...#
XXO%+-.... .::::++.W-. ....:+0
XXM0%+=:...:==+%-.. N-...:-=*0B
NXXWO@%*++*#%@*#*+=M0%%%0NWX
0#N0XXXWWMMWBMMMMNMWXXX .
: :@WO.= - XXXX :
O-..X@0 # = . .
. . X%0 = : . + ..
O+ B0@.@ : @. . .
. XB.M X. -X*.. - .O
0+. N#X..+..* X0+#-@ .
N.. ..WX*% :.
.. .:-..... .-
@ *+-:..... ..%%..
. -N0#+-:.......+0W=+
0+. . XW0%*+===+#O XOO=-.
B#. . * XWNONW XW0*.
.. .=* XXM#. # #
X#WM. .# XX0=:*M
W W..=O XXM# NW
#
...
-:...
..
.
. ...
- .+-. .
+. .@X@. .
%. % # .
%. .XN0. . +.
0%. * OO# . =
W0: .%. X* *..
%XN=..#. : ..-.
N@B%::+. .. ....
O%XM#==.. ... .:.
M0%#XM@#- : .. .:
M0%##XXW0- .. .-
N@##*WXXM :. ..*X
NN@#**++-.. :. .....:
#N@#**+=-:. : :XNXXB%*%
BN0%#*+=-:. . ..:: XXXX%
BM0%#*+=-... . ... .*M*+
BWO@%*+=-.... . ..= = -.
XBN0%#*=-.... ..: .# .
XXMO@%*=-.. ... .... +@ ..=.
XBN0%#+-.. . . .:.* :
XXWO0%*=... . . .@O: .
XXBMO@#=:... . :
XXBMO%*-. .. . .N
XXXBN0%+:. . ... +
XXXBN0#+:. . .. ...O
XXXBN0#=:. . .. .=#
XXXBN@#+-. . .-%
XXXWN@#+=:. .-% .
XXXWN0%*+-:....... ...=@ *. .
M0XXBMO@%#+=-:......:=#O .% .=.
W0#XXXBMN0@%#******#%OB ..* +
BO%+-XXXXBWMNNOOONMBX ..% = .
XN@*=:.* XXXXXXXX *=.%:+..
XM0%*-...= 0:.. .=O#O#*
XBN@#+-.. - N-.. . .N.XXXXB
XMO@*=:.. W*:. - -.% -
XBN0*=.. X#+=#B .#
XWO%*=:.. .-
XXBN@+:... .-O
XXW0#=-. . .+O
XXN@*-..:.
XXN@#*=. ..
XXM0%=..-. .
XXM0**+: :. .. .
XBO@+:.=: .=. #
XBN%%#+. *-. =*%
XMO0#-%#-. #
# . .X%#+-+-...... . :-
% -##===....... . . XO
O %*+-....... . .*==
X- =O%*-........ .. . =O.0
M.**O%=:.. .. . = % +=O
XM:NO#+-.. . . : . . +
X+M@NO#=.. . : .
#*0WXXXN*. . + .
-**W@#%WXX#. . # .M
:+*M%*+#0XX%: .. *. .-:. . +B
::+%M%+**XXXX@=. .. *. .-BXXM#.. X
=-#0N#+X.. @XXN%-. ..-. *+ .:0X.
:#.=OO*%-.**+*XXXWMMW+-.. X=....-*NBX* .
.:.=@O+0@:. =XXXX@#=.. XXWO@0NXBX X.
%=.=.:@.@ . XWO@#=.. ..XXXX*. =NB
-0 ..* X ... @XO@#+.. ..*- NO X
*O. .. X .... -.O@#=.. ... . .B
0#.%. WWM =... : 0#. . .. O .+ .
+N..:. X -... +0# . :.. 0 .
OX=.. . ...+. -:... .#.=
NO@#-.. 0O 0 ::. :=*-
MO+*:.. .....X= . %# .
XM@*:.. ...... = .
WBO*-... ...... . .
WN#=:.. ...... . .
XM@*-... ...... - : :
XB0#+-... ..... @#. .+
XM0#+-... ..:... : W .-
XXN0#+-.... ..:... .. M. ...*
XBM0%*=:......::.. .. O- .:*
XXMO@#+=:..:--:...:.. .*. .+*@
XXXBM0@#*+==++=-.-=:.. .#-. ..=@0
XXXWMO0%%%%##==++=-...**-...............:+@O
XXXXBWMNOOO@####*+=-:=#*=-::::......:-+#OM
XXXXXXBBWMO00@%#*++*%@%##****++++*#%OMB
@@XXXXXXXXBMNO0@%%%0NNNNOO000000ONWX
-... BXXWMNNNNWBXXXXXXXXXXXXXX
O-%. . MXXXXM +XXXXXX.*:
%-...: . . +
*0#.- - + +.. . ..O+.
N%=M.O . #. . ...BO#*
@-O.O . @:. . . ..=%O
. N=N.N + -M=.. .
-. .@X.X. X. . X%-. : . =
X#=:= N:..* B#-. . . =
*.. .#N=X+...-. X@++.. - - .
........ O*-..* .#
........ WX%-=+*
.::..... .
+. . .--:.... .
NO . . :==-.... .
N %. .. . :.*+=:.... + .
N N : *. %#+=:... ..
#MO# .= +..N0%+-.... % - :
XWMO% .+ +:@MW0%+-.... %. ...
0 0# .+ +=O=XW0%+-..... .W0=*=.. .
BB N* ..* *#N% BO%*=:...........:N@0#=. .
. W . =+#+-:....... - XO.
# ::*%*+-:....... W#X.
W+ B .##%*=-:...... 0%OX.
XW+ W=.#%%*=-:...... .+..
XX# 0.#@%*=-:..... % .
XX+M.#@%#+-:..... ..
X#M.#@%#+=:.... =
*%O:+@@#*=:... . . +
%#==-@@%*=:... . . #
:0@-%:0O@#+-... . .
:#+:O-ONO0@#=.. . = .
--+::X-OMNBXXM%+.. . -.
-=-.=@=0M0@OXXXW%-. . . = ..
-%..+.%%N@*++*0XXN*.. .. + .##.
@:*....W#N@++++*@OXB%:. . .. *. .0XO+. .
.*.=..=##O%*+*.=WX%XX@=. .... #. .=X....- .
0O.-....#0%*+=X.. XXO*.. .:....%. .% ......
OM. . ..%@%*=X+: BWONXXW@+.. .#-:...M= .-O X ...
N*= .. .=##+B%+ O+ XXWO%#%B*=-:..XX=..:=0XNXB X...
X:O . ..+#=*@#%: 0XXXXB%*+-:..-XXXBBX WB X ..
M:@= . :+=ON.: ... OXMO0%#+-:.:-=+%# .W . .
@+.0. . .:-.W. ..... -MBO@%#+-:.:-=*#... %=.
%N..@ .O.X* ::.......0XO@%*=-..:--# ...... +. .
OX=..+ XX .=-......*W0#=. .-+ :-......*=@ .
N%M. . XM ===: ..**: .. -=::: ..# .
@%M%. .. N . :. .. . W .
MW%N=.... ..*#=. - . .
XN@%#=-.. ....N0+. . .:
XWO@%#-.. ....%: . ..
XMOO#=.. ... XX. .B :
XXMN%+:.. .. # X +
XBW@*-.. . . .
XXXO#=:... .... * .
XXM@*=:... ..... # X .=
XXN@*=:... .......*...X .-
XBN@#+-.... ......-.. X- .-#
XBN@#+-:.... ......=.. M*. ...=@
XXM0%*+-:.............:.... .%:.. ......-#O
XXWN0%*+=-:......:---=.......%+:.......:-=#0W
XXXWN0@#*+==--=++**#====-::.%@*+====+*#@OW
XXXXWNO0@@%%%@@@@%#####**+#OO0@00ONWBX
WXMXXXXXXBWWWWWMNOO0000@00OWBXXXXX .
*@OM#+*...XXXXXXXXXBBWWWWBXX . .
M*@XN*..- .. MXXXX .
%N*W@@.# - . . . .
-NX@+=- * + : ..
. XO-O. = -. . . . .
#+:. .M=O.0. % @ .:. .
. X#N.N % % X+. . .
*: BB.W. # 0 . O-. *
M#-.. M-X..@ X. . X@=.... @ # .
W#+.X. @...= M#+#..--
++.. .W=-N...XO WN
0=.. .... -
. ...... = ..
=:.. ....... =.-.
%# . ....... ** ..
An exploration of hypnagogic and hypnopompic hallucinations—the voices and visions that occur in the borderlands between sleep and waking.
A traveling exhibition of mirrors that show not our reflections, but other places—other lives, other choices, other versions of reality.
[||||||||||]
[||||||||||]
[||||||||||]
[||||||||||]
[||||||||||]
[||||||||||]In a world where the sun is dying, people gather each evening to witness the final moments of daylight—and what they see in those fading rays.
.--.
./ \\
| () |
| |
\\.__./What neuroscience reveals about the architecture of dreams—and why the sleeping brain may be more conscious than we assume.
A novelist discovers that the manuscript she's struggling with is progressing without her—scenes written she doesn't remember, plot twists she didn't plan.

Entries from a diary kept by someone who walks between worlds—entries written while sleepwalking, discovered only upon waking.
.---.
/ \\
| ( ) |
\\ /
'---'Why empty malls, abandoned hotels, and transition zones evoke such profound unease—and what this reveals about the human mind.
A room that absorbs sound so completely that silence becomes palpable—a space where physics breaks down and something else takes its place.
_______ | | | | | | | | |_______|
Somewhere between the pages of written literature, there exists a library containing every book that was never completed—and some that should never be read.
_______ | | | [][] | | [][] | | [][] | | [][] | |_______|
A recurrent dream shared by strangers across the world—a city that exists only in sleep, with streets that remember those who walk them.
***************************************+===++++=--+***************************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ********************************+==------::::::::---==+********************************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++==##++++++++ ****************************+=-------::::::::::::.:-----=****************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++=+#%++++==+%* *************************+------::::-::::.::.:::-:-:------+************************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++==*%%++++==*%*+ ***********************+---------::::::::::..:::----=--====+*********************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++===#@#+++*##@@*++ **********************----------::::::::..:::---------======*********************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++=-+%@*++#%#%@#@*++ ********************=----------:-----:.:--:::--====----==--=+*****************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++===*@*+#@##@%%@*+++ *******************=-==-=---::::::--:.:---::----:-=+==--=====+***************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++==+@#+%#*%@%@%+==== ******************=---:---====--::.:::::-::-==**+=--=++===+++*************************************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=-+%@%@*#%%%@*====== ******************=-=---=---=+*++++*+++==========*##+=====++=*************************************************************+++++++++++++++++++++++++++++++++++++++++++++++++++++++=+=--+%@@+#%#@@@%+===== ************+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+**************************************++++++++++++++++++++++++++++++++++++++++++++++++++++++====--+%@%+*@@@@@@+====== ************+%###***#**#*+#%*%**###+%########%*#+***+%%#%%**##=**+%**##++*#**#**%%+************************************+++++++++++++++++++++++++++++++++++++++++++++++++++========--+%#==*%@@@%+======== ************+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+***********************************++++++++++++++++++++++++++++++++++++++++++++++++===========--++==*%@@@%%+========= *****************##*=--=-=*#****#%%%%###*====++***++*###+======+#***************************************************+++++++++++++++++++++++++++++++++++++++++++++++============-=---=*%@@@@@%+========== *****************##**==#%%*+=---==++++==---===-==+++++===++===-=*#**************************************************+++++++++++++++++++++++++++++++++++++++++++++============----=++#@@@@@@@#=========== *****************##**++%#++=---======+*+++++==-----::--=++====-=-+***********************************************+++++++++++++++++++++++++++++++++++++++++++++==============---=++#%@@@@@@@@*=========== ******************##***%%%*--====+====+**%%%%%%%%%%#*+=-::--=+=====********************************************+*+++++++++++++++++++++++++++++++++++++++++================---==+*#%@@%@@@@@+============ **********************+#*%%+==++=++======+**%%@@@@@%@%%#**=-::-=+===*******************************************++++++++++++++++++++++++++++++++++++++++++==============---===+*##%@@@@@@@%============== ******************#**+***#%*+++*+=======+++*##*####%%@%%%%%%%#==-===-****************************************++++++++++++++=:.=++++++++++++++++++======------:--::::::--====+**#%@@%@@@@*=============== *************************+%#***++======++*##%%#***++++*#++*%%%##+=----+**************************************+++++++++++=:.:.:......................:::::-::----------===++**#%@@@%%@@%+================ *******************++*%*=-=-+**++++====+*#%%%%#*+++++++++**===++=-::---=********++=:.........::-=+++++===---------::........:..................:::::---=-===++++*####%%%%%%%@@%%##@@@#================== ********************++*+*%%%++++++++++*#%%%%%%#*++===++++*+++-:....::..:::=+-................................::.......:::::=:::----:::::::::-------=====+****##%%%%@@@@@@@@@@%#%%%%*==============--==-- ********************++*+++**=*%#*++++*%%%%%%%%#***====---==++-=++=---==-:........:.::::.:::....::::...::-=------::::::::::--::------==-----====++++++**####%%%%%%%%###%@@@%%#++===============---------- *********************+++++*##%*##*+**%%%%%%%%%#***+=-==--::::--=-::::...:......::::--:---:::::-------==+++++===-------:::=-::------=-=======+++*****######%%%%%@@@@%#*+==================--------------- *********************++++*#####%#++#%%%%%%%%%%%#**+=-===-.:::.........::::::::-===++===------==-=++==+++*****+++===-----=---:---:-====+*******####%%%%%@@@@@%%*++====================------------------- *********************++++*#%%#**+*#%##%%%@@@@@%#*+++===--:...........:::::---===+****++===+==-=+=--==+*+***++*##*++===-*++=======++**######%%@@@@@@@@@%%##++===================------------------------- *********************+==+#**++#+*+%%%@@@@@@@@@@@*+++-----:....:......::::-====++**##*+++++==+=----+**++*+=*###****+++=%%#########%%%%%%%%%@@@@@@%%%#*++=====================---------------------------- *********************+-=**+*++*+*+@@@@@@@@@@@@@@#+==--::::.::::.....::--=+===++*****+++====----+*#+==++=#%###**++++++%@%%%%%@@@@@@@@@%%%%###**++=========================------------------------------- *********************=-=***#***+*+%@@@@@@@@@@@@@%==--:.::::::--::::---======++**#**+------:-+%%*+=*+=*@@###******=++%@@@%%%%%%@%%##***++==============================---------------------------------- *********************=-+###**#*+**%@@@@@@@@@@@@%-..:--::--:------------======+*+-:-----:-*@@%=+**=*@@@%##+**#**+===@@@@@@@@@@@@%++==================================------------------------------------ *************##******+=**%@*#%#*##+%@@@@@@@@@@+--...-:::::::-------------===-:---::::-*%%+++***=+@@%##++##%***++=*@@@@@@@@@@@@@#++===============================--------------------------------------- *************##**##***##%#@*##*###=+%@@@@@@@@*-::::-::::::::::::::-:---=------::..-#%%=-=##%**%%#%*+=#%%@***+++*@@@@@@@@@@@@@@@*===============================----------------------------------------- **********##**##**##*****#@#*#*##*++*==#@@@@#=:::::--::---:::::::----:---::...:+#%=:=*#%###*#**+++*%%%*++*+=+*@@@@@@@@@@@@@@@@@*=============================------------------------------------------- ***********##*##**#####***%%*#**#*+**==+#@@#=-::-:--::::::::::::-::::::...:+#*---+#%%#%#***++==*%#**++*+++*%@@@@@@@@@@@@@@@@@@@+============================-------------------------------------------- ***********########%###****%+***#*=++==+**+-:::::::::.:::::::::::::..-+++-::-*#####*****++++*#**++*++*#%@@@@@@@@@@@@@@@@@@@@@@@*=========================----------------------------------------------- ***********###%####%%%*****++*+%#+=+===*#=----::::::::::::::::.:-==-:::-+*#*##********+++*++===++==+%@@@@@@@@@@@@@@@@@@@@@%%##%*=======================------------------------------------------------- ************%####%%%%******++**%*=====+#+---=--:---::::::::---:.::-==+++*++++++++++++++=---=+======*@@@@@@@@@@@@@@@@%#**********======================--------------------------------------------:-:::: ********%###%######%#*****##+++**+=+=+*=-:---::::::::::--::::----====--:::------------=+++---=====%@@@@@@@%#+%%#*+++++*********#===================----------------------------------------:-:-::::::::: *********#%%#######****#*###*++**====+-:-::-::::::::-=-::-:::..:--====--:---::--+*++=----===-==+%@@@@@@%===#@*+++++++++********#==================---------------------------------------::::::::::::::: **********###################++**=+===-::--------::-:--:::::.::-----===+*%%%%*+=--===--=--=+*@@@@@@@@@@=+%@#*+*****++**********#=================-----------------------------------:::::::::::::::::::: ***********#%%#%%%%%#########++**++=--::---::-:---:--:::-====+#%%#**+=+=====+======++##%@@@@@@@@@@@@@%#@@**++++***+************#==============----------------------------------:::::::::::::::::::::::: ***************######*##*####*=**+=---:::::::::---=::=-::..:--===+#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*++**+++******+**********#+============-------------------------------:::::::::::::::::::::::::::: ******************************++*=----::::------=-==----..:---=+++**#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*+++++++*******************#+============------------------------------::::::::::::::::::::::::::::: *******************************#=----::::.-:::==++=----:::--==+++**####@@@@@@@@@@@@@@@@@@@@@@@@@@%*+++++++++*++*+***************#==========------------------------------::::::::::::::::::::::::::::::: *******************************====----=-:--:+=++------==+++=++****#%%###%@@@@@@@@@@@@@@@@@@@@%*+++++++++++++=++++++++**********%========-----------------------------:::::::::::::::::::::::::::::::::: *******************************+=========---==*#=======+**+++*#%%%@@@@%%%##%@@@@@@@@@@@@@%*+++++++++++++=+===+++++==+++++*******%=======-----------------------------::::::::::::::::::::::::::::::::::: *******************************++=======--:-++**====++++****#%%@@@@@@@%%%######%%%%##*++++++++++++++++++==+++++=++++==++++******%=======--------------------------:::::::::::::::::::::::::::::::::::::: ********************************++++===-:-=+++#==++++*****##%%@@@@@@@%%%#%###**+++++++++++=+++++++++++++=+++++++=+++=++++++*****%+====----------------------------:::::::::::::::::::::::::::::::::::::: ***********************************++=--:++*=*#=++++***####%%@@@@@@@@%%#####**++++++++++++=++++++++======+=++=====+++++++++++***#+==---------------------------::::::::::::::::::::::::::::::::::::::::: ***********************************++=-=#+=#%*==++**##%%@@@@@@@@@@@@%######**+++++++==++++++==+++===============++=+++++++++++**#*----------------------------:::::::::::::::::::::::::::::::::::::::::: ***********************************+=--=+%%=--==+++*#%%@@@@@@@@@%**#****##**+++==+++=+=++++++==================++++++++++++++++*#*---------------------------::::::::::::::::::::::::::::::::::::::::::: *********************************+=======+==--=====++++*****++++********##**++++=+++++++==================+=====++++++++++++++++**-------------------------::::::::::::::::::::::::::::::::::::::::::::: *********************************+===========------=---=====+++*##**++******++++=+++==================+=++=++===++++++*+++++++++**-----------------------:::::::::::::::::::::::::::::::::::::::::::::::