Make Shipping Software Painless

Make Shipping Software Painless

Indent gives you a team of purpose-built AI agents that review code, fix errors, query data, and respond to incidents, so you can stay focused on building as fast as you can.

.

. . .. .. .....

. ...

......-...............-..-----------------------+-+-+-+++++

. . ..............................-.-.---------+-+---++++++^~

.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n

.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n

.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n

.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n

.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o

.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o

-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o

.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o

-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o

.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o

.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o

.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o

.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o

.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o

.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o

--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o

--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o

--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o

--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o

--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o

--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o

--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo

--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo

-+;***********^^**^^*******************************;;;;;~~~~~oo

++;;;;*;;*****************************************;;;;;;~~~~~oo

++;;;;;***;*************************************;;;;;;~~;~~~ono ------..

++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .

++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....

+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .

+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .

+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .

+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .

+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........

+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**

+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn

^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno

+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo

.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo

....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo

......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo

.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono

....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn

.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66

........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^

-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^

++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++

.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++

-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++

*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++

.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-

.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------

.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------

.

. . .. .. .....

. ...

......-...............-..-----------------------+-+-+-+++++

. . ..............................-.-.---------+-+---++++++^~

.------+--+--+++++++++++++++++++++++^+^+^+^^^^^^^^^^^*****;;;n

.----+------++--+++--++--+--++++++++++++++++++^^^^^^^^^^****~n

.----aauzzzvvvzvvvvvvvvvvvvvvvvvvzvvvvvzvnvvvvvvvvvvzaav^***~n

.+---vu188%633633333333333!6!33333!633!63663366666868$o;^***~n

.--+-oz88663!!!!iiiiiiiiiiiiiii!i!!!!!!33!!333336666%88^+**;;o

.++-+n~6uaaaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaua6$++***~o

-++++on3aavvvvazvvvvvvvvvvvvvvnvvvvvvvvvvvvvvvvvvvvaa6$++***;o

.++++ov3aavvzzazvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvza6%++**;~o

-++++oa3zznvvvavvvvvvvvvnvvvvvvvvvvvvvvnvvvvvvvvvvvza68++***;o

.-++++ou3a1v!vvavvvvvvvniuinvvvvvvi!1vni!nvvvvvvvvvvza68^+*;*~o

.-++++o16aavvvvavvvvvvvni!vnvvvvvzunininzuvvvvvvvvvvaa66^+**;~o

.-++++oi8aavvvvavvvvvvv!1znvvnzvvinuav!n!nnnavvvvvvvaa66++*;;~o

.-++++o!6aavvnvavvvnaininvinnin!niu1vn!3nnivvv3nvvvvaa86^+;;;~o

.-^^++o!6uavvvvavvvnvvuavnioo!!nvi!un!iia!3uo!nnnvvvua33^^;;;~o

.-^^^+n!6uavvvvuvvvvvvvvvvvvvvnvvnnnvnvvvvvvvvvvvvvvua88^+;;;~o

--^^^+ni8uuzzzzavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua88^^;;~~o

--^^^^o18uavvvvavvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvua6$^^;;~~o

--^^^^na8uavzvvaazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaa8%^^;;;~o

--*^^^nz8uuv3!iao33naaaazzzzaauzvvvzvavzvvzvvvzavzazva6%^^;~~~o

--*^*^vv86!ii111uuuuuu111111iiiiiii!!!!!i!!!!!!333366688^^;~~~o

--***^n;868663333!36!!363!636!3866666666668688868386686.^*~~~~o

--*****+--...--....... .--+++++----.. .....--++++++++-+^~~~oo

--**********^^*^*^^^^**^^^^^*^^******************;**;;;;~;~~~oo

-+;***********^^**^^*******************************;;;;;~~~~~oo

++;;;;*;;*****************************************;;;;;;~~~~~oo

++;;;;;***;*************************************;;;;;;~~;~~~ono ------..

++;;;;;*;****************************;********;*;*;;;;;~~~~o~oo .

++;;;;;;**********************nonooooooo~~o~o~n~z1auuaao;;~~ooo ... . . ... ....

+^;~~;;;*;*;*;*;;*********;**;~^^++-------------^..-+**n;;~~ooo ..... . .. . .

+^;;~;;;;;;;*;;*****;*;***;*;;;;;*;;;;*;*;**;;;*+++++++^*;~~ooo .-.. . .

+^;;;o*on;;*****;;**;*;*;;;*;;;;;;;;;;;;;*;;;;;;;;;;;;;~~~~~ooo -. ... . .. .

+^;;;on1u;;;**;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~~~~~oozzzzzzaaaazzzvo*.-*. .

