--::::::::::::::::::::::::::::::::::-~-::::::::;;;;;;;;;;;;;;;;;!!!!!!!!!!!!!!!! ---::::::::::::::::::::::::::::::::-~^~---:::::;;;;;;;;;;;;;;;;;;!!!!!!!!!!!!!!! ---:::::::::::::::::::::::::::::::-~^^~----::::::;;;;;;;;;;;;;;;;;!!!!!!!!!!!!!! ----:::::::::::::::::::::::::::::-~~~^-:----::::::;;;;;;;;;;;;;;;;;;;;;!!!!!!!!! ----::--::::::::::::::::::::::::::!)!!>*)>+*-::::::::;;;;;;;;;;;;;;;;;;!!;;;!!!! ^~--:----::::-::::::::::::::::::>&$$$$$>)++)!+>!;::::::::;;;;;;;;;;;;;;;;;;;;;!! ~~~-------:-----:::::--:::::::*%$$$$$###$?+**?##&):::::::;;;;;;;;;;;;;;;;;;;;;;; ~~~--------------:-----:::::-!$$$#########$?)>?###>::::::;;;;;;;;;;;;;;;;;;;;;;; ---~-------------:-----::::-->############$$$?)$@##+:::;;;;;;;;;;;;;;;;;!;;;;;;; --------------------------::-?###$&&$$$$$$$###%=###%::;;;;;;;;;;;;;;;;;;;;;;;;;; -------:------::----------::->#$=+>?%$$$$$$$###%####;:;;;;;;;;;;;;;;;;;;;;;;;;;; -------------::::-------:-:--*#+!;!)?&$$$#######$###*::;;;;;;;;;;;;;;;;;;;;;!!;; :------------::::-------::---)%!::;*>=&$#######@###@+::;;;;;;;;;;;;;;;;;;;;!!!!; --------------::-------------:+;:::!+?=%$#@@###@###@):::;;;;;;;;;;;;;;;;;;!!!!!! --~------------:::-----------:*!;!)>=%&&&$$####@##@#;::::;;;;;;;;;;;;;;;;!!!!!!! -~-------------::::::--------;=?)>%&%=%&&&&$#@####@%::::::::::;;;;;;;;;;;;!!!!!! ~-----:-::-------::::--------!%?++%$&%$&%%&$###&&$#*:::::::::;;;;;;;;;;;;;;;!!!! -::----------:-----:::-------:++!!))>>???%&$##$$=&>-:::::::::;;;;;;;;;;;;;;;;;;! -::::--------~-----:::--------;*!)*;::!+=%&$#$$$?%:-::::::::::;;;;;;;;;;;;;;;;!! ::::::------,^-^~--::---------;;*>+::;)?%&$$$$=%&*--::::::::::;;;;;;;;;;;;;;;;!! ::::::::::::,,.-****):--------;+???;!)?%&&$$$&!+=--:::::::::::;;;;;;;;;;;;;;;;!! ::;;+>>????>:'-&$&&&$*--------;))>+)+?=%&$$$#$+$)-::::::::::::;;;;;;;;;;;!!!!;;; ::++=&%%=??).,***!)+):--------*===%?==%&&$$$$&!>::::::::::::;;;;;;;;;;;;;!!!;;;; :::;;::::::~.^..^~--::--------:))>==%&&&$$$$#=!!::::::::::::;;;;;;;;;;;;;!;;;;;; ::::::::::--.'''^-;;;:-::------)?%%%&&$$$####$*:::::::::::::;;;;;;;;;;;;!!!;;;;; ::::::::::--'`'^!)+>!:::::::::-:!*>%&$$######&!:::::::::::::;;;;;;;;;;;;!!!!;;;; ::::::::::::''.:*>>+)::::::::::-)?=%=&$####$#$>;:::::::::::::;;;;;;;;;;;!!!!;;;; :::::::::::-,.,-!))*!!::::::::-:::::;?%&$$$$$$$+::::::::::;;;;;;;;;;;;;!!!!!;;;; ::::::::::::-~~~-:;!;!:::::::::::---!>?%&&&$$$$&:::::::::;;;;;;;;;;;;;;!!!!!!;!! ::::::::::::::~~~-:!!*!::::::::----;+>>==%&&$$$$>::::::::;;;;;;;;;;;;;;!!!!!!!!! :::::::::::::::-^~-;!*):::::::-::!+>++>?==%&$$$$$?!::::::::;;;;;;;;;;;!!!!!!!!!! ::::::::::::::::-^^~~;*::::::;*)+>>+))>?===&&&&&&&&=+!;;;;::::;;;;;;;;!!!!!!!!!! :::::::::::::::::~..^;+>??????>>>>>>>>?==?+%%&&&&%%%%%==??>+*;:;;;;;;!!!!!!!!!!! :::::::::::::::::-.,^;+====%%>***)++++>=%?>>=%%%%%%%%=??===%%%+;;;;;;!!!!!!!!!!! :::::::::::::::::-..,;+???=%&%+**!!***)>??>>?=?==%&&%>+>>>>?=&&>;;;;;!!!!!!!;!!! :::::::::::::::::-.'.:+??==%%=?>>++))))+>>>>??===%&%=>+++++>?%&&;;;;;!!!!!!!!!!! :::::::::::::::::-.'.-+?==%%==??????>>>>>>>>????==%%=?>>+))+?=&$);;;!!!!!!!!!!!! :::::::::::::::::-''.-+?=%%%==?????????>>>>>>>???===%==?>+)+>=&$>;;;!!!!!!!!!!!! :::::::::::::::::~''.-+=%&%====????==???>>>>>>>???==%%%%=>++>=%$?;;;!!!!!!!!!!!! ::::::::::::::-^,.''.-+=&====????====??++++>>>??==%&&&&=+)+?%$=;;;!!!!!!!!!!!! ::::::::::::-,'.,.''.-)>?%*;;;)>???=====?+)))+>>??=%&$$$#%>)+?%$%;;;!!!!!!!!!!!! ;;;;;::;:::~.'.,,'''.:)>?=+:;^^,-)?===%%=+**))+>??>+>>?=&&>++?%&%;;;!!;!!!!!!!!! ;;;;;;:;:-,''..,,'''.-)>?==!:^^..,->=%%%%+***)++!--:))>>?&=++?%&&;;!!!!!!!!!!!!! ;;;;;;;:,.''.....'''.:)>?=%*-^,.,,.^*%&&&>****!~~::-!*>>?&?-~~:*>!!!!!!!!!!!!!!! ;;;;;;;^..''.....''',:)>?=&):~,^~~.,,;%$&?)*!-~~-:;*;*>>?%:...,-:!***!!!!!!!!!!! ;;;;;;;-,''....''''',:)?==&?*:^-~-,^,,-=$%>!~~--~~!***>>=%;,..,~~:!)+++)!!!!!!!* ;;;;;;;;^'''...''''.,:)=###?;::---~;^^^~+?!~---~;!!)+)+>&?-..,^~-:!)+>?=?*!!!!!* ;;;;;;;;~.''..'''''.,:)?$##%!-::----~~~^~~~~~~~~;**)++>>&+-,,^~-:!*)+>?=%=)!!!!* ;;;;;;;;-.''..~~'''.^:)>$$#&+!!;;~~;;;-~~~~--;!!--*)+)+?$)-^.,~:;!*+>>?=%%=*!!!! ;;;;;;;;-..^;+%;''..^:*+$$#$?)!;;:;*::*::::;;*!;*;*)+++%%):^..,~:!)+>??=%%=*!!** ;;;;;;;;:~)==?+,''.,^:*+$$$$%+**!;!*!!!!!;;:!**!)))+++>$?!^..'..^:*+>?==%%>!!!** ;;;;;;;;;)>*);;.'..,~;*)&$=$&>)+)*!;:;;;*;:!))))))++++=&)~...''..~;)>?=%%%)!!*** ;;;;;;;;!))^-~!....,~;*)%$>&&%?+)**:::-:*!;!))))))+++?&?:,.......,:*+?=%%?*!**** ;;;;;;;;;);~-!+,..,^-;*)+?+=&%>+)**-:;:!!!!!*)))*+++>%%>)))**;:;!)+++>=%%+!***** ;;;;;;;;;;;;!*!,..,^-;*)++*>%%?>)*;-*--:;;;*!!*+)+>+=&##&==%&$####$%==%>!***** ;;;;;;;;;;;;;;;,,.,^-!*)+)!+%=?+!;;;::::::!!!!*)*++>%%*>=&=>>>?%&$#$&$&==?****** ;;;;;;;;;;;;;;;^,.,^:!*!)*!)==?)*;;;:----:::;;!)+++?%>!!!!!~-*?=&$#$&&%?=?****** ;!;;;;;;;;;;;;:~.,,~:!*!)+!*==?>)!;;-~~--:::**!)+>>=%*!!;-...,-?&$&+)+>=?+****** !!!!!!!;;;;;;^.'.,^~:!!*>>)!=??>+*;;:-:--;:!;!*)+>?%+;-^.....,^->$=************* !!!!!!!;!;;;;;;;::~~:!*)+++*===++*;-~~---;;;!!*)>>)!,......,^^^~!>>********)**)) !!!!!!!!!!!!;;;;;;;;;:--!*))?=?>)*:-~~-~:;:::;:~,........,,,,----))********))))) ;!!!!!!!!!!!!!!;;;;;;;^.^:!*)+>>+*:~^^~~^^^^...........,,,,,^,-:;*********)))))) !!!!!!!!!!!!!!!!;;;;;::.',-;:;;-:~,...'....',.......,,,,^^^~~~-;*)******)))))))) !!!!!!!!!!!!!!;;:-~^^~-:.',--~~^^,,.,............,,,^^~~--::;;!!*)*****))))))))) !!!!!!!!!!!!;;;~^,^~-:;!;.',^^^^^.,.........,,,,^^~~-:;!**************)))))))))) !!!!!!!!!!!;!:~^,,^:;!***;,'.,,,^.,.....,,,^^~~-::;!!)>=%%=>)****)))))))))))))))