;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::;;;;;;;''';;;;;;;;;;;;;;;;, | ヽ:::::::: `'i,,..、--‐‐-、
;;;;;;;''';;;;;;;;;;;::::::::::::::'''::::::::::::::::::':::::::::::::;;;;;;;;;; .| (:::::::::::/ ::::`', ,r‐'' '´
'':::::::::::::::::''::::::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;' ..|,.-‐、,,.`i、 r;;'´ ::::::::::'ir'"゙`'´ :::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;;;:''''' |::::::::::. .i \,ri、 ::::::::::i:::::::::::,、::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::: | .|::::::::::::. 'i、 r' .i'`゛゙`''‐ゥ;;;;;;i:::::::::::丿-‐''"
::::::::::::::::::''''''''''''''':::::::::::::::::::::::' | .|:::::::::;;;;;, i, .i` i'_ ,,i',,,,i-、,,..ィ'´
::::::. `` ゛゙` '"゛゙`i;,- 、、::;;_; i ' -‐' ゙_゙`'''゙゙/,ノ ;;;;;:::'i,
:::::::::::........ 'ii; ゛゙`'‐- ニ~,_,;:i'´ ;;;;;;;;;;;;:i,
::::::::::::::::::::::::................ ii; ゙`'- 、.,-、::;;_;;;;::i
:::::::::::::::::::::::::;;;;;;;;;;;;:::::::: ..,, __ 'ii; i ii, i,;;;:i、
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::: ` '゙' =='"..,,__ ,....,-,,r:, ,i' ii, i;;;;;;;:i
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::: | .|::::::i' ``゛'i,゙`' ,i' i' ,i'"i'゙゙``' '‐-r'";;;;;;;;;;;;:i
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::: | .|::::::'i, ,.:::::::~~:~i~~~;;~;;^~'i i(r'''' ‐-、`'i、;;;;i
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::: .| .|::::;;;;;`i:、:;;___;::ィ';;;;;;;;;;;;;;;;;;;;`i、、⌒> 'i,::::::i;i
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:: | .|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/ l.l⌒ i:::::i;i
;;;;;;;;;;;;,::::::::::::::::::::::`:、::::::::::::::::';::::::::::::::i' 、-‐- 、.,
;;;;;;;;;;;;;;,:::::::::::::::::::::::::`:、:;;;;;;;;;;;;;,::::::::;i' ,r'´:__:__:__ : ヽ
;;;;;;;;;;;;;;;;;,:::::::::::::::::::::::::::':,;;;;;;;;;;;;;;r''´ . r‐-´,.-‐-、_`':、: ヽ
;;;;;;;;;;;;;;;;;;;;,::::::::::::::::::::::;.、-i、;;;;;i ノ' ' ゙'‐--'´i, i; : : ヽ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,:::::,i' 丶__ _ ノ ニ'‐、 'i,i : : : : i
;;;;;;;;;;;;;;;;;,,:-‐、;;;;;;;;;i 'i、`ニ´、``'i、 i´ ,>_: : : 'i
-‐'"゜i,´ __,,..、-‐'"`'i、_ `i、_ ``'-、ir‐`i⌒':、.,_ ´~~.i' ; .i
_,,..r‐'"゚゜´;;;;;;;,:::'´;;;;;;;;;;;;;;`'';;";;´;;~;;; ``'-、_`'i、,r'"´ `'i,`'‐--‐;'└-‐'´; ; i、
;;;;;;;;;;;;;;;;;;,::‐'´;;;;;;;iiiiiiiii;;;;;;;;;;;;;;;;;;;;;;;;`'i、;;;;;;;;;;;;`'‐.`、:;_ `'‐、,_ : i´; ; ; ; ; <^
;;;;;;;;;;;;;;,i'´;;;;;;;;;;;;;;;''''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`i、;;;;;;;;i;、;;;;;;;``'‐- 、ニ,_i ;':;:' '''`
;;;;;;;;;;,i';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`i、;;;; i、;;;;;;;:::::::::::::::;;;'i
;,.-'´;;;iiiiiiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;i,
;;;;;;;;;;;;'''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iiiiiiiiii;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''''';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`i:、
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;`i:、