+^;;;;;*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~ooo ....---.. .+-...... ..........

+^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~~~~~~~~~onnv+ ... .+^*;;;;;;;;*;;;;;**

+;ooononnnnnnnnnnnvnnnnvnnvvvvvvvnnvnvnnvnnnnoonnnnonnonoonnnno z~ -+nvvvvvnnnnnnooonn

^~nnvnnvvvvvvvvvvvvvvvvvzzzzzzzzzzzvzzzzzzzvznnnnnnnnnnnonnnnnn z* . ^+ovvnnvnnnnonnonno

+-- ^+- +-- ^-- ^-- *-- ^-+;v~~*au~;^i3;;^68;~+6$*;+%%;;+%$~ovn~88636!!!i!i1uuaaaazzzzvn* *n. ++ovvnnoooooooooooo

.......-11iz*u1uz*auav*aaav;zazn~zaavozaunouuunnauunnauunvaa1nvuu1ov111^nu11iuv++++++^*ii111u336avvvvv; ~- .+^onvvnnnonnnoooooo

....... +.--..1!---ui---a1+--a1^+-uu^+-z1**^z1;;*ai***z!***u!;**a6*;*z6**;z6;~;o+++++++*!3!!1u3!3zvvvvn* .; ..+^onnnnnonooooooooo

......o-^*+^-+au+-+zu++-za++-na++-oa+*-;u+~^;u+;^;1^;^*i^^^*1^^^^!*;^^i;~~;***v;++++++*36!!3iii1izvvvn* *-.-^onvnnnnoonnoooooo

.......i.+*~ono;^vu.+-^u.+^-z***-a~^*.zno;-uaon^uuoo^u1~o;11on;1i~o;11;oovnvno;vn++++++*3666!11naaaazzn+ .-.-*oznznnnnnononnono

....... ;1u1uu1u1uu%uuua6aaaa3aaua3zaaa!vauu!vuu1!v1uu!z1i1!v1uu3au11!u1iiiu1uuuuu++++++^zi18auia6686iz*. ...+ovvnvvnnnnnnnnnnn

.-.--..*333!!nooo!~oo~~~a6~~oo~~o~~~;~~~~~~~~~~~~~~~~~~;~~~~~~o8~~~~~ov%~~~o633ii!++++++^o8663!!zo~;**^+. -++-. n..-*a1366%6668668%66

........-----auuua%uauuaaauaazaaauaaauaaaaauaaaauuuuuuuu1uuaaauu8auu1uuu6uuuu!+++++++++++^^n~;*^^+++++++-.--.-~zz;^+-!-**^^...+^^^^^^^^^^^^^^^^

-+------------------+---------------------------------+------+-++++++++++++++++++++++++++^^o~*^^+++++--+-+----------.~~~ooo..--+++^^+^++^^++^^^

++++++++++++++++++++------------+----++-------+-+++--+-++++++++++++++++++++++++++^^^^^^^^*^~;*^++++--^^^+++--------~~~vnnnn...--+++++++++++++++

.~vvnnnnnooooonooo~~~~~~~~~~~~;~;;;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~oo~oooooooonnnnnnnzv~;*+++++^^^^^^^^^^^^^;~~~nnnvvnn ..--+++++++++++++++

-;nvzvvvnvnnnnoooo~o~~~~~~~~~o~~~~oo~~o~~ooo~o~~o~o~~~o~~o~~o~o~o~oo~ooonoonnvvvvzzzzzzuaazn~;^++++*~~o~oo~*^^***;onnvvvz1v--------+++++++++++++

*vvvzvnnnoooo~~o~~~~~~~~~~~~~o~~~~~~~~~~~~~~~~~~;~~~o~oo~;~~~o~ooo~ooooooooooonnnnnnnnvnvvn~*^++++;~ooooooonnonz1vvvz3a$in;...---++++-+++++++++

.....----+--------------------------++--++++-+++++-+-+++++++++++++++++++++++++++++++++++++++-++++++nnvnnz1annvva1v3a#ivo;^+. ..------+++----++-

.......--.-.--.--.....--.--...-...-.-------------.----------------------------------+---------+++++++++-;i$@@8zva@1zo;^+++-......--------------

.... .....................-.....-.......-.--..-----------------------------------------------+-++++++++++++++++++++++++---..... ....-.---------

Indent is building a suite of AI tools designed to genuinely help developers get things done, faster, with less friction, and more clarity. The mission is pretty simple: reduce the mental overhead that comes with modern software development. That means helping with everything from writing and reviewing code, to understanding data, to managing infrastructure and responding to incidents.

