..................................................................................................................................................................................................................................................................................................................
                                  ....................................................................................................................................................................................................................................................................................................................... .
                               ............................................................................................................................................................................................................................................................................''...............................................
                           . ......................................................................................................................................................................................................................................................................'',,,,,;;,,,'................................................
                         . ...................................................................................................................................................................................................................................................................',,,,,;;;;,;;;;;;;,'.............''................................
                       ......................................................................................................................................................................................................................................................................;;::::;;;,,,,,;;;;;;,,,'..........'',''''..............................
                    ......................................................................................................................................................................................................'''.............................................................,;;;::::;;::;;,,,;;;;:;;;,,,''.........'''''...............................
.......          ....................................................................................................................................................................................................,;;;,,,''...........................................................';;:::::::::::;;;;;;;;;;;;;;;;,'..'','....'''...............................
........        ...................................................................................................................................................................................................':::::::;,,,''......................................................,;;;:::::::::;;;;;;;::::::::;;;;;,,,;;,,'..........................................
'''''....     ....................................................................................................................................................................................................,::cccc:;;;;;,,,'.................................................',,;;:::::::::::;;;;:::::::::::::::::;;;;;,,,,,'.......................................
'''''............................................................................................................................................................................................................,:ccccc:::::::::;;,'...........................................'',,,;;;;:::::::::::::::::::cccccccc::::::;;;;;;;;,,,,'....................................
'''''............................................................................................................................................................................................................;:ccccc:cccccccc:;;,'...............................',,,'.....,,,,,;;;;;::::::::;;;::::::::ccccc:cc::::::::::::::;;;,'.....................................
''''............................................................................................................................................................................................................,:cccccccclllc:::;;;,,,'.........................',,,;;;;;,,'..','',,,,,,,,;;::::::::::::::cccc:cccccccccccccccc::;;,,'.......................................
,''.............................................................................................................................................................................................................;:cccccccllc::::::::;;;,''...................',,',,;;;;::;;,,'..',,,,,;;;;,,,,,;;;;:::::::ccccccccccccccccccccccc::;,,''........................................
'''............................................................................................................................................................................................................;:ccccllcllccccccc:::;;;,,''......''........''',,,;;;;;::::;;,''',,,,,,;;:;;;,,,,',,;;;:::cccccccccccccccccclcccccc:;;,''''....................................
..............................................................................................................................................................................................................,:cclllllllcccccccccc::;;,,,,'...'''''........''',,;;;;;;;:::;,,,;;;;;,,;;;;;;;,'''',,;;:::ccccccccccccccccccllllccc::;;,''........................................
.............................................................................................................................................................................................................':cclllloooolccllllccc::;;;;;,''''''',,''...'''''',,,;;;;;;:::;;;;:::;;,,,;;;;,,,,''',,;;;:::ccccccllllllllllllllllccc::;,''..........................................
.......................................................................................................................................................................................................,;;;::cclllllllloollllllcccc:::;;;;;,''''',,,,''''''''''',,;;;;::;;;;;;;::::;;;,,,,;;;;,,,,,,,;;;::::cccclllllllllllllllccc:::;;,'.........................................
...................................................................................................................................................................................................,;:::cc:cccllccclllooollllllccccc::;;;;;;,,'',,,,,''''''''',,,,;;:::::::;;;;;;;;;;;,,,,,;;;,,,,,,,;;;::cccclllllllllllllllc::::::::;;,'..........................................
................................................................................................................................................................................................;:::cccccccclllccclllllllllllllccccc:::;;;;;;,,,,;;;,''''''',,,,,;;:::::::::::;;;;;;;;,,,,;;;;,,,',,,,;;:::cccccllllllllllcccc::::::::;;,,..........................................
...........................................................................................................................................................................................';;;:::cccccllcllllcccccccllllcccccccccccc::;;;;;;;;,;;;;,,,,,,,,,,,,,;;:cccccc::::::;;;,,,,,,,,,;;;,,,,,,;;:::cccccllllllllllccccccccc:::;;;,''..........................................
........................................................................................................................................................................................'';::cc::::cc::cllcllllcccccllllllllllllllcccc::;;;;;;;;;;;;;,,,,,,,,,,;;;:::ccccccccc::;;,,,,,,,,,,,;,,,,,,,;;:::cccclllllllllllccllcccccc:::;;,,'............................................
.......................................................................................................................................................................................,::cccc::::cc:::cccccllolcccclllllllllllllccccc:::;;;;;;;;;;;;;;;,;;;;;;;;;::ccccclcccc:::;;,,,,,,,,;;;,,,,,,;;;:::ccccllllllllllllllllllcccc::;;;,''............................................
......................................................................................................................................................................................;:::cccccccccccccccccccllllllllllllllllollccc:::::;;;;;;;;;;;;;;;;;;;;;:;::::::ccclcccc::::;;,,,,,,,,,;,,,,,,,;;;:::ccclllllllllllllllllcccc:::;;;,,,'''''''......................................
.'...................................................................................................................................................................................;::ccccccccc:ccccccccccllllllllllllllllolllcccc::::;;;;;;;;;;;;;;;;;;:::::::::::;;;;;;;;;;;;;;,,,''''',,,;;;,,,;;;;;:cccllllllllllllllllcccc::;;;,,,,''',,,''.........................................
''...................................................................................................................................................................................:ccccclllcccccccccllllllllllooolllllooollllllccc::::;;;:;;;;;;;;;;;:::::cccccc:::;;;;;;;;;;,,,,,''''''',,,,;;,,,;;;;::ccccccccccllllllllcccc:::;;,,,'',,,,''...........................................
'...................................................................................................................................................................................;cclllllllllllllllllllllllloooolloooooooooolllllcccc::;;;;;;;;;:;;::::cccccllccc:::;;:::;;;;,,,,'''''''''',,,,,,,;;;;;::ccccccccccclllllllccc:::;;,,,'',,,,'............................................
'..'........................................................''..'''.................................................................................................................;:cllooooooooolllooooooooooooooooooooooooollllcccccc:::::::::::::::ccccccclccccc::::;::::::;;;,,,,,,,''''',,,,,,,,;;;;::c:::cccccccllccccccc:::;;;,,,,,,'''''........................................... .
''''''''.........................................'......'',,,,,,,'''................................................................................................................;cllloooodddooooooooooooooooodddoooooooooolllllccccc::::::::::::::cccccllccccccc:::::::::::::;;;;;;;,,,','',,,,,,,,,;;;:::::::::::ccccccccc:::;;;;;,,,,,'',,,'............................................
,''''''''''................................''',,,,,,'''.'',,,;;;;,,''..'',,;,''...................................................................................................':clllloooddddddddoooooooooolooooooooooolooolllllllcccc::::::::::::ccccllllccllcc:::::;;;:::::;;;;;;;;,,,'''''''',,,,,,;;;;:::::::::::::::::::;;;;,;;,;,,,'',,,''............................................
,''''''''''''..............................',,,,;;;;;,''''',;;;;;;;;;,;:::::::;;,,,'..............................................................................................;cclllloooodddddddddooooooolllllllooolllllooooollllllccccccccccccccccclllllllllcccc::::;;;;;:::;;;;;;;,,,''''''''',,,,,,;;;;:::::::::::::::::;;;;,,,,,,,,,'',,,,'..........................................
,''''''''''''.....''....''''''..............',,;;;;;;,,,'',,,;;:::::::::::::::::;;;,,'.....................................................................................',',,;:cclloooooooooooooddddooollllllllllllllllllllllllllllllllccccccccccclllllllllllllcccc:::;;;;;::::;;;;;;,,,''''''''',,,,,,,,;;;:::::::::::::::;;;;,,,,,,,,,,,'',,,'...........................................
,'''''''''''''''',,,,''''''''''..............',,;;;;;;;,,,,,;;:cccc::cccccccccc:::;;,,''...............................................................................,;;;:cccccccllllooooddooooooooodddollllloooooolllllllooololllllllllcccccccccccclllllllllllllccc::::;;;;;:::;;;;;,,,'''''''''',,,,,,,,;;;;::::::::::::::;;;,,,,,,,''''''''',''...........................................
,''''''''''',,,,,,,,;,,,,,,'''''''.......''..',,,,,,,,,;,,;;:ccccc:cccccccccccccc:;;;,,,'''............................................................................'::cccccccccllllooloooooooooooodddolllllllooooooooooollllllllllllccccccccccccccclllllllllllcccc::::;;;;;;;;;;;;,,,,,'''''','',,,,,,,,,;;;;:::::::::::::;;,,,,,,,'''......''''...........................................
'''''''',,,,;;;;;;,,,,;;;;,,,,''''''''...''''',,,,,,,,;;;;::ccccccccccccllllccccc:::;;;;;,,,'........................................................................,;;:ccccccccclllooollllllooooooooooooooolllllloooooooolllllcccllllccccccccccccccccclllllllllllccccc:::;;;;;;;;;;;,,,,,,,'''''',,,,,,,,,,,,;;;:::::::::;;;;,,,,,,,'''......................................................
,,,''''',;;;;:::;;,,,,;;;;;;;,,,'''''''''''''',,,,,,,,;;::::ccccccccccclccclllcccc::::;;;;;,'''....................................................................';;:::c:ccccccccllllllcclllllllllooooooolllooolllooooooooolllllllllllllllcccllllccccccccccllllllllllcc::::::;;;;;,,,,,;;,,''''''',,,,,,,,,,;;;;::;;;;;;;;;,,,,''''''.........................................................
;;;,,,,,;;::::::;;,,;;;;;;;;;;;,,'''''''''''''',,,,,;;;;;:::cccccccccllcc::cllllccc:::;;;;;,'''..................................................................',;::cccccccccccccccccccclllllllllllooooooooooolllloooooooooolllllllllllllllllllllllllllllllllllllllllcccc::::;;;;;;;;;,,,,,,'''''',,,,,,,;;;;::;;;;;;,,,,,,,,,''''''''........................................................
:;;;;,,,,,;;;:::;;,;;;,,,;;;;;;,,,,''''''''''',,,,,;;;;;::::ccccccccccccc:ccccccc:::;;;;;,;,,'''................................................................';:::cccccccccccclllllllllllllloooollooooooooollllllllloooooooolllllllllllllllllllllllllllllllllllllllcccccc:::::;;:;;;;,,,''''''',,,,,,,,,;;;;::;;;;;,,,,,,,,,,'''''''.............'...........................................
::;;;;,,,,,,;;::;;,,;;,,,,,,,,,,,,,,''''''''',,,,,,;;;;;:::::ccccccccccccccccc:::::::;;;;,,,,,''...........................................................'',;;;:::cclcccccccccccccclllllllllloooollooooooooooollllllllooooooooooooollllllllllllllllllllllllllllcccccccccccc:::::::;;;,,,,'''''''',,,'''',,;;;::;;;;;,,,,,,,,,,,,'''''............................................ ............
:::;;;;,;;;;;;;;,,,,,,,,,,,,,,,,,,,,,'''''',,,,,,,,,,;;;:::::::c:ccccccccccccccc::::::;;;;,,,,'...........................................................,;;:::::::ccccccccccccccccclllllllooooooolooooooooooooolooolllloooooooooooolllllllllloollllllllllllllccccccccccccccc::::::;;;;,,,,''''''''''''''',,,;;;;;;;;,,,,,,,,,,,,,''''......'''',''................................ ...........
::::;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,'''''',,,,,,;;;;;;;;::::::::::ccccccccccccccc::::::;;;,,'..........................................................,::::::ccc::::cccccllllllllllllllllllooooooooooooooooooooollllllooooooooooooolllloolllllooollllllllllllccccccccccccccc::::::::;:;;;,,,,,,,'''''''''''',;;;;;;;,,,,,,,,,,,,,,'''''..'',,,,,,,'...............................  ..........
:::::;;;;::::::;;;;;,,,,,,,,,,,,,,,,'''''',,,,,,;;;;;;;;:;;;::::::::ccccccccccccccc:::::;;;,,,,,'......................................................'::ccccccccccccccccclllllllllllllllllllooooooooooooooooooooollllooooooooooooolllllollllllllllllloooooolllllllcccccccccccccc:::::::;;;;;,,,,,''''''''''''',',;;,,,,,,,,,,,,,,,,,''''''',,,,,,,''..............................   .........
c:::::::::::::::::;;,,,,,,,,,,,,,,,,,''',,,,,,,,,;;;;;::::;;;;;::::::::::::::::::cc::::::;;;;;;,,......................................................;:ccccccllccccccccccccllllllllllllllllllllooooooooooooollloolllooooooooooooooooolooooooooollllloooooooooolllllllcccccccccccccc::::;;;;;;;,,,''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,''',,,,,,,''.............................      ......
:::::::::::::::::::;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;::::;;;;::::::::::::::::::::::::::::;;:;;;;,.....................................................:cccclllllcccclllcccccccclllllllllllllllllllolllloooooolllloooooooooooloooooooooooooooooooooooooooooooooooollllllllccccccccccccc:::;;;;;;;;,,,'''''''''''''''''',,,,,,,,,,,,,,,,,'''''''',,,'''.............................            .
cccc::::cccc:::::::;;;;,,,,,,,,,,,,,'',,,,,,,,,,,,,,;;:::;;;::::::::::::;;;;;::::::::::::::::;;;;,'....................................................;cccllllllccclllllllllllllllllllllllllllllllollllloooollooooooooooooooolooooooooooooooooooooooooooooooooooooolllllllccccccccccc:::::;;;;;;,,,'''....''''''''''''''''''''''''''',,''''.''''''.'..............................
cccccccccccccc::::::;;;;;;;;;,,,,,,,',,,,,,,,,,,,,,;;;;;;;:::::::::::::;;;;;;;:::::::::::::::;;;;,'..................................................';:ccllllllllllllllllllccllllllllllllllllllllloolllllloolloooooooooooooooollloooooooooooooooooooooooooooooooooolllllccccccccccc:::::::;;;,,,,,,''''...''''''''''''''''''''''''''''''''........................................
cccccccccccccccc:::::::;;;;;;;,,,,,,,,,,,,,,,,,,,,;;;;;;;;:::::::::::::;;;;;;;;;;:;:::::;;;;;;;;;,'..................................................;::ccccllllllllllllllllcccllllllllllllllllllllllllllllllllllllooooooooollooooooooooooooooooooolooooooooooloooolllllcccccccccc:::::;;;;;;;;,,,'''''',,'''''''''''''''''''''''.....''''''''.................................... .
ccccccccccccccccc:::::::;;;;;;,,,,,,,,,,,,,,,,,,,,,;;;;;;;;::cccc:::::::;;;;;;;;;;::::::;;;;;;;;;,,'.................................................;:ccccllllllllllllllllllcllllllllllllllllllllllllllllllllllllllloooloooollooooooooooooooooooollllllllllolllooolllllcccccccc::::::;;;;;;;;;,,,'''',,,,,,''''''''''''''................'''.............'''..'.....................
ccclcccclccccccccc::::::;;;;;;,,,,,,,,,,,,,,,,,,,,;;;;;;;;:::ccccccc:::::::;;;;;;::::::::::;;;;;;;,'................................................::ccclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloodddddooooooooolllcccclllllllllllllllcccc::::::;;;:;;;;;;;;;,,,,''',,,,,,,''....'''''''..............................'''''''.'...''................
ccccccccllcccccccc::::::::;;;;,,,,,,,,,,,,,,,,,,,;;;;;;;:::::::cccccccc:::::::::::::::cc::::;;;;;;,,...............................................,:cclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllooddoddddooooooolllllllllllllllllllllcccccc::::;;;;;;;;,,,,;,,,,,',,,,,,'''......'''''...........................''''''''''''''................. .
ccccccccccccc:::ccc:::::;;;;;,,,,,,,,,,,,,,,,,,;;;;;;;::::::::cccclllccc:::::::::::::ccc::::;;;;;,,'...............................................;cclllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllooooodddoodddoooolllllllllllllllllllccccccc::::;;;;;;;,,,,,,,,,,,,,,,,,''.........'''..........................'''''''''''''''...............
cc::cccccccccc::::::::;;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;:::::cccclllllccc:::::ccc:cccccc::::::;;;;,,'..............................................':cllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllloooddddddddddoooloooooolllllllllcccccccccccc:::;;;,,,,,,,,,,,,,,,,,,,'''.........''................................'''..''''.................
::::ccccccccc::::::;;;;;;;;;;;;,,;;;;;;;;;;;;;;;;;;;::::::ccccccclccccccc::::cccccccccc::::::;;;,,,'..............................................,:clllllllllooooollllllllllllllllllllllllllllllllloooooooolloooooolllllllllllllllooodddddooooooooooooooooolllcccccccccccccccc::::;;;;,,,,,,,,,,,,,,,,,,''''''''..................................................'''''''........
:::::ccccccc::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::cccccllccccccccccc::::ccccc:ccc::::::;;;,,,'.....'.........................................;cclllllllllloollllclllllllllcllllllllllllccccccllooooooooooooooollllllllllllllloooddddddoooooooooooolccccc::::cccccccc:::::;;;;;;;;,,,,,,,,,,,,,,,,',,,'''''''..............................................'',,,'''''.........
::::cccccccc::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::ccccccccclclcccccccccc::::::cc:::::c::::;;;;;,,,,,''''''........................................':clllllllllllllllllllllllllllllccccccccccccc:ccccclloooooooooooooooollllllllllooooodddddooooooooolllccccccc::::::::;:;;;;;;;;;,,,,,,,,,,,,,,'','''',,,,,'''...............................................'',,,,,,,'..............
c:::cccccccc::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::cccccccccllllccccccccccc:::::::::::::::::;;;;;;,,,,,,,,,,'...........................................,:ccccclcccccccccccccccccccccccccccccccccccc:cccccccllooolloolllllllllllllloooddooddddddddoooollllccccccc::::::::;;;;;;:;;;;,,,,,,,,,,,,,'''''''''',,'''................................................'',,,,,'''..............
cccccccccccc::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::cccccllllllllllccccccc::::::::::::::::;;;;;;;;,,,,,,,,,,'....................................................,ccc::::::::::::::::;;;:::::ccccccccccc:::cccccccllclllllllllllllloooooooooooodollllccccccccccccc::::::::;;;:::;;,,,,,,,,,,,,,,''''''''''''''.............................................'..''',,,,''...............
cccccccccccc:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::cccccclllllllllllccccccc::::::::::::::::;;;;;;;;,;,,,,,,,,'....................................................':::ccccc:::::::cc::::;;;;:::::cccccccccc:::cccccccccccclllllllllllllllloooooooolcccccccccllllccccc:::c:::::::;;;,,,,,,,,,,,,,,''''''''''''...................................................'',,''''..................
ccccccccccc::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::ccccclllllllllllllccccc:::::::::::::::::::;;;,,,,,;;,,,,''''....................................................:cccccccccccccccccc:::::::::;;::::::::cc::c:::::::::ccccccccccclllcllllllloooooolllcccccccllllccccccccccc:::::;;,,,,,,,,,,,,,,,''''''''''.....................................................''''''''...................
cccccccccc:::::;;;;;;;;;;;:::::;:;;;;;;;;;;:::::cccccllllllllllllllccccc:::::::::::::::::::;;;,,,,,,,,,'''''''''................................................'cccclllllllllccccccccccc::::;;::::::::::::::::;;;;:::::c::::::ccccclllllllllllloolllcccccccccclcccccc:ccc::::;;;,,,,,,,,,,,,,'''''''''''......................................................'''''................ ...
ccccccccccc:::::;;;;;;;;;;::::::::;;;;;;;:::::cccccccccllllllllllllcccc:::::::::::::c::::::;;,,,,,,,,,,''''''''''.............................................',;ccllllllllllllcccccccccccc:::::;::::::::::::::::;;;::::::::::::::cccccllllllllllllllllllccccccccccc:::c:::;;;;;;;,,,,,,,,,,,'''''''''''''.......................'..............................'.......................
cccccccccc:::::::;;;::::::::::::::::;;;;:::::cccccccccccclllllllllccccc:::::::::cc::::::::;;;,,,,,,,,,'''''''''''........................................',,,;:ccclllllllooollllllccccccccc:::::;:::::::::;;;::::;;;;:::::::;::::::cccccllllllllllllccccccccccccccc::::::;;;;;;;;,,,,,,,,,,,,,'''''''''''''''.................'',,,'...................................................
cccccccccc:::::::;;;:::::::::::::::::;:::::::ccccccccccccclllccccccccc::::::::::cc:::::::;;;,,,,,,,,,,,''''''''''.......................................;::::cccclllllllloolllllllllccc::::::::::::cc:::::;;;:::::::::cccc:::;;;:::::cccccllcclllllccccccccccccccc::::::;;;;;;;;;,,,,,,,,,,,,,,,'''''''''''''''''...........',,,,,,'''.................................................
cccccccccc:::::::::;:::::::::::::::::::::::::cccccccccccccccccccccccc:::::::::::::::::::;;;;;,,,,,,,','''''''''''.......................................;:ccccccllllllllllolllllllcccccc::::::::::::c:::::::::::::::cccccc::::;;;::::::ccccccccllllllcccccccccccc::::::::;;;;;;;;;,,,,,,,'''''''''''''''''''''''''........',,,,,,,,,'''................................................
llccccccccc::::::::::::::::::::::::::::::::::ccccccccccccccccccccccc::::::::::::::::;;;;;;;;;,,,,,,',,''''''.............................................:ccccllllllllllllllooollllcccccc::::::::::::::::::::::::::ccccccc:::;;;:::::::cccccccccllllccccccccccccc::::::::;;;;;;;;,,,,,,,,'''''''''''''''''''''''''.......''',,,,,,'''''................................................  .
llccccccccc:::::::::::::::::::::::::c::::::::::cccccccccccccccccccc::::::::::::::;;;;;;;;;;;;,,,,,,,,,''''...............................................,cclclllcclllllllllllollllllccccc::::::::::::::::::ccccc:::c:::::::::;;::::::ccccccccccccccccccccccccc::::::::::::;;;;;;;;,,,,,,,,,,''''''''''''.'''''''......''''''''''''''...'''................................................ .
cccccccccc::::::::::::::::::::::::ccc:::::::::::::::::ccccccccccccc:::::::::::::;;;;;;;;;;;;;;,,,,,,,,''''................................................;clllllllllllllllllllllcccccccc::::::::::::::::::cccccccc::::::::::::;:::::ccccccccccccccccccccccccccc:::::::::::;;;;;;;;;,,,,,,,,,''''''''''''.'''''''.''''',,,,,,''''''''''......................................................
cccccccccc:::::::::::::::::::::::::::::::::::::::::::::cccccccccccc:::::::::::;;;;;;;;;;;;;;;;,,,,,,,'''''.................................................,cllllllllloollllllllllllcccccc:::::::::::::::::ccccccccc::::::::cc::::::cccccccccccccccccccccccccccccc::::::::::;::;;;;;;;,,,,,,,,,'''''''''''''''''..'''',,,,,,,,,'''''''''.............................................. ........
ccccccc::::::::::::::::::::::::::::::::::::::::::::::::ccccccccc:::::::;;;::;;;;;;;;;;;;;;;;;,,,,,,,'''''...................................................':cllllllllllllllllllllllllccccc::::cccc:cccc::ccccccccccccc:::ccc:::::::ccccccccccccccccccccccccccccc::::::::::;;;;;;;;;;;;,,,,,,,,''''''''''''''.'..''',,,,,,,,,,,''''''''............................................... .......
cccccccc:::::::::::::::::::::::::::::::;;;::::::::::::ccccc::::::::::::;;;:::;;;;;;;;;;;;;;,,,,,,,,''''''....................................................,cclllllllllooollllllllllllccccccccccccccccccc:cccccccccccccc::cc:::::::::::c:ccccccccccccccccc::;;;;;;;;::::::;;;;;;;;;;;;;;,,,,,,,'''''''''''''''''''',,,,,,,,,,,''''''.................................................    .....
ccccccc::::::::::::::::::::::::::::::::;;;;;;;;;:::::cccc::::::::::::;;;;;:::;;;;;;;;;;;;;,,,,,,,'''''''...............................................,:::::ccccllllllloollccclclcccccccccccccccccccccccccccccccccccccccc::::::::::::::::::cccccccccccc::::;;;;;;;;;,,,,,,;:::;;::::::;;;;;,,,,,,'''''''''','''''',,,,,,,,,,,,,,'''''.................................................     ...
ccccccc:::::::::::::::::::::::::::::;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;::;;;;;;;;;;,,,,,,,,,,'''''''.............................................,;:::cccccccccllllllllccccccccccccccccccccccccccccccccccccccccc:::cc::::::::::::::::::::::cccccccc::;;:::::::::::;;;,''',::::::::::::;;;,,,,,,''''',,,,,,,,,'',,,,,,,,,,,,''''''''.................................................. .    .
ccccccc::::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;:::::::::;;;;;;;;;;;:;;;;;;;;;;;;;;,,,,,,,,,'''''..............................................;::::ccccccclllllllllccccccccccccccccccccccccccccccccccccccccc::::::::::::::::::::::::::::::::::::::::::::cccccc::::;;,,,'',;::::::::;;,,,'.'''''''''',,,,,,,'''''''''''''''''''.......................................................
ccc::::::::::::::::::;;;;;;:::::::::;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,''''................................................,::ccccccccllllllllllcccccccccccccccccccccccccccccccccccccccccc:::::::::::::::::::::::::::::;;::::::::ccccccccccccc:::;;,,,''';::::;;''.........',,,,,,'...'''''''''..'''''..............................................................
::::::::::::::::::;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,'.................................................':ccccccccllllllllllcccccllccccccccccccccccccccccccccccccccccc::::::::::::::::::::::::::::::::::cc::::ccccccccccccc::::;;,,''...................'',,,,,,'......''.........'.............................................................
:::::::::::::::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,''................................................',;;ccccccllllllllllccccllllllllllcccccccccccccccccccccccccccc::::::::::::::::::::::;:::::::::cccccccccccccccccccccc:::;;;;,''....................',,,,,''.............................................................................
:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,''.......................................',;;,,;;;;;;:c:ccclllllllllccclllllllllllllllcccccccccccccccccccccc:::::c:::::::::::::::::;;:::::::cc:ccc:::::::::ccccccccc:::::;;,,,''..................',,,,,,,,'...........................................................................
::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,''...................................,;:::::::::;::::::ccccllllllllcllllllllllllllccccccccccccccccccccccccccccccccc:c::::::::::;;;;;;;;;;;;;:::::cccccc::cccccccccccc::::;;,,,,'.................',,,,,,,,'.........................................................................
::cccc:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,'...............................';::ccccccccccccccccccccccclllclllllllllllllccccccccccccccccccccccccccccccccccccccc::::::::::::;;;;;,,,,,,;;;:::cccccccccccccccccccccc:::;;;,,,'''..............',,,,,,,''........................................................................
ccccccccc::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::::;;;;;;;;;;;,,,,,'.............................';:ccclllllllccccccllccccccclllllllllllllllllcccccccccccccccccccccccccccccccccccccc::::::::::::::::;;;;;,,;;;;::::::::::ccccccccccccccccc:::;;;,,''...............'''',,,''.......................................................................
cccccccccc:::::::::;;;;;;;;;;;;;;;;;;;;;,,;;;;;;;;;;;;;:::::;;;;;;:::::::::::::::::::::;;;;;;;;;;;;;,,,,''.....................''''''';ccccllllllllllllclllllcccccccclllllllllllllcccccccccccccccccccccccccccccccccccccccc:::::ccc:::::::::::;;;;;;::::::::::::::::cccclllllccc:::::;;,,'...................'''''.......................................................................
cccccccccc:::::::::;;;;;;;;;;;;;;;;;;;,,,,,,,,,;;;;;:::::::::;;;::::::::::::::::::::::::;;;;;;;;;;;,,,,,'''''......'''',,,''''',,,,,;:cccllllllllcclllllllllllccccccclllllllccccccccccccccccccccccccccc::::cccc::cccccccc::cccccccc::::::::::::::::;;;;;;;;;;:;;::::cccccccllccccc:::;;,''....................'''''.................................................................... .
ccccc::cc:::::::::;;;;;;;;;;;;;;;;;;;,,,,,,,,,,;;;;:::::::::::::::::::::::::::::::::::::;;;;;;;;;;,,,,,,'''''....',,,,,,,,,,,,;;;;;;;:cllllloolllllllllllllllllcccccccclllllcccccccccccccccccccccccccccc:::::::::::::cc::::ccccccccccc:::::::::::::::::;;;;;;;;;;;;;;::ccccccccccc:::;;,,''....................''''''...................................................................
:::::::::::::::::;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,;;;::::::::::::::::::::::::::::::::::::::;;;;;;;;;;,,,,,,,'''''',;;;;;;;;;;;;;;:;;;;;;;,;:cccclllllllllllllllllllccccccccccccccccccccccccccccccccccccccc:::::::::::::::::;::ccllllllcccc:::::::::c:::::::::;;;;,,,,;;;;;::ccccccccccc::;;;,''..................''''''''................................................................
::::::::::::;;;;;;;;;;;;;;;;;;;;;;;,;,,,,,,,,,;;;:::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;,,,,,,,,,;:::::::::::::::::::;;:;;;;;;,,,;clloooooollllllllllccccccccccccccccccccccc:::::cccc::::::::::::::::::::::::::cclllllllllcccccccccccccc:::::::;;;,,,,,;;;;;:::::ccccccc::;;;;,,''..................''''''................................................................
::::::::::;;;;;;;;;;;;;;;;;;;;;;;,,;;;,,,,,,,,;;;;;:::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;:::::::cc:::::::::::::::;;;;;;;;,,,,,:looooooolllllllcccccccccccccccccccccccc:::::::::::::::::::::::::::::::::::ccclllllllllllllcccccccccc:::::::;;;;;;;;;;;::::::::cccccc:::::;;;,,''..................''..................................................................
:;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,;;;;;;;;;;;;,,;;;;;;;;;:;:::::::::::::::::::::::::::::::::;;;;;;;;;;;::::::::::c::::::::::c::::::::::;;;;,,,,,;lllooooooollllccccccc:::ccccccccccccccc::;;;;;;::::::::;:::::::::::::::::cccclllllllllllllllcccccccccc:::::;;;;;;;;;;:::::::::::cc:::::;;:;;;,,''.....................................................................................
;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,;;;;;,,,;;;;;;,;;;;;;;;;;;;;:::::::::::::::::::::::::::::::;;;;;;;;;::::::::cc:::::::::::::::ccccc:::::;;;;,,,,,,:cllloooollllcc:;;;;;;;;;::::::::::::;;;;;;;;;;;;;;:;;;;::::::::::::cccccccccllllcccccccccccccccccccccc::::::::::::::::::::::::::::::;;;;:;;,,''.....................................................................................         .
;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,;;;;,,,,,;;;;;;;,,,,;;;;;;;;;::;;:::::::::::::::::::::::::::;;;;;;;;;:::::ccc:::::::;::::::::::::::::::::;;;;;;;;;,,;;;loooollc;,'''',,,,,;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::cccccccccccccccccccccccccccccccc::::::::cc::::::::::::::::::;;;;;;;;;,;;;;;,,'''..................................................................................  ..........
;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,,,,,,;;;;;;;;;;;;::::::::::::::::::::::::::;;;;;;;;;:::ccccc:::::::::::;;;::::::::::cc::::::::::;;,,,,,;;;;''''''''''',,,;;;,;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::cccccc:::::::::::::::::::::::::::::;;;::::::::::::::::::::;;;;;;;;,,,,,;;;;,,'''..............................................................''''................ ..........'
;;;;;;,;;,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;,,,,;;;;;;;;;;;:::::::::::::ccc::::::::::;;;;;;;;;:::ccclcc::cccccc::::::::::::::::::cc:::::;;;;;,,,,,,,''''....'''''',,,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::cccccc:::::;;;;;;;;;;;;;::::::::::;;;;;;;,,,;;;;;;;;;;;:::;;;;;;;;;;;;,,,,,,,,,''..............................................................'''''.......................'''''
;;;;;;;,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,,,;;;;;;;;;;;;:::::::cccc:ccccc::::::::;;;;;;;;;;;:::ccccc:ccccc::ccccccc::::::::;;;;;;;;;;;;;;,,,,,,,,'.......'''''''',,,,,,,;;;;;;;;;;;;;;;;;;;;;;;:::cc::::cc:::::::::::;;;;;;;;;;;;;;;;,,;;;;,,,,,,,,,,,'''''',,,,;;;;;;;;::;;;;;,,,,,,,,,'''...............''''........'...................'''..........'''''..''''................'''...
;;;;;;,;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;,,,,,;;;;;;;;;;;;:::::::::::c::::::::::;;;;;;;::;;;;;::::cccccc::::ccccccccccccc::::::;;;;;;;;;;;,,,,,,,,,'....''''''''',,,,,,,;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::;;;;;,,,,,,;;;;;,,,''''..''''''''''''.'''.',;;;;,,,,,,,,,,,,,,,,'''''.......''''''''.'''..''''''''''''...............'''........'',,'''''''''......'.............'
;;;;;;,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;,;,,,,,,,,;;;;;;;;;;;::::::::::c:::::::::;;;;;::::::::;:::ccccc:ccccccccccc::::ccc:::::::::;;;;;;;;;,,,,,,,,,'''''''''''''',,,,,,,,,;;;;;;;;;;;;;;;;;;;::::::::::ccccc::::::::;;;;;;,,,,,''',;;;;;,,,,,'....',,,''''...''..''',,,,,,,''''''''''''''''......'',,''''.....''''...'',,,,'''.........................',,,,,,,,,,,'...''''''''........''
;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::::::cc::::::;;;;::::::::::::::ccccccccccccc::::::::::::::::::::::;;;;;;;;;;;;,,,'''''''''''''',,,,,,,,,,;;;;;;;;;;;;;;;;;;;:::::::ccccccccc::;;;;;;;;;;;,,,,,,,,'',;;;;;;;,,,''''',,,,''.............'''''''''''''''..''''''',,,,,,,,,'''''''''''''''.'''''''..................'.....''',,,,,,,,,,'''''''''''........'''
;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;::::::::::::::::;;;;;:::::::::::::cccccccccccc::::::::::::::::::::::::;;:::::;;;;,,,'''''''''''',,,,,,,,,,;;;;;;;;;;;;;;;;;;::::::ccccccllcc:::;;;;;;;;:;;;,,,,,'''''',,,,,,,,,,,,''',,,,,''....................'...''...''',,,,,,,,,,,,,,,,,'''''''''''''..................................'',,,,,,,,,''''''''''........'''
,,,;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;::::::::c::cc::::::::::::::::::::cccccclllccc::cccccc::::cc:::::::::::::::::;;;;,,,''''''',,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;:::ccccccc:::;;;;;;::::::;;;;;;,,,,,,,,''''''''''.',,,,'',,,,,''....................''''''''',,,,,,,,,;;;;;,,,,,,,,,,,,,,,'''''...................................'''',,,,,,,'''''''.......'''',
,,,,,;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;::cccccccccccccccc:::::::::::::cccccllllccccccccccccc:::::::::::::cc::::::;;;;,,,,,,'',,,,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;:::ccccc:;;;;;;;;:::::::;;;,,,;,,,,,,,,,,,,,,,''''''''''''''''.......................''''''''''''',,;;;;;;,,,,,,,,,,,,,,,,''''''.....................................''''''''''''''''......'''',
,,,,,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;::cccccccccccllllllcc:::::::::cccclllllllllcccc:cccccccccccc:c::::::::::;::;;;;;;,;,,,,,;;;,,,,,,,,,,,,;;;;;;;;;;;;;;;;;:::cccc::;;;;:::::::cc:::;;;,,,,,,,,,,,,,,,,,,,,,,,,''''''''''.....................'''''''''''''''''',,,,,,,,,,,,,,,,'',,,'''''''.........................................''''''''''''''....'''''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;::::ccccccccccccclllllllc::ccccccccccccllccllllccccccccccccccccc::::::::::::::::;;;;;;;;,,,;;;,,,,,,,,,,,,;;;;;;;;;;;;;;;;;:cc:::::::::::::::::cc:::::;,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''....''.''.....''''''''''''''''''.'''''''''''',,,''''''''''''''...............................................'''''''''....''''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;:::ccccccccccclccclccclllc::cccccc:ccccccccccclllcccccccccccccccc::::::::::::::::::::::;;;;;;;;;,,,,,,,,,,,,;;;;;;;;;;;;;;;;:::;;;:::::::cc:::ccccccc::;;,,,,,,,,,,,,,,,,,,,,,'''''',,,,'''''''''''''''''''''''''''''''''''''''..'''''''''''''''''''..........................................................'''''''........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;:cccccccccccclllllllcclllllc::cccccccccccccccccllllllcccccccccccccccccccccc::::::::::::::;;;;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;::;;;;:::::ccccccccc:::cc:;;;;;,;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''''''''''''''''.....'''''''''''''''''..............................................................''''.........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;::::cccccccccccllllllllllllllc::ccccccccccccccclllllllllllllllcccccccccccccccc:::::::::::::;;;;;;;;;,,,,,,,,,,,;;;;;;;;;;;;;;;;;;;;;:::::cccccccc:;;:::;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''''''''''''''.......'''.....'''''..............................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'',,,,,,;;::::cccccccccccclllllllllcccc::::::::ccccccccccccccccclllllllllclcccccccccc:::::::::::::::::::;;;;,,,,,,,,,,,,,,;;;;;;;;;;:;;;;;::::::::::::::ccc::;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''''''''''''''................................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''',,,;;;;:::::cccccccccccccllccccc:;;;;;::::::::::cccccccccccccllllcccllcccccccccccc:::::::::::::;;;;;;;;;;;,;,,,,,,,;;;;;;;;::;;;::::::::::::::::::::::::::;;,,;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,'''''''''''''''''..............................................................................................
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,;;;;;::::ccccccccccccccc:;;;;;;;;;;;;;::::::cccccccccccccclccccccccccclllllllccc::::::::::;::;;;;;;;;;;,,,,,,,;;;;;;;;;::;;;:;::::::::::::::::::::::::;;;,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''',,,,,,,,,,,,,,,,,,'''''''................................'''..........................................................
',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;::::ccccc:::ccccc:;;;;;;:::;;;:::::::ccccccccccccccllclcccccclllllllllcccc::::::::::::;;;;;;;;;;;;,,,,,;;;;;;;;:::::::::::::::::::::;:::::::::;;;,,,;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''.............................''''''........................................................
'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;::::::::::ccccc;;:::::::::::::::::::cccccccccccccccccccccccllllllllllccccccc:::::::::;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::;;;;;;;;;;;;;;;::::;;,,;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,''''''''''...........................'''''.........................................................
''',,,'',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,;;;;;;;;::::::cccccc;;::::::::::::::::::cccccccccccccccccccccccllllllllllllccccccccc::::::::::;;;;;;;;;;;;;;;;;;;::c:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''.....................................................................................
''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''',,',,,,,,,,,',,,,,,;;;;;;;;;::::::ccc:::::::::::::::::::::cccccc::::ccccccccccccclllllllllllcccccccccccccc::::::;;;;;;;;;,,,,,;;:::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''''..............................................................................
''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''',,,,,,,,,,,,,,,,,;;;;;;;;::::::ccc:::::::::::::::::::::::::::::::::cccccccccccccccccccccccccccccccccc::::::;;;;;;;;,,,,,,,,,,,;:;;,,,''',,,,,;;;,,,,;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''''..............................................................................
'''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''',,,,,,,,,,,,,,,;;;;;;;;;;:::::cccccc::::::::::::::::::::::::::::::::ccccccccccccccccccccccccccccccc:::::::;;;;;;;;;;;;,,,,''''',,''...''',,,,,,,,,,,,,,;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''.............................................................................
''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''',,,,,,,,,,;;;;;;;;;;;;:::::ccccccc:::::::::::cc::::::::::::::::cccccccccccccccccccccccccccccc:::;;,,,,;;;;;;;;;;;;;;,,''''''''....'''',,,,,,,,,,,,,,,;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''............................................................................
'''''''''''''''''''''',,,,,,,,,,,,,,,,,''''''''''''''''''''',,,,,,,,,,;;;;;;;;;;;;::::::::::::::::::::cc:c:::::::::::::::::ccccccccccccccccccccccccc:::c:;;;;;;;;;;:;;;;:::;;;;,,,,,,,,,,''''','',,,,,,,''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''...........................................................................
'''''''''''''''''''''''''''''',,,,,,,'''''''''''''''',,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;:::::::::::::::::::cc::::::::::::::::::::::::::::cc::ccccccccc::::::;;;;;;;;;;;::::::::::;;;;;;;;;,,,,,'',,,,,,'',,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;,,,,,,,,,,,,,,,,,,,''''''''''''''''''.............................................................................
'''''''''''''''''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;::::::::::::::::::cc::::::::::::::::::::::::::::::::::::::::::::;;;::::::::::::::::::::;;;;;;;;;;,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,,,'''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;,,,,,,,,,,,,'''''''''''''''''''''''...............................................................................
'''''''''''''''''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;;;:::::;;;::::::::::c::::::::::::::::::::::::::::::::::::::::;;;;::;::::::::::::::::;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''',,,,,',,,,,,,,,,,,,,,,,,,,''..'',,,,,,;;,,,,,,,,'''''.......''''''''''''''''..............................................................................
'''''''''''''''''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,,,,,;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;:::::::::::cc:::::::::;;;;::;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,'....',,,,,,,;;;,,,,''''..'........'''''''''''''''...............................................................................
'''''''''''''''''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;:::::::cccc:::::::::::::::;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'.....'',,,,,,,,,,,''''''''.....''''''''''''''''''................................................................................
'...''''''''''''''''''''''''''''''''''''''''''''''',,,,,,,,,,,,,,,,,,,,;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;;:::::::::ccc::::::::::::::;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''........''',,,,''''',,,',,,'''''''',,'''''''''''''''''.............................................................................
.....''''''''''''''''''''''''''''''''''....''''''''''',,,,,,,,,,,,,,,,;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:::::::::::ccc:::::::::::::::;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''',,''''...............'''''''''',,,,,,,,,,,,,,,,,,,''''''''''''''''''............................................................................
........''''''''''''''''''''''''''''''.....''''''''''''''''',,,,,,,,,,,;;:::;;:;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;:::::::::::::::::::::::::::::::;;;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''',,,,,,,,'''''''''''..................'''''''''',,,,,,,,,,,,,,,,,,,,,',''''''''''''''''...................................................................
..................''''''''''''''''''''......''''''''''''''''''''',,,,,;;;;;;;;;;;;;;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;::::;::::;;;;;;;;;;;;;;;;;::::::::::;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''',,,,,,,,,''''''''...................''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,'''''''''''''''''...........................................................    .
.........................''''''''''''.........''''''''''''''''''''',,;;;;;;;;;;;;;;;;:::::::::::::::::::::::::;;;;::;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;,,;;;;;:;;;::::;;;,,,;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,''''''''..................'''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''''.....................................................
................................................''''''''''''''''',,;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;,,,,,,,,;;;;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;,;;;;;;,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''''''''''''''''.................'''''',,,,,,,,,,,,,,,,,,,,,,,,,,',,,'''''''''''''''''''''''..................................................
............................................................''''',;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;,,,,,,,,,,,,,;;;;;;;;;;;;::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;,,;;;;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,,'''',,,,,,,,,'''''''''''''''''''''............'''''''',,,,,,,,,,,,,''''''''''''''''''''''''''''''''''''''''.................................................
..............................................................''',;;;;;;;;,,,,;,,,;;,,;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,,,,,,,,,;;;;;;;;;;;;;;::::;;;,,;;;;;;;;;;;,;;;;,,,,,,,,,,,,;;;;;;;;;;,,,,,,,,,,,,,,,,,,,,''''',,,,,,'''''''''''''''''''''''''''''......'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''................................................
...............................................................'',;;;;;;;,,,,,,,,,,,,,,,;;;,,;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,;,;;;;;;;;;;;;;;;;;,,,,,,;;;;;;;,;;;,,,,,,,,,,,,,,,;;;;;;,,,,,,,,,,,,,,,,,,,,,,,''''''''',,''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''..'''''''''''''''''...............................................
Drawing of my head

Software engineer based in France with three years of experience in development of UI and 3D application, I am seeking a remote position in which I could further enhance my expertise.

Accustomed to working in small teams, I have contributed to projects ranging from small prototypes to industrial applications, gaining experience in various technical environments, including automated testing and embedded software, while tackling challenges such as latency constraints.

I recently followed a training in React, and I am improving this new skill through a side project.

Outside of programming, I enjoy dancing, going to the gym, and building with Lego bricks :)

You can find my resumes here: English, French