~~~|zyy~z~{~}~~~~}}}~~}}|}{}y}x}w~v~v~uuuwz~~~~~~~~~}||~}~~~~}}}}}|{|}|{zy~x}w|v|v{uxuwuwuxwy{z{|~~}|{{{|}}}|{zzyxy{||zxwvvutsrqponpx{vt~v|{zyxwvuuuuwz~|{{|}~~}{zyxwvuutttvx}}|{~|~}~~~~~}}}}~~}|zyxwvut~t~ttuw|~}|~|~}~~~}}~~}~~~}~{~z~y~x~w~vvuvwz~~~}}}}}}~