Instead of chasing one-off tools, Indent is building a unified, context-aware system that feels like an extra teammate, one that understands how your stack works, how your team works, and how to actually be helpful. It’s not about replacing devs, it’s about freeing them up to focus on what matters.

Agents for the entire dev lifecycle

Agents for the entire dev lifecycle

From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.

From code reviews to incident response, our AI agents handle the workflow so you can focus on what you do best: building.

“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”

“Indent has automated and assisted tens of thousands of tasks for our team and that number is only going up. We feel like we are in good hands, for now and the future”

Kevin Chu

Business unit lead / ViewSonic


.-=++*+++=:.
.-+++=---. :+#***********: ..
-****- :+=-. :==+#***+@##+***+.....:-=-
**#+**-.::=**-+ .==++*#************...:=-.
-*%@#***: .=+*+% :=++++*#***********-...
.=+******: .+#*:-*. :-+++++*%#*********#@@*
=+*******=*@%*+*+*= .-=++*+=*@%###***##%@@%.
.=+#*******%*+++-=#**- -+%%#%%#+::... .-=++++++=+#@%%%%%%@@@@-
:==+%#****#@%++***%@%#@- =%%@@%%@%% ==- :-=++++++++++++#@@@@@@@=
.++++=*%@@@@@@@@@@@@@@@#=: .-=#%@%*##@%%+..:.:++. .-=++++++++++*****++#####:
=###**+++=++***++++==+++*+. :===#%%#@@*@%%% .=* -=+++++###################=
+##******###*****###########: -++==*%%%%%%%%%%=.+%@= :+**########################*
.####**++***##*###*##******###- -+++==#%##%###%%%@@%%%+ #####*******##*###########**#+
+#######*****************#####=.==+++=-#%####%%%#%%%%%%# .*########********************##-
##############*#**###*########*==++++=--#######%%@%##%%# *###############*#**********####+
=##############################+==++=====--+#%%%%%%%%%#%%. .################################+
+##############################=-==+++++++==-==+#%%%%#+=+*+ =################################+
-###%#############################*******+******++++********=-=*###############################-
.-################################***************************#==*%%###########################*.
..:=###############################**************************#*=-:-*#%%%%#####################-
...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:
...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.
...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.
...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.
.:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.
.:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.
.::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.
::::::::::::::-::::::---===: .::::+##################*+::...=+++=--------------:::::-:.
::::::::::::--::::::---==-. ..:.::::--===++++==--:::::...:.-=++==------------:::::.:. .::.
.::::::::::---:::::---==-: ..::::::::::::::::::::::::::::::==+==-------=-::::::::. =*#=
--:::::::------:::---=-. .:::::::::::::::::::::::::::::.-====------==-:::::::: ::
.=+= :-------------::-==- .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=.. .
.::-. .-------==--=--==:. .-----------==------------: :::======++=----:-: .--:-=.
.:=-=+- .=+====+=+++***:-=..:. .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-. ......
*###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-
=%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.
+@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.
+@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.
=%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.
...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...
.. ...::-===-==++++==-=+***++**+++++***+==-:. .::-----:.:-------:::..





********** *********** *********** *****
****** ** ***** **** **** *****
****** *** *** **** ** *** *****
****** *** ****** ***** ******* ******************** * ****** ****** ***** ****** ****** *****
****** ** ***** **** *** ***** ***** *** ********** **** ***** ************* ***** **** *******
****** ** ***** **** **** ***** ***** ** ************ ***** ***** ****** ***** ***** **** ****
********* ***** ************ ***** ****** ** ********** **** ***** ***** ***** ***** *****
******* ***** ***** ******* ****** * ************ ***** ***** ***** ***** *****
***** ***** ***** * ****** ***** *** **** ****# ***** ***** ***** ***** ******
***** ***** ******* *** **** **** ***** **** ***** **** ***** ***** ***** ******* **
*** ******* ********* ** ** ************* ********* *************** ******* *********


