参考元のサイトを元に、かなり近づける作業。