(c) 2002-2019 by Vladimir '3APA3A' Dubrovin <vlad@3proxy.ru>