.-=++*+++=:.
.-+++=---. :+#***********: ..
-****- :+=-. :==+#***+@##+***+.....:-=-
**#+**-.::=**-+ .==++*#************...:=-.
-*%@#***: .=+*+% :=++++*#***********-...
.=+******: .+#*:-*. :-+++++*%#*********#@@*
=+*******=*@%*+*+*= .-=++*+=*@%###***##%@@%.
.=+#*******%*+++-=#**- -+%%#%%#+::... .-=++++++=+#@%%%%%%@@@@-
:==+%#****#@%++***%@%#@- =%%@@%%@%% ==- :-=++++++++++++#@@@@@@@=
.++++=*%@@@@@@@@@@@@@@@#=: .-=#%@%*##@%%+..:.:++. .-=++++++++++*****++#####:
=###**+++=++***++++==+++*+. :===#%%#@@*@%%% .=* -=+++++###################=
+##******###*****###########: -++==*%%%%%%%%%%=.+%@= :+**########################*
.####**++***##*###*##******###- -+++==#%##%###%%%@@%%%+ #####*******##*###########**#+
+#######*****************#####=.==+++=-#%####%%%#%%%%%%# .*########********************##-
##############*#**###*########*==++++=--#######%%@%##%%# *###############*#**********####+
=##############################+==++=====--+#%%%%%%%%%#%%. .################################+
+##############################=-==+++++++==-==+#%%%%#+=+*+ =################################+
-###%#############################*******+******++++********=-=*###############################-
.-################################***************************#==*%%###########################*.
..:=###############################**************************#*=-:-*#%%%%#####################-
...::::+*###%#%##############++######**********************#####+=-::::--=+##%%%%%%%%%%%%%%#*=:
...:::::......::-==+***++----=+#######*******************#######+=-::::::::::::-:-----------:.
...:::::::::....:::::::::::--==#########**#***********##########+=--::::::::::::::::::-----::.
...:::::::::.:::::::::::::--==.:#############******############**+---::::::::::::::::------:.
.:::::::::::::::::::::::---=-..*#############################*+*+=---:::::::-::::-::::---:.
.:::::::::::::::::::::::---=-..:*###########################+.+*+=----::::::-::---::::--::.
.::::::::::::::-:::::::---==-. .:-*########################=:.++++=----:::::-----:-:::--:.
::::::::::::::-::::::---===: .::::+##################*+::...=+++=--------------:::::-:.
::::::::::::--::::::---==-. ..:.::::--===++++==--:::::...:.-=++==------------:::::.:. .::.
.::::::::::---:::::---==-: ..::::::::::::::::::::::::::::::==+==-------=-::::::::. =*#=
--:::::::------:::---=-. .:::::::::::::::::::::::::::::.-====------==-:::::::: ::
.=+= :-------------::-==- .:::::::::::---::::::::::::-. .:=-====--==--::::::.-=.. .
.::-. .-------==--=--==:. .-----------==------------: :::======++=----:-: .--:-=.
.:=-=+- .=+====+=+++***:-=..:. .:===*-==++++++++++++===*+-:-.:-:=+-:+*###*######**++**-:*#+***+**+===-. ......
*###***#*#**=-:=*=+#*****###******###*:=-==#*###=====:####*****####*#####+----+=*-=#***##**##**#**##***+:=##*####****++++++++===-
=%%%%%%%###+.==:+##*+*###%%%%########+-+*-+==%%##-#*-##+*#######%@%*#######+:=-*##==*###*##%%%%##*#%####-*##*####********+++++--:.
+@@%%#%%%%%%%%=-##%%%%%%%%%@%%%%%##*=-*#=:#*#%%%%*##=+%%%%%%%%%%%%##%%%%%%#==#++##*:+#%%%%%%%%%%%%%##%##*###%%%%####********+++==-.
+@@@%%@%@@%%%#-=#%%%%%%%%%%%%%%%%%%#%%##-=#%%@%%%###--##%%%@%%%%%%%%%%%@@%+-*%%%%%#:=#%%%%%%%%%%%%%%%%%##%%%%%#######*****++++=-:.
=%%##%%%######==##########%%########%##+-*######%%%%#.*##%%#%%%%%%%%%%%%##.+#%%%%%#+-##%%%###%###############********===+=-:::.
...:-:++==----=********+++***=-****#****###==##%%###%###########.######%#*=##**********#**********++++++++=----:...
.. ...::-===-==++++==-=+***++**+++++***+==-:. .::-----:.:-------:::..





********** *********** *********** *****
****** ** ***** **** **** *****
****** *** *** **** ** *** *****
****** *** ****** ***** ******* ******************** * ****** ****** ***** ****** ****** *****
****** ** ***** **** *** ***** ***** *** ********** **** ***** ************* ***** **** *******
****** ** ***** **** **** ***** ***** ** ************ ***** ***** ****** ***** ***** **** ****
********* ***** ************ ***** ****** ** ********** **** ***** ***** ***** ***** *****
******* ***** ***** ******* ****** * ************ ***** ***** ***** ***** *****
***** ***** ***** * ****** ***** *** **** ****# ***** ***** ***** ***** ******
***** ***** ******* *** **** **** ***** **** ***** **** ***** ***** ***** ******* **
*** ******* ********* ** ** ************* ********* *************** ******* *********