__,, --、、__
__ _ _,, <"::::::::::::::::::::::::::::>--、
/_ヽ/ヘ_,,/::::::>''´:::::::::::::::::::::::::ヽ、:::::::::\
ィ/:::::::::/::::/:::::/: : : ::::::::::::::::::::::::::::::::::::::ヽ:::::::\
_/:/:::::::::/:::/:::::/: : : : : : : :::::::::::::::::::::::::::::::::: : :ヽ:::::::ヽ
/,'/ /:::::::::/:::/:/: : : : : : : : : : : : : : :::::: : : : ::::: : : : :ヽ:::::::ヽ
|,',' ,'::::::::::/:::/: : ::::::: : : : : : : : : : : : : : : : : : :ハ: : : : : :ヽ::::::ヽ
. . . . |,' ,'::::::::::/::,':::::::::::::::::::: : : : : : : : : : : : : : : : : /. |: : : : : : :',:::::::}
; ;::::::ハl:::::;::::::::::::::::::::::::::: : : : : : : : : : : : : : / | : : : : : : :l:::::::|
,' l .;:::::{ |:::::;::::::::::::::::::::::::::::::: : : : : : : : : : : :/ .|: : : : : : : :}::::::|
.| ',; ',:| ハ::::; |:::::::::::::::::::::::/|::::::::::::::::::::::::::::/ |: : : : : : : :}::::::|
.| ', .ヽ| ヘ:| |::::::::::::リ ̄``{:::::::::::::::::::::::::./_,,,,,,、|::::::..: : : : :}::::::|
.|ヽ_.',,,ィ,,| .リ !::: 、ゝ-ィ、、 !::::|l::::l|:::::::::::{'" `{:::::::::: : : }:::::ノ、
,' ) .| .| ヽ (;;゚リヽ ヽ、::::ノ ,, ─ 、, !:::::::: : ! ,'::::/ .l
,' |, |  ̄ : : イ、.(;;゚リ_,,ヾ ,'::丿 /
|ヘ ! :: :: i! ノ /
|:: :`| .:: :: l! /
|:::::::| / .: :. ヽ ,' ,,イ
|:::::::| ヽ ヽ__ ,=- ,:: /-''::::}
|::::::ヘ /::::::::::}
|:::::::::ヽ ` -- 、ニ__ /:::::::::::,'
|::::::::::::ヽ ` - `  ̄ イ::::::::::::|
|::::::::::::::::\ /|:::::::::::: ::| ̄``ヽ--、
,,ィ"ノ',:::::::::::::::::::\ ,, ィ.'`ヽ、 イ .|::::::::::::::::ヽ )ヽ、
,,< / .|::::::::ィ'" ̄ ̄/  ̄ ̄```.\ .イ /::::::::::::::::::::ヽ / \
,, <" {::::::::| ィ´ ィ--‐'─‐イ、\、 ;:::::::::::::::::::::::::::Y / `ヽ、
/ .',: :: :| / ヘ_ヽ> /::::::::::::::: :::::: :::| /
/ .',:: : | ノ .ヘ__> ノ::::::::::::::::::::::::::: :|./