You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OpenTTD-patches/src/table/genland.h

3013 lines
36 KiB
C

/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file genland.h Table used to generate deserts and/or rain forests. */
#define M(x, y) {x, y}
// This default array draws a filled circle 13 tiles in diameter
static const TileIndexDiffC _make_desert_or_rainforest_data[] = {
M(-5, -5),
M(-4, -5),
M(-3, -5),
M(-2, -5),
M(-1, -5),
M( 0, -5),
M( 1, -5),
M( 2, -5),
M( 3, -5),
M( 4, -5),
M( 5, -5),
M(-5, -4),
M(-4, -4),
M(-3, -4),
M(-2, -4),
M(-1, -4),
M( 0, -4),
M( 1, -4),
M( 2, -4),
M( 3, -4),
M( 4, -4),
M( 5, -4),
M(-5, -3),
M(-4, -3),
M(-3, -3),
M(-2, -3),
M(-1, -3),
M( 0, -3),
M( 1, -3),
M( 2, -3),
M( 3, -3),
M( 4, -3),
M( 5, -3),
M(-5, -2),
M(-4, -2),
M(-3, -2),
M(-2, -2),
M(-1, -2),
M( 0, -2),
M( 1, -2),
M( 2, -2),
M( 3, -2),
M( 4, -2),
M( 5, -2),
M(-5, -1),
M(-4, -1),
M(-3, -1),
M(-2, -1),
M(-1, -1),
M( 0, -1),
M( 1, -1),
M( 2, -1),
M( 3, -1),
M( 4, -1),
M( 5, -1),
M(-5, 0),
M(-4, 0),
M(-3, 0),
M(-2, 0),
M(-1, 0),
M( 0, 0),
M( 1, 0),
M( 2, 0),
M( 3, 0),
M( 4, 0),
M( 5, 0),
M(-5, 1),
M(-4, 1),
M(-3, 1),
M(-2, 1),
M(-1, 1),
M( 0, 1),
M( 1, 1),
M( 2, 1),
M( 3, 1),
M( 4, 1),
M( 5, 1),
M(-5, 2),
M(-4, 2),
M(-3, 2),
M(-2, 2),
M(-1, 2),
M( 0, 2),
M( 1, 2),
M( 2, 2),
M( 3, 2),
M( 4, 2),
M( 5, 2),
M(-5, 3),
M(-4, 3),
M(-3, 3),
M(-2, 3),
M(-1, 3),
M( 0, 3),
M( 1, 3),
M( 2, 3),
M( 3, 3),
M( 4, 3),
M( 5, 3),
M(-5, 4),
M(-4, 4),
M(-3, 4),
M(-2, 4),
M(-1, 4),
M( 0, 4),
M( 1, 4),
M( 2, 4),
M( 3, 4),
M( 4, 4),
M( 5, 4),
M(-5, 5),
M(-4, 5),
M(-3, 5),
M(-2, 5),
M(-1, 5),
M( 0, 5),
M( 1, 5),
M( 2, 5),
M( 3, 5),
M( 4, 5),
M( 5, 5),
M( 6, -3),
M(-6, -3),
M(-3, 6),
M(-3, -6),
M( 6, -2),
M(-6, -2),
M(-2, 6),
M(-2, -6),
M( 6, -1),
M(-6, -1),
M(-1, 6),
M(-1, -6),
M( 6, 0),
M(-6, 0),
M( 0, 6),
M( 0, -6),
M( 6, 1),
M(-6, 1),
M( 1, 6),
M( 1, -6),
M( 6, 2),
M(-6, 2),
M( 2, 6),
M( 2, -6),
M( 6, 3),
M(-6, 3),
M( 3, 6),
M( 3, -6)
};
// This array draws a filled circle 19 tiles in diameter
static const TileIndexDiffC _make_desert_or_rainforest_data_medium[] = {
M(-3, -9),
M(-2, -9),
M(-1, -9),
M(0, -9),
M(1, -9),
M(2, -9),
M(3, -9),
M(-5, -8),
M(-4, -8),
M(-3, -8),
M(-2, -8),
M(-1, -8),
M(0, -8),
M(1, -8),
M(2, -8),
M(3, -8),
M(4, -8),
M(5, -8),
M(-6, -7),
M(-5, -7),
M(-4, -7),
M(-3, -7),
M(-2, -7),
M(-1, -7),
M(0, -7),
M(1, -7),
M(2, -7),
M(3, -7),
M(4, -7),
M(5, -7),
M(6, -7),
M(-7, -6),
M(-6, -6),
M(-5, -6),
M(-4, -6),
M(-3, -6),
M(-2, -6),
M(-1, -6),
M(0, -6),
M(1, -6),
M(2, -6),
M(3, -6),
M(4, -6),
M(5, -6),
M(6, -6),
M(7, -6),
M(-8, -5),
M(-7, -5),
M(-6, -5),
M(-5, -5),
M(-4, -5),
M(-3, -5),
M(-2, -5),
M(-1, -5),
M(0, -5),
M(1, -5),
M(2, -5),
M(3, -5),
M(4, -5),
M(5, -5),
M(6, -5),
M(7, -5),
M(8, -5),
M(-8, -4),
M(-7, -4),
M(-6, -4),
M(-5, -4),
M(-4, -4),
M(-3, -4),
M(-2, -4),
M(-1, -4),
M(0, -4),
M(1, -4),
M(2, -4),
M(3, -4),
M(4, -4),
M(5, -4),
M(6, -4),
M(7, -4),
M(8, -4),
M(-9, -3),
M(-8, -3),
M(-7, -3),
M(-6, -3),
M(-5, -3),
M(-4, -3),
M(-3, -3),
M(-2, -3),
M(-1, -3),
M(0, -3),
M(1, -3),
M(2, -3),
M(3, -3),
M(4, -3),
M(5, -3),
M(6, -3),
M(7, -3),
M(8, -3),
M(9, -3),
M(-9, -2),
M(-8, -2),
M(-7, -2),
M(-6, -2),
M(-5, -2),
M(-4, -2),
M(-3, -2),
M(-2, -2),
M(-1, -2),
M(0, -2),
M(1, -2),
M(2, -2),
M(3, -2),
M(4, -2),
M(5, -2),
M(6, -2),
M(7, -2),
M(8, -2),
M(9, -2),
M(-9, -1),
M(-8, -1),
M(-7, -1),
M(-6, -1),
M(-5, -1),
M(-4, -1),
M(-3, -1),
M(-2, -1),
M(-1, -1),
M(0, -1),
M(1, -1),
M(2, -1),
M(3, -1),
M(4, -1),
M(5, -1),
M(6, -1),
M(7, -1),
M(8, -1),
M(9, -1),
M(-9, 0),
M(-8, 0),
M(-7, 0),
M(-6, 0),
M(-5, 0),
M(-4, 0),
M(-3, 0),
M(-2, 0),
M(-1, 0),
M(0, 0),
M(1, 0),
M(2, 0),
M(3, 0),
M(4, 0),
M(5, 0),
M(6, 0),
M(7, 0),
M(8, 0),
M(9, 0),
M(-9, 1),
M(-8, 1),
M(-7, 1),
M(-6, 1),
M(-5, 1),
M(-4, 1),
M(-3, 1),
M(-2, 1),
M(-1, 1),
M(0, 1),
M(1, 1),
M(2, 1),
M(3, 1),
M(4, 1),
M(5, 1),
M(6, 1),
M(7, 1),
M(8, 1),
M(9, 1),
M(-9, 2),
M(-8, 2),
M(-7, 2),
M(-6, 2),
M(-5, 2),
M(-4, 2),
M(-3, 2),
M(-2, 2),
M(-1, 2),
M(0, 2),
M(1, 2),
M(2, 2),
M(3, 2),
M(4, 2),
M(5, 2),
M(6, 2),
M(7, 2),
M(8, 2),
M(9, 2),
M(-9, 3),
M(-8, 3),
M(-7, 3),
M(-6, 3),
M(-5, 3),
M(-4, 3),
M(-3, 3),
M(-2, 3),
M(-1, 3),
M(0, 3),
M(1, 3),
M(2, 3),
M(3, 3),
M(4, 3),
M(5, 3),
M(6, 3),
M(7, 3),
M(8, 3),
M(9, 3),
M(-8, 4),
M(-7, 4),
M(-6, 4),
M(-5, 4),
M(-4, 4),
M(-3, 4),
M(-2, 4),
M(-1, 4),
M(0, 4),
M(1, 4),
M(2, 4),
M(3, 4),
M(4, 4),
M(5, 4),
M(6, 4),
M(7, 4),
M(8, 4),
M(-8, 5),
M(-7, 5),
M(-6, 5),
M(-5, 5),
M(-4, 5),
M(-3, 5),
M(-2, 5),
M(-1, 5),
M(0, 5),
M(1, 5),
M(2, 5),
M(3, 5),
M(4, 5),
M(5, 5),
M(6, 5),
M(7, 5),
M(8, 5),
M(-7, 6),
M(-6, 6),
M(-5, 6),
M(-4, 6),
M(-3, 6),
M(-2, 6),
M(-1, 6),
M(0, 6),
M(1, 6),
M(2, 6),
M(3, 6),
M(4, 6),
M(5, 6),
M(6, 6),
M(7, 6),
M(-6, 7),
M(-5, 7),
M(-4, 7),
M(-3, 7),
M(-2, 7),
M(-1, 7),
M(0, 7),
M(1, 7),
M(2, 7),
M(3, 7),
M(4, 7),
M(5, 7),
M(6, 7),
M(-5, 8),
M(-4, 8),
M(-3, 8),
M(-2, 8),
M(-1, 8),
M(0, 8),
M(1, 8),
M(2, 8),
M(3, 8),
M(4, 8),
M(5, 8),
M(-3, 9),
M(-2, 9),
M(-1, 9),
M(0, 9),
M(1, 9),
M(2, 9),
M(3, 9)
};
// This array draws a filled circle 25 tiles in diameter
static const TileIndexDiffC _make_desert_or_rainforest_data_large[] = {
M(-3, -12),
M(-2, -12),
M(-1, -12),
M(0, -12),
M(1, -12),
M(2, -12),
M(3, -12),
M(-5, -11),
M(-4, -11),
M(-3, -11),
M(-2, -11),
M(-1, -11),
M(0, -11),
M(1, -11),
M(2, -11),
M(3, -11),
M(4, -11),
M(5, -11),
M(-7, -10),
M(-6, -10),
M(-5, -10),
M(-4, -10),
M(-3, -10),
M(-2, -10),
M(-1, -10),
M(0, -10),
M(1, -10),
M(2, -10),
M(3, -10),
M(4, -10),
M(5, -10),
M(6, -10),
M(7, -10),
M(-8, -9),
M(-7, -9),
M(-6, -9),
M(-5, -9),
M(-4, -9),
M(-3, -9),
M(-2, -9),
M(-1, -9),
M(0, -9),
M(1, -9),
M(2, -9),
M(3, -9),
M(4, -9),
M(5, -9),
M(6, -9),
M(7, -9),
M(8, -9),
M(-9, -8),
M(-8, -8),
M(-7, -8),
M(-6, -8),
M(-5, -8),
M(-4, -8),
M(-3, -8),
M(-2, -8),
M(-1, -8),
M(0, -8),
M(1, -8),
M(2, -8),
M(3, -8),
M(4, -8),
M(5, -8),
M(6, -8),
M(7, -8),
M(8, -8),
M(9, -8),
M(-10, -7),
M(-9, -7),
M(-8, -7),
M(-7, -7),
M(-6, -7),
M(-5, -7),
M(-4, -7),
M(-3, -7),
M(-2, -7),
M(-1, -7),
M(0, -7),
M(1, -7),
M(2, -7),
M(3, -7),
M(4, -7),
M(5, -7),
M(6, -7),
M(7, -7),
M(8, -7),
M(9, -7),
M(10, -7),
M(-10, -6),
M(-9, -6),
M(-8, -6),
M(-7, -6),
M(-6, -6),
M(-5, -6),
M(-4, -6),
M(-3, -6),
M(-2, -6),
M(-1, -6),
M(0, -6),
M(1, -6),
M(2, -6),
M(3, -6),
M(4, -6),
M(5, -6),
M(6, -6),
M(7, -6),
M(8, -6),
M(9, -6),
M(10, -6),
M(-11, -5),
M(-10, -5),
M(-9, -5),
M(-8, -5),
M(-7, -5),
M(-6, -5),
M(-5, -5),
M(-4, -5),
M(-3, -5),
M(-2, -5),
M(-1, -5),
M(0, -5),
M(1, -5),
M(2, -5),
M(3, -5),
M(4, -5),
M(5, -5),
M(6, -5),
M(7, -5),
M(8, -5),
M(9, -5),
M(10, -5),
M(11, -5),
M(-11, -4),
M(-10, -4),
M(-9, -4),
M(-8, -4),
M(-7, -4),
M(-6, -4),
M(-5, -4),
M(-4, -4),
M(-3, -4),
M(-2, -4),
M(-1, -4),
M(0, -4),
M(1, -4),
M(2, -4),
M(3, -4),
M(4, -4),
M(5, -4),
M(6, -4),
M(7, -4),
M(8, -4),
M(9, -4),
M(10, -4),
M(11, -4),
M(-12, -3),
M(-11, -3),
M(-10, -3),
M(-9, -3),
M(-8, -3),
M(-7, -3),
M(-6, -3),
M(-5, -3),
M(-4, -3),
M(-3, -3),
M(-2, -3),
M(-1, -3),
M(0, -3),
M(1, -3),
M(2, -3),
M(3, -3),
M(4, -3),
M(5, -3),
M(6, -3),
M(7, -3),
M(8, -3),
M(9, -3),
M(10, -3),
M(11, -3),
M(12, -3),
M(-12, -2),
M(-11, -2),
M(-10, -2),
M(-9, -2),
M(-8, -2),
M(-7, -2),
M(-6, -2),
M(-5, -2),
M(-4, -2),
M(-3, -2),
M(-2, -2),
M(-1, -2),
M(0, -2),
M(1, -2),
M(2, -2),
M(3, -2),
M(4, -2),
M(5, -2),
M(6, -2),
M(7, -2),
M(8, -2),
M(9, -2),
M(10, -2),
M(11, -2),
M(12, -2),
M(-12, -1),
M(-11, -1),
M(-10, -1),
M(-9, -1),
M(-8, -1),
M(-7, -1),
M(-6, -1),
M(-5, -1),
M(-4, -1),
M(-3, -1),
M(-2, -1),
M(-1, -1),
M(0, -1),
M(1, -1),
M(2, -1),
M(3, -1),
M(4, -1),
M(5, -1),
M(6, -1),
M(7, -1),
M(8, -1),
M(9, -1),
M(10, -1),
M(11, -1),
M(12, -1),
M(-12, 0),
M(-11, 0),
M(-10, 0),
M(-9, 0),
M(-8, 0),
M(-7, 0),
M(-6, 0),
M(-5, 0),
M(-4, 0),
M(-3, 0),
M(-2, 0),
M(-1, 0),
M(0, 0),
M(1, 0),
M(2, 0),
M(3, 0),
M(4, 0),
M(5, 0),
M(6, 0),
M(7, 0),
M(8, 0),
M(9, 0),
M(10, 0),
M(11, 0),
M(12, 0),
M(-12, 1),
M(-11, 1),
M(-10, 1),
M(-9, 1),
M(-8, 1),
M(-7, 1),
M(-6, 1),
M(-5, 1),
M(-4, 1),
M(-3, 1),
M(-2, 1),
M(-1, 1),
M(0, 1),
M(1, 1),
M(2, 1),
M(3, 1),
M(4, 1),
M(5, 1),
M(6, 1),
M(7, 1),
M(8, 1),
M(9, 1),
M(10, 1),
M(11, 1),
M(12, 1),
M(-12, 2),
M(-11, 2),
M(-10, 2),
M(-9, 2),
M(-8, 2),
M(-7, 2),
M(-6, 2),
M(-5, 2),
M(-4, 2),
M(-3, 2),
M(-2, 2),
M(-1, 2),
M(0, 2),
M(1, 2),
M(2, 2),
M(3, 2),
M(4, 2),
M(5, 2),
M(6, 2),
M(7, 2),
M(8, 2),
M(9, 2),
M(10, 2),
M(11, 2),
M(12, 2),
M(-12, 3),
M(-11, 3),
M(-10, 3),
M(-9, 3),
M(-8, 3),
M(-7, 3),
M(-6, 3),
M(-5, 3),
M(-4, 3),
M(-3, 3),
M(-2, 3),
M(-1, 3),
M(0, 3),
M(1, 3),
M(2, 3),
M(3, 3),
M(4, 3),
M(5, 3),
M(6, 3),
M(7, 3),
M(8, 3),
M(9, 3),
M(10, 3),
M(11, 3),
M(12, 3),
M(-11, 4),
M(-10, 4),
M(-9, 4),
M(-8, 4),
M(-7, 4),
M(-6, 4),
M(-5, 4),
M(-4, 4),
M(-3, 4),
M(-2, 4),
M(-1, 4),
M(0, 4),
M(1, 4),
M(2, 4),
M(3, 4),
M(4, 4),
M(5, 4),
M(6, 4),
M(7, 4),
M(8, 4),
M(9, 4),
M(10, 4),
M(11, 4),
M(-11, 5),
M(-10, 5),
M(-9, 5),
M(-8, 5),
M(-7, 5),
M(-6, 5),
M(-5, 5),
M(-4, 5),
M(-3, 5),
M(-2, 5),
M(-1, 5),
M(0, 5),
M(1, 5),
M(2, 5),
M(3, 5),
M(4, 5),
M(5, 5),
M(6, 5),
M(7, 5),
M(8, 5),
M(9, 5),
M(10, 5),
M(11, 5),
M(-10, 6),
M(-9, 6),
M(-8, 6),
M(-7, 6),
M(-6, 6),
M(-5, 6),
M(-4, 6),
M(-3, 6),
M(-2, 6),
M(-1, 6),
M(0, 6),
M(1, 6),
M(2, 6),
M(3, 6),
M(4, 6),
M(5, 6),
M(6, 6),
M(7, 6),
M(8, 6),
M(9, 6),
M(10, 6),
M(-10, 7),
M(-9, 7),
M(-8, 7),
M(-7, 7),
M(-6, 7),
M(-5, 7),
M(-4, 7),
M(-3, 7),
M(-2, 7),
M(-1, 7),
M(0, 7),
M(1, 7),
M(2, 7),
M(3, 7),
M(4, 7),
M(5, 7),
M(6, 7),
M(7, 7),
M(8, 7),
M(9, 7),
M(10, 7),
M(-9, 8),
M(-8, 8),
M(-7, 8),
M(-6, 8),
M(-5, 8),
M(-4, 8),
M(-3, 8),
M(-2, 8),
M(-1, 8),
M(0, 8),
M(1, 8),
M(2, 8),
M(3, 8),
M(4, 8),
M(5, 8),
M(6, 8),
M(7, 8),
M(8, 8),
M(9, 8),
M(-8, 9),
M(-7, 9),
M(-6, 9),
M(-5, 9),
M(-4, 9),
M(-3, 9),
M(-2, 9),
M(-1, 9),
M(0, 9),
M(1, 9),
M(2, 9),
M(3, 9),
M(4, 9),
M(5, 9),
M(6, 9),
M(7, 9),
M(8, 9),
M(-7, 10),
M(-6, 10),
M(-5, 10),
M(-4, 10),
M(-3, 10),
M(-2, 10),
M(-1, 10),
M(0, 10),
M(1, 10),
M(2, 10),
M(3, 10),
M(4, 10),
M(5, 10),
M(6, 10),
M(7, 10),
M(-5, 11),
M(-4, 11),
M(-3, 11),
M(-2, 11),
M(-1, 11),
M(0, 11),
M(1, 11),
M(2, 11),
M(3, 11),
M(4, 11),
M(5, 11),
M(-3, 12),
M(-2, 12),
M(-1, 12),
M(0, 12),
M(1, 12),
M(2, 12),
M(3, 12),
};
// This array draws a filled circle 51 tiles in diameter. This is stupid.
static const TileIndexDiffC _make_desert_or_rainforest_data_extralarge[] = {
M(-5, -25),
M(-4, -25),
M(-3, -25),
M(-2, -25),
M(-1, -25),
M(0, -25),
M(1, -25),
M(2, -25),
M(3, -25),
M(4, -25),
M(5, -25),
M(-8, -24),
M(-7, -24),
M(-6, -24),
M(-5, -24),
M(-4, -24),
M(-3, -24),
M(-2, -24),
M(-1, -24),
M(0, -24),
M(1, -24),
M(2, -24),
M(3, -24),
M(4, -24),
M(5, -24),
M(6, -24),
M(7, -24),
M(8, -24),
M(-11, -23),
M(-10, -23),
M(-9, -23),
M(-8, -23),
M(-7, -23),
M(-6, -23),
M(-5, -23),
M(-4, -23),
M(-3, -23),
M(-2, -23),
M(-1, -23),
M(0, -23),
M(1, -23),
M(2, -23),
M(3, -23),
M(4, -23),
M(5, -23),
M(6, -23),
M(7, -23),
M(8, -23),
M(9, -23),
M(10, -23),
M(11, -23),
M(-12, -22),
M(-11, -22),
M(-10, -22),
M(-9, -22),
M(-8, -22),
M(-7, -22),
M(-6, -22),
M(-5, -22),
M(-4, -22),
M(-3, -22),
M(-2, -22),
M(-1, -22),
M(0, -22),
M(1, -22),
M(2, -22),
M(3, -22),
M(4, -22),
M(5, -22),
M(6, -22),
M(7, -22),
M(8, -22),
M(9, -22),
M(10, -22),
M(11, -22),
M(12, -22),
M(-14, -21),
M(-13, -21),
M(-12, -21),
M(-11, -21),
M(-10, -21),
M(-9, -21),
M(-8, -21),
M(-7, -21),
M(-6, -21),
M(-5, -21),
M(-4, -21),
M(-3, -21),
M(-2, -21),
M(-1, -21),
M(0, -21),
M(1, -21),
M(2, -21),
M(3, -21),
M(4, -21),
M(5, -21),
M(6, -21),
M(7, -21),
M(8, -21),
M(9, -21),
M(10, -21),
M(11, -21),
M(12, -21),
M(13, -21),
M(14, -21),
M(-15, -20),
M(-14, -20),
M(-13, -20),
M(-12, -20),
M(-11, -20),
M(-10, -20),
M(-9, -20),
M(-8, -20),
M(-7, -20),
M(-6, -20),
M(-5, -20),
M(-4, -20),
M(-3, -20),
M(-2, -20),
M(-1, -20),
M(0, -20),
M(1, -20),
M(2, -20),
M(3, -20),
M(4, -20),
M(5, -20),
M(6, -20),
M(7, -20),
M(8, -20),
M(9, -20),
M(10, -20),
M(11, -20),
M(12, -20),
M(13, -20),
M(14, -20),
M(15, -20),
M(-17, -19),
M(-16, -19),
M(-15, -19),
M(-14, -19),
M(-13, -19),
M(-12, -19),
M(-11, -19),
M(-10, -19),
M(-9, -19),
M(-8, -19),
M(-7, -19),
M(-6, -19),
M(-5, -19),
M(-4, -19),
M(-3, -19),
M(-2, -19),
M(-1, -19),
M(0, -19),
M(1, -19),
M(2, -19),
M(3, -19),
M(4, -19),
M(5, -19),
M(6, -19),
M(7, -19),
M(8, -19),
M(9, -19),
M(10, -19),
M(11, -19),
M(12, -19),
M(13, -19),
M(14, -19),
M(15, -19),
M(16, -19),
M(17, -19),
M(-18, -18),
M(-17, -18),
M(-16, -18),
M(-15, -18),
M(-14, -18),
M(-13, -18),
M(-12, -18),
M(-11, -18),
M(-10, -18),
M(-9, -18),
M(-8, -18),
M(-7, -18),
M(-6, -18),
M(-5, -18),
M(-4, -18),
M(-3, -18),
M(-2, -18),
M(-1, -18),
M(0, -18),
M(1, -18),
M(2, -18),
M(3, -18),
M(4, -18),
M(5, -18),
M(6, -18),
M(7, -18),
M(8, -18),
M(9, -18),
M(10, -18),
M(11, -18),
M(12, -18),
M(13, -18),
M(14, -18),
M(15, -18),
M(16, -18),
M(17, -18),
M(18, -18),
M(-19, -17),
M(-18, -17),
M(-17, -17),
M(-16, -17),
M(-15, -17),
M(-14, -17),
M(-13, -17),
M(-12, -17),
M(-11, -17),
M(-10, -17),
M(-9, -17),
M(-8, -17),
M(-7, -17),
M(-6, -17),
M(-5, -17),
M(-4, -17),
M(-3, -17),
M(-2, -17),
M(-1, -17),
M(0, -17),
M(1, -17),
M(2, -17),
M(3, -17),
M(4, -17),
M(5, -17),
M(6, -17),
M(7, -17),
M(8, -17),
M(9, -17),
M(10, -17),
M(11, -17),
M(12, -17),
M(13, -17),
M(14, -17),
M(15, -17),
M(16, -17),
M(17, -17),
M(18, -17),
M(19, -17),
M(-19, -16),
M(-18, -16),
M(-17, -16),
M(-16, -16),
M(-15, -16),
M(-14, -16),
M(-13, -16),
M(-12, -16),
M(-11, -16),
M(-10, -16),
M(-9, -16),
M(-8, -16),
M(-7, -16),
M(-6, -16),
M(-5, -16),
M(-4, -16),
M(-3, -16),
M(-2, -16),
M(-1, -16),
M(0, -16),
M(1, -16),
M(2, -16),
M(3, -16),
M(4, -16),
M(5, -16),
M(6, -16),
M(7, -16),
M(8, -16),
M(9, -16),
M(10, -16),
M(11, -16),
M(12, -16),
M(13, -16),
M(14, -16),
M(15, -16),
M(16, -16),
M(17, -16),
M(18, -16),
M(19, -16),
M(-20, -15),
M(-19, -15),
M(-18, -15),
M(-17, -15),
M(-16, -15),
M(-15, -15),
M(-14, -15),
M(-13, -15),
M(-12, -15),
M(-11, -15),
M(-10, -15),
M(-9, -15),
M(-8, -15),
M(-7, -15),
M(-6, -15),
M(-5, -15),
M(-4, -15),
M(-3, -15),
M(-2, -15),
M(-1, -15),
M(0, -15),
M(1, -15),
M(2, -15),
M(3, -15),
M(4, -15),
M(5, -15),
M(6, -15),
M(7, -15),
M(8, -15),
M(9, -15),
M(10, -15),
M(11, -15),
M(12, -15),
M(13, -15),
M(14, -15),
M(15, -15),
M(16, -15),
M(17, -15),
M(18, -15),
M(19, -15),
M(20, -15),
M(-21, -14),
M(-20, -14),
M(-19, -14),
M(-18, -14),
M(-17, -14),
M(-16, -14),
M(-15, -14),
M(-14, -14),
M(-13, -14),
M(-12, -14),
M(-11, -14),
M(-10, -14),
M(-9, -14),
M(-8, -14),
M(-7, -14),
M(-6, -14),
M(-5, -14),
M(-4, -14),
M(-3, -14),
M(-2, -14),
M(-1, -14),
M(0, -14),
M(1, -14),
M(2, -14),
M(3, -14),
M(4, -14),
M(5, -14),
M(6, -14),
M(7, -14),
M(8, -14),
M(9, -14),
M(10, -14),
M(11, -14),
M(12, -14),
M(13, -14),
M(14, -14),
M(15, -14),
M(16, -14),
M(17, -14),
M(18, -14),
M(19, -14),
M(20, -14),
M(21, -14),
M(-21, -13),
M(-20, -13),
M(-19, -13),
M(-18, -13),
M(-17, -13),
M(-16, -13),
M(-15, -13),
M(-14, -13),
M(-13, -13),
M(-12, -13),
M(-11, -13),
M(-10, -13),
M(-9, -13),
M(-8, -13),
M(-7, -13),
M(-6, -13),
M(-5, -13),
M(-4, -13),
M(-3, -13),
M(-2, -13),
M(-1, -13),
M(0, -13),
M(1, -13),
M(2, -13),
M(3, -13),
M(4, -13),
M(5, -13),
M(6, -13),
M(7, -13),
M(8, -13),
M(9, -13),
M(10, -13),
M(11, -13),
M(12, -13),
M(13, -13),
M(14, -13),
M(15, -13),
M(16, -13),
M(17, -13),
M(18, -13),
M(19, -13),
M(20, -13),
M(21, -13),
M(-22, -12),
M(-21, -12),
M(-20, -12),
M(-19, -12),
M(-18, -12),
M(-17, -12),
M(-16, -12),
M(-15, -12),
M(-14, -12),
M(-13, -12),
M(-12, -12),
M(-11, -12),
M(-10, -12),
M(-9, -12),
M(-8, -12),
M(-7, -12),
M(-6, -12),
M(-5, -12),
M(-4, -12),
M(-3, -12),
M(-2, -12),
M(-1, -12),
M(0, -12),
M(1, -12),
M(2, -12),
M(3, -12),
M(4, -12),
M(5, -12),
M(6, -12),
M(7, -12),
M(8, -12),
M(9, -12),
M(10, -12),
M(11, -12),
M(12, -12),
M(13, -12),
M(14, -12),
M(15, -12),
M(16, -12),
M(17, -12),
M(18, -12),
M(19, -12),
M(20, -12),
M(21, -12),
M(22, -12),
M(-23, -11),
M(-22, -11),
M(-21, -11),
M(-20, -11),
M(-19, -11),
M(-18, -11),
M(-17, -11),
M(-16, -11),
M(-15, -11),
M(-14, -11),
M(-13, -11),
M(-12, -11),
M(-11, -11),
M(-10, -11),
M(-9, -11),
M(-8, -11),
M(-7, -11),
M(-6, -11),
M(-5, -11),
M(-4, -11),
M(-3, -11),
M(-2, -11),
M(-1, -11),
M(0, -11),
M(1, -11),
M(2, -11),
M(3, -11),
M(4, -11),
M(5, -11),
M(6, -11),
M(7, -11),
M(8, -11),
M(9, -11),
M(10, -11),
M(11, -11),
M(12, -11),
M(13, -11),
M(14, -11),
M(15, -11),
M(16, -11),
M(17, -11),
M(18, -11),
M(19, -11),
M(20, -11),
M(21, -11),
M(22, -11),
M(23, -11),
M(-23, -10),
M(-22, -10),
M(-21, -10),
M(-20, -10),
M(-19, -10),
M(-18, -10),
M(-17, -10),
M(-16, -10),
M(-15, -10),
M(-14, -10),
M(-13, -10),
M(-12, -10),
M(-11, -10),
M(-10, -10),
M(-9, -10),
M(-8, -10),
M(-7, -10),
M(-6, -10),
M(-5, -10),
M(-4, -10),
M(-3, -10),
M(-2, -10),
M(-1, -10),
M(0, -10),
M(1, -10),
M(2, -10),
M(3, -10),
M(4, -10),
M(5, -10),
M(6, -10),
M(7, -10),
M(8, -10),
M(9, -10),
M(10, -10),
M(11, -10),
M(12, -10),
M(13, -10),
M(14, -10),
M(15, -10),
M(16, -10),
M(17, -10),
M(18, -10),
M(19, -10),
M(20, -10),
M(21, -10),
M(22, -10),
M(23, -10),
M(-23, -9),
M(-22, -9),
M(-21, -9),
M(-20, -9),
M(-19, -9),
M(-18, -9),
M(-17, -9),
M(-16, -9),
M(-15, -9),
M(-14, -9),
M(-13, -9),
M(-12, -9),
M(-11, -9),
M(-10, -9),
M(-9, -9),
M(-8, -9),
M(-7, -9),
M(-6, -9),
M(-5, -9),
M(-4, -9),
M(-3, -9),
M(-2, -9),
M(-1, -9),
M(0, -9),
M(1, -9),
M(2, -9),
M(3, -9),
M(4, -9),
M(5, -9),
M(6, -9),
M(7, -9),
M(8, -9),
M(9, -9),
M(10, -9),
M(11, -9),
M(12, -9),
M(13, -9),
M(14, -9),
M(15, -9),
M(16, -9),
M(17, -9),
M(18, -9),
M(19, -9),
M(20, -9),
M(21, -9),
M(22, -9),
M(23, -9),
M(-24, -8),
M(-23, -8),
M(-22, -8),
M(-21, -8),
M(-20, -8),
M(-19, -8),
M(-18, -8),
M(-17, -8),
M(-16, -8),
M(-15, -8),
M(-14, -8),
M(-13, -8),
M(-12, -8),
M(-11, -8),
M(-10, -8),
M(-9, -8),
M(-8, -8),
M(-7, -8),
M(-6, -8),
M(-5, -8),
M(-4, -8),
M(-3, -8),
M(-2, -8),
M(-1, -8),
M(0, -8),
M(1, -8),
M(2, -8),
M(3, -8),
M(4, -8),
M(5, -8),
M(6, -8),
M(7, -8),
M(8, -8),
M(9, -8),
M(10, -8),
M(11, -8),
M(12, -8),
M(13, -8),
M(14, -8),
M(15, -8),
M(16, -8),
M(17, -8),
M(18, -8),
M(19, -8),
M(20, -8),
M(21, -8),
M(22, -8),
M(23, -8),
M(24, -8),
M(-24, -7),
M(-23, -7),
M(-22, -7),
M(-21, -7),
M(-20, -7),
M(-19, -7),
M(-18, -7),
M(-17, -7),
M(-16, -7),
M(-15, -7),
M(-14, -7),
M(-13, -7),
M(-12, -7),
M(-11, -7),
M(-10, -7),
M(-9, -7),
M(-8, -7),
M(-7, -7),
M(-6, -7),
M(-5, -7),
M(-4, -7),
M(-3, -7),
M(-2, -7),
M(-1, -7),
M(0, -7),
M(1, -7),
M(2, -7),
M(3, -7),
M(4, -7),
M(5, -7),
M(6, -7),
M(7, -7),
M(8, -7),
M(9, -7),
M(10, -7),
M(11, -7),
M(12, -7),
M(13, -7),
M(14, -7),
M(15, -7),
M(16, -7),
M(17, -7),
M(18, -7),
M(19, -7),
M(20, -7),
M(21, -7),
M(22, -7),
M(23, -7),
M(24, -7),
M(-24, -6),
M(-23, -6),
M(-22, -6),
M(-21, -6),
M(-20, -6),
M(-19, -6),
M(-18, -6),
M(-17, -6),
M(-16, -6),
M(-15, -6),
M(-14, -6),
M(-13, -6),
M(-12, -6),
M(-11, -6),
M(-10, -6),
M(-9, -6),
M(-8, -6),
M(-7, -6),
M(-6, -6),
M(-5, -6),
M(-4, -6),
M(-3, -6),
M(-2, -6),
M(-1, -6),
M(0, -6),
M(1, -6),
M(2, -6),
M(3, -6),
M(4, -6),
M(5, -6),
M(6, -6),
M(7, -6),
M(8, -6),
M(9, -6),
M(10, -6),
M(11, -6),
M(12, -6),
M(13, -6),
M(14, -6),
M(15, -6),
M(16, -6),
M(17, -6),
M(18, -6),
M(19, -6),
M(20, -6),
M(21, -6),
M(22, -6),
M(23, -6),
M(24, -6),
M(-25, -5),
M(-24, -5),
M(-23, -5),
M(-22, -5),
M(-21, -5),
M(-20, -5),
M(-19, -5),
M(-18, -5),
M(-17, -5),
M(-16, -5),
M(-15, -5),
M(-14, -5),
M(-13, -5),
M(-12, -5),
M(-11, -5),
M(-10, -5),
M(-9, -5),
M(-8, -5),
M(-7, -5),
M(-6, -5),
M(-5, -5),
M(-4, -5),
M(-3, -5),
M(-2, -5),
M(-1, -5),
M(0, -5),
M(1, -5),
M(2, -5),
M(3, -5),
M(4, -5),
M(5, -5),
M(6, -5),
M(7, -5),
M(8, -5),
M(9, -5),
M(10, -5),
M(11, -5),
M(12, -5),
M(13, -5),
M(14, -5),
M(15, -5),
M(16, -5),
M(17, -5),
M(18, -5),
M(19, -5),
M(20, -5),
M(21, -5),
M(22, -5),
M(23, -5),
M(24, -5),
M(25, -5),
M(-25, -4),
M(-24, -4),
M(-23, -4),
M(-22, -4),
M(-21, -4),
M(-20, -4),
M(-19, -4),
M(-18, -4),
M(-17, -4),
M(-16, -4),
M(-15, -4),
M(-14, -4),
M(-13, -4),
M(-12, -4),
M(-11, -4),
M(-10, -4),
M(-9, -4),
M(-8, -4),
M(-7, -4),
M(-6, -4),
M(-5, -4),
M(-4, -4),
M(-3, -4),
M(-2, -4),
M(-1, -4),
M(0, -4),
M(1, -4),
M(2, -4),
M(3, -4),
M(4, -4),
M(5, -4),
M(6, -4),
M(7, -4),
M(8, -4),
M(9, -4),
M(10, -4),
M(11, -4),
M(12, -4),
M(13, -4),
M(14, -4),
M(15, -4),
M(16, -4),
M(17, -4),
M(18, -4),
M(19, -4),
M(20, -4),
M(21, -4),
M(22, -4),
M(23, -4),
M(24, -4),
M(25, -4),
M(-25, -3),
M(-24, -3),
M(-23, -3),
M(-22, -3),
M(-21, -3),
M(-20, -3),
M(-19, -3),
M(-18, -3),
M(-17, -3),
M(-16, -3),
M(-15, -3),
M(-14, -3),
M(-13, -3),
M(-12, -3),
M(-11, -3),
M(-10, -3),
M(-9, -3),
M(-8, -3),
M(-7, -3),
M(-6, -3),
M(-5, -3),
M(-4, -3),
M(-3, -3),
M(-2, -3),
M(-1, -3),
M(0, -3),
M(1, -3),
M(2, -3),
M(3, -3),
M(4, -3),
M(5, -3),
M(6, -3),
M(7, -3),
M(8, -3),
M(9, -3),
M(10, -3),
M(11, -3),
M(12, -3),
M(13, -3),
M(14, -3),
M(15, -3),
M(16, -3),
M(17, -3),
M(18, -3),
M(19, -3),
M(20, -3),
M(21, -3),
M(22, -3),
M(23, -3),
M(24, -3),
M(25, -3),
M(-25, -2),
M(-24, -2),
M(-23, -2),
M(-22, -2),
M(-21, -2),
M(-20, -2),
M(-19, -2),
M(-18, -2),
M(-17, -2),
M(-16, -2),
M(-15, -2),
M(-14, -2),
M(-13, -2),
M(-12, -2),
M(-11, -2),
M(-10, -2),
M(-9, -2),
M(-8, -2),
M(-7, -2),
M(-6, -2),
M(-5, -2),
M(-4, -2),
M(-3, -2),
M(-2, -2),
M(-1, -2),
M(0, -2),
M(1, -2),
M(2, -2),
M(3, -2),
M(4, -2),
M(5, -2),
M(6, -2),
M(7, -2),
M(8, -2),
M(9, -2),
M(10, -2),
M(11, -2),
M(12, -2),
M(13, -2),
M(14, -2),
M(15, -2),
M(16, -2),
M(17, -2),
M(18, -2),
M(19, -2),
M(20, -2),
M(21, -2),
M(22, -2),
M(23, -2),
M(24, -2),
M(25, -2),
M(-25, -1),
M(-24, -1),
M(-23, -1),
M(-22, -1),
M(-21, -1),
M(-20, -1),
M(-19, -1),
M(-18, -1),
M(-17, -1),
M(-16, -1),
M(-15, -1),
M(-14, -1),
M(-13, -1),
M(-12, -1),
M(-11, -1),
M(-10, -1),
M(-9, -1),
M(-8, -1),
M(-7, -1),
M(-6, -1),
M(-5, -1),
M(-4, -1),
M(-3, -1),
M(-2, -1),
M(-1, -1),
M(0, -1),
M(1, -1),
M(2, -1),
M(3, -1),
M(4, -1),
M(5, -1),
M(6, -1),
M(7, -1),
M(8, -1),
M(9, -1),
M(10, -1),
M(11, -1),
M(12, -1),
M(13, -1),
M(14, -1),
M(15, -1),
M(16, -1),
M(17, -1),
M(18, -1),
M(19, -1),
M(20, -1),
M(21, -1),
M(22, -1),
M(23, -1),
M(24, -1),
M(25, -1),
M(-25, 0),
M(-24, 0),
M(-23, 0),
M(-22, 0),
M(-21, 0),
M(-20, 0),
M(-19, 0),
M(-18, 0),
M(-17, 0),
M(-16, 0),
M(-15, 0),
M(-14, 0),
M(-13, 0),
M(-12, 0),
M(-11, 0),
M(-10, 0),
M(-9, 0),
M(-8, 0),
M(-7, 0),
M(-6, 0),
M(-5, 0),
M(-4, 0),
M(-3, 0),
M(-2, 0),
M(-1, 0),
M(0, 0),
M(1, 0),
M(2, 0),
M(3, 0),
M(4, 0),
M(5, 0),
M(6, 0),
M(7, 0),
M(8, 0),
M(9, 0),
M(10, 0),
M(11, 0),
M(12, 0),
M(13, 0),
M(14, 0),
M(15, 0),
M(16, 0),
M(17, 0),
M(18, 0),
M(19, 0),
M(20, 0),
M(21, 0),
M(22, 0),
M(23, 0),
M(24, 0),
M(25, 0),
M(-25, 1),
M(-24, 1),
M(-23, 1),
M(-22, 1),
M(-21, 1),
M(-20, 1),
M(-19, 1),
M(-18, 1),
M(-17, 1),
M(-16, 1),
M(-15, 1),
M(-14, 1),
M(-13, 1),
M(-12, 1),
M(-11, 1),
M(-10, 1),
M(-9, 1),
M(-8, 1),
M(-7, 1),
M(-6, 1),
M(-5, 1),
M(-4, 1),
M(-3, 1),
M(-2, 1),
M(-1, 1),
M(0, 1),
M(1, 1),
M(2, 1),
M(3, 1),
M(4, 1),
M(5, 1),
M(6, 1),
M(7, 1),
M(8, 1),
M(9, 1),
M(10, 1),
M(11, 1),
M(12, 1),
M(13, 1),
M(14, 1),
M(15, 1),
M(16, 1),
M(17, 1),
M(18, 1),
M(19, 1),
M(20, 1),
M(21, 1),
M(22, 1),
M(23, 1),
M(24, 1),
M(25, 1),
M(-25, 2),
M(-24, 2),
M(-23, 2),
M(-22, 2),
M(-21, 2),
M(-20, 2),
M(-19, 2),
M(-18, 2),
M(-17, 2),
M(-16, 2),
M(-15, 2),
M(-14, 2),
M(-13, 2),
M(-12, 2),
M(-11, 2),
M(-10, 2),
M(-9, 2),
M(-8, 2),
M(-7, 2),
M(-6, 2),
M(-5, 2),
M(-4, 2),
M(-3, 2),
M(-2, 2),
M(-1, 2),
M(0, 2),
M(1, 2),
M(2, 2),
M(3, 2),
M(4, 2),
M(5, 2),
M(6, 2),
M(7, 2),
M(8, 2),
M(9, 2),
M(10, 2),
M(11, 2),
M(12, 2),
M(13, 2),
M(14, 2),
M(15, 2),
M(16, 2),
M(17, 2),
M(18, 2),
M(19, 2),
M(20, 2),
M(21, 2),
M(22, 2),
M(23, 2),
M(24, 2),
M(25, 2),
M(-25, 3),
M(-24, 3),
M(-23, 3),
M(-22, 3),
M(-21, 3),
M(-20, 3),
M(-19, 3),
M(-18, 3),
M(-17, 3),
M(-16, 3),
M(-15, 3),
M(-14, 3),
M(-13, 3),
M(-12, 3),
M(-11, 3),
M(-10, 3),
M(-9, 3),
M(-8, 3),
M(-7, 3),
M(-6, 3),
M(-5, 3),
M(-4, 3),
M(-3, 3),
M(-2, 3),
M(-1, 3),
M(0, 3),
M(1, 3),
M(2, 3),
M(3, 3),
M(4, 3),
M(5, 3),
M(6, 3),
M(7, 3),
M(8, 3),
M(9, 3),
M(10, 3),
M(11, 3),
M(12, 3),
M(13, 3),
M(14, 3),
M(15, 3),
M(16, 3),
M(17, 3),
M(18, 3),
M(19, 3),
M(20, 3),
M(21, 3),
M(22, 3),
M(23, 3),
M(24, 3),
M(25, 3),
M(-25, 4),
M(-24, 4),
M(-23, 4),
M(-22, 4),
M(-21, 4),
M(-20, 4),
M(-19, 4),
M(-18, 4),
M(-17, 4),
M(-16, 4),
M(-15, 4),
M(-14, 4),
M(-13, 4),
M(-12, 4),
M(-11, 4),
M(-10, 4),
M(-9, 4),
M(-8, 4),
M(-7, 4),
M(-6, 4),
M(-5, 4),
M(-4, 4),
M(-3, 4),
M(-2, 4),
M(-1, 4),
M(0, 4),
M(1, 4),
M(2, 4),
M(3, 4),
M(4, 4),
M(5, 4),
M(6, 4),
M(7, 4),
M(8, 4),
M(9, 4),
M(10, 4),
M(11, 4),
M(12, 4),
M(13, 4),
M(14, 4),
M(15, 4),
M(16, 4),
M(17, 4),
M(18, 4),
M(19, 4),
M(20, 4),
M(21, 4),
M(22, 4),
M(23, 4),
M(24, 4),
M(25, 4),
M(-25, 5),
M(-24, 5),
M(-23, 5),
M(-22, 5),
M(-21, 5),
M(-20, 5),
M(-19, 5),
M(-18, 5),
M(-17, 5),
M(-16, 5),
M(-15, 5),
M(-14, 5),
M(-13, 5),
M(-12, 5),
M(-11, 5),
M(-10, 5),
M(-9, 5),
M(-8, 5),
M(-7, 5),
M(-6, 5),
M(-5, 5),
M(-4, 5),
M(-3, 5),
M(-2, 5),
M(-1, 5),
M(0, 5),
M(1, 5),
M(2, 5),
M(3, 5),
M(4, 5),
M(5, 5),
M(6, 5),
M(7, 5),
M(8, 5),
M(9, 5),
M(10, 5),
M(11, 5),
M(12, 5),
M(13, 5),
M(14, 5),
M(15, 5),
M(16, 5),
M(17, 5),
M(18, 5),
M(19, 5),
M(20, 5),
M(21, 5),
M(22, 5),
M(23, 5),
M(24, 5),
M(25, 5),
M(-24, 6),
M(-23, 6),
M(-22, 6),
M(-21, 6),
M(-20, 6),
M(-19, 6),
M(-18, 6),
M(-17, 6),
M(-16, 6),
M(-15, 6),
M(-14, 6),
M(-13, 6),
M(-12, 6),
M(-11, 6),
M(-10, 6),
M(-9, 6),
M(-8, 6),
M(-7, 6),
M(-6, 6),
M(-5, 6),
M(-4, 6),
M(-3, 6),
M(-2, 6),
M(-1, 6),
M(0, 6),
M(1, 6),
M(2, 6),
M(3, 6),
M(4, 6),
M(5, 6),
M(6, 6),
M(7, 6),
M(8, 6),
M(9, 6),
M(10, 6),
M(11, 6),
M(12, 6),
M(13, 6),
M(14, 6),
M(15, 6),
M(16, 6),
M(17, 6),
M(18, 6),
M(19, 6),
M(20, 6),
M(21, 6),
M(22, 6),
M(23, 6),
M(24, 6),
M(-24, 7),
M(-23, 7),
M(-22, 7),
M(-21, 7),
M(-20, 7),
M(-19, 7),
M(-18, 7),
M(-17, 7),
M(-16, 7),
M(-15, 7),
M(-14, 7),
M(-13, 7),
M(-12, 7),
M(-11, 7),
M(-10, 7),
M(-9, 7),
M(-8, 7),
M(-7, 7),
M(-6, 7),
M(-5, 7),
M(-4, 7),
M(-3, 7),
M(-2, 7),
M(-1, 7),
M(0, 7),
M(1, 7),
M(2, 7),
M(3, 7),
M(4, 7),
M(5, 7),
M(6, 7),
M(7, 7),
M(8, 7),
M(9, 7),
M(10, 7),
M(11, 7),
M(12, 7),
M(13, 7),
M(14, 7),
M(15, 7),
M(16, 7),
M(17, 7),
M(18, 7),
M(19, 7),
M(20, 7),
M(21, 7),
M(22, 7),
M(23, 7),
M(24, 7),
M(-24, 8),
M(-23, 8),
M(-22, 8),
M(-21, 8),
M(-20, 8),
M(-19, 8),
M(-18, 8),
M(-17, 8),
M(-16, 8),
M(-15, 8),
M(-14, 8),
M(-13, 8),
M(-12, 8),
M(-11, 8),
M(-10, 8),
M(-9, 8),
M(-8, 8),
M(-7, 8),
M(-6, 8),
M(-5, 8),
M(-4, 8),
M(-3, 8),
M(-2, 8),
M(-1, 8),
M(0, 8),
M(1, 8),
M(2, 8),
M(3, 8),
M(4, 8),
M(5, 8),
M(6, 8),
M(7, 8),
M(8, 8),
M(9, 8),
M(10, 8),
M(11, 8),
M(12, 8),
M(13, 8),
M(14, 8),
M(15, 8),
M(16, 8),
M(17, 8),
M(18, 8),
M(19, 8),
M(20, 8),
M(21, 8),
M(22, 8),
M(23, 8),
M(24, 8),
M(-23, 9),
M(-22, 9),
M(-21, 9),
M(-20, 9),
M(-19, 9),
M(-18, 9),
M(-17, 9),
M(-16, 9),
M(-15, 9),
M(-14, 9),
M(-13, 9),
M(-12, 9),
M(-11, 9),
M(-10, 9),
M(-9, 9),
M(-8, 9),
M(-7, 9),
M(-6, 9),
M(-5, 9),
M(-4, 9),
M(-3, 9),
M(-2, 9),
M(-1, 9),
M(0, 9),
M(1, 9),
M(2, 9),
M(3, 9),
M(4, 9),
M(5, 9),
M(6, 9),
M(7, 9),
M(8, 9),
M(9, 9),
M(10, 9),
M(11, 9),
M(12, 9),
M(13, 9),
M(14, 9),
M(15, 9),
M(16, 9),
M(17, 9),
M(18, 9),
M(19, 9),
M(20, 9),
M(21, 9),
M(22, 9),
M(23, 9),
M(-23, 10),
M(-22, 10),
M(-21, 10),
M(-20, 10),
M(-19, 10),
M(-18, 10),
M(-17, 10),
M(-16, 10),
M(-15, 10),
M(-14, 10),
M(-13, 10),
M(-12, 10),
M(-11, 10),
M(-10, 10),
M(-9, 10),
M(-8, 10),
M(-7, 10),
M(-6, 10),
M(-5, 10),
M(-4, 10),
M(-3, 10),
M(-2, 10),
M(-1, 10),
M(0, 10),
M(1, 10),
M(2, 10),
M(3, 10),
M(4, 10),
M(5, 10),
M(6, 10),
M(7, 10),
M(8, 10),
M(9, 10),
M(10, 10),
M(11, 10),
M(12, 10),
M(13, 10),
M(14, 10),
M(15, 10),
M(16, 10),
M(17, 10),
M(18, 10),
M(19, 10),
M(20, 10),
M(21, 10),
M(22, 10),
M(23, 10),
M(-23, 11),
M(-22, 11),
M(-21, 11),
M(-20, 11),
M(-19, 11),
M(-18, 11),
M(-17, 11),
M(-16, 11),
M(-15, 11),
M(-14, 11),
M(-13, 11),
M(-12, 11),
M(-11, 11),
M(-10, 11),
M(-9, 11),
M(-8, 11),
M(-7, 11),
M(-6, 11),
M(-5, 11),
M(-4, 11),
M(-3, 11),
M(-2, 11),
M(-1, 11),
M(0, 11),
M(1, 11),
M(2, 11),
M(3, 11),
M(4, 11),
M(5, 11),
M(6, 11),
M(7, 11),
M(8, 11),
M(9, 11),
M(10, 11),
M(11, 11),
M(12, 11),
M(13, 11),
M(14, 11),
M(15, 11),
M(16, 11),
M(17, 11),
M(18, 11),
M(19, 11),
M(20, 11),
M(21, 11),
M(22, 11),
M(23, 11),
M(-22, 12),
M(-21, 12),
M(-20, 12),
M(-19, 12),
M(-18, 12),
M(-17, 12),
M(-16, 12),
M(-15, 12),
M(-14, 12),
M(-13, 12),
M(-12, 12),
M(-11, 12),
M(-10, 12),
M(-9, 12),
M(-8, 12),
M(-7, 12),
M(-6, 12),
M(-5, 12),
M(-4, 12),
M(-3, 12),
M(-2, 12),
M(-1, 12),
M(0, 12),
M(1, 12),
M(2, 12),
M(3, 12),
M(4, 12),
M(5, 12),
M(6, 12),
M(7, 12),
M(8, 12),
M(9, 12),
M(10, 12),
M(11, 12),
M(12, 12),
M(13, 12),
M(14, 12),
M(15, 12),
M(16, 12),
M(17, 12),
M(18, 12),
M(19, 12),
M(20, 12),
M(21, 12),
M(22, 12),
M(-21, 13),
M(-20, 13),
M(-19, 13),
M(-18, 13),
M(-17, 13),
M(-16, 13),
M(-15, 13),
M(-14, 13),
M(-13, 13),
M(-12, 13),
M(-11, 13),
M(-10, 13),
M(-9, 13),
M(-8, 13),
M(-7, 13),
M(-6, 13),
M(-5, 13),
M(-4, 13),
M(-3, 13),
M(-2, 13),
M(-1, 13),
M(0, 13),
M(1, 13),
M(2, 13),
M(3, 13),
M(4, 13),
M(5, 13),
M(6, 13),
M(7, 13),
M(8, 13),
M(9, 13),
M(10, 13),
M(11, 13),
M(12, 13),
M(13, 13),
M(14, 13),
M(15, 13),
M(16, 13),
M(17, 13),
M(18, 13),
M(19, 13),
M(20, 13),
M(21, 13),
M(-21, 14),
M(-20, 14),
M(-19, 14),
M(-18, 14),
M(-17, 14),
M(-16, 14),
M(-15, 14),
M(-14, 14),
M(-13, 14),
M(-12, 14),
M(-11, 14),
M(-10, 14),
M(-9, 14),
M(-8, 14),
M(-7, 14),
M(-6, 14),
M(-5, 14),
M(-4, 14),
M(-3, 14),
M(-2, 14),
M(-1, 14),
M(0, 14),
M(1, 14),
M(2, 14),
M(3, 14),
M(4, 14),
M(5, 14),
M(6, 14),
M(7, 14),
M(8, 14),
M(9, 14),
M(10, 14),
M(11, 14),
M(12, 14),
M(13, 14),
M(14, 14),
M(15, 14),
M(16, 14),
M(17, 14),
M(18, 14),
M(19, 14),
M(20, 14),
M(21, 14),
M(-20, 15),
M(-19, 15),
M(-18, 15),
M(-17, 15),
M(-16, 15),
M(-15, 15),
M(-14, 15),
M(-13, 15),
M(-12, 15),
M(-11, 15),
M(-10, 15),
M(-9, 15),
M(-8, 15),
M(-7, 15),
M(-6, 15),
M(-5, 15),
M(-4, 15),
M(-3, 15),
M(-2, 15),
M(-1, 15),
M(0, 15),
M(1, 15),
M(2, 15),
M(3, 15),
M(4, 15),
M(5, 15),
M(6, 15),
M(7, 15),
M(8, 15),
M(9, 15),
M(10, 15),
M(11, 15),
M(12, 15),
M(13, 15),
M(14, 15),
M(15, 15),
M(16, 15),
M(17, 15),
M(18, 15),
M(19, 15),
M(20, 15),
M(-19, 16),
M(-18, 16),
M(-17, 16),
M(-16, 16),
M(-15, 16),
M(-14, 16),
M(-13, 16),
M(-12, 16),
M(-11, 16),
M(-10, 16),
M(-9, 16),
M(-8, 16),
M(-7, 16),
M(-6, 16),
M(-5, 16),
M(-4, 16),
M(-3, 16),
M(-2, 16),
M(-1, 16),
M(0, 16),
M(1, 16),
M(2, 16),
M(3, 16),
M(4, 16),
M(5, 16),
M(6, 16),
M(7, 16),
M(8, 16),
M(9, 16),
M(10, 16),
M(11, 16),
M(12, 16),
M(13, 16),
M(14, 16),
M(15, 16),
M(16, 16),
M(17, 16),
M(18, 16),
M(19, 16),
M(-19, 17),
M(-18, 17),
M(-17, 17),
M(-16, 17),
M(-15, 17),
M(-14, 17),
M(-13, 17),
M(-12, 17),
M(-11, 17),
M(-10, 17),
M(-9, 17),
M(-8, 17),
M(-7, 17),
M(-6, 17),
M(-5, 17),
M(-4, 17),
M(-3, 17),
M(-2, 17),
M(-1, 17),
M(0, 17),
M(1, 17),
M(2, 17),
M(3, 17),
M(4, 17),
M(5, 17),
M(6, 17),
M(7, 17),
M(8, 17),
M(9, 17),
M(10, 17),
M(11, 17),
M(12, 17),
M(13, 17),
M(14, 17),
M(15, 17),
M(16, 17),
M(17, 17),
M(18, 17),
M(19, 17),
M(-18, 18),
M(-17, 18),
M(-16, 18),
M(-15, 18),
M(-14, 18),
M(-13, 18),
M(-12, 18),
M(-11, 18),
M(-10, 18),
M(-9, 18),
M(-8, 18),
M(-7, 18),
M(-6, 18),
M(-5, 18),
M(-4, 18),
M(-3, 18),
M(-2, 18),
M(-1, 18),
M(0, 18),
M(1, 18),
M(2, 18),
M(3, 18),
M(4, 18),
M(5, 18),
M(6, 18),
M(7, 18),
M(8, 18),
M(9, 18),
M(10, 18),
M(11, 18),
M(12, 18),
M(13, 18),
M(14, 18),
M(15, 18),
M(16, 18),
M(17, 18),
M(18, 18),
M(-17, 19),
M(-16, 19),
M(-15, 19),
M(-14, 19),
M(-13, 19),
M(-12, 19),
M(-11, 19),
M(-10, 19),
M(-9, 19),
M(-8, 19),
M(-7, 19),
M(-6, 19),
M(-5, 19),
M(-4, 19),
M(-3, 19),
M(-2, 19),
M(-1, 19),
M(0, 19),
M(1, 19),
M(2, 19),
M(3, 19),
M(4, 19),
M(5, 19),
M(6, 19),
M(7, 19),
M(8, 19),
M(9, 19),
M(10, 19),
M(11, 19),
M(12, 19),
M(13, 19),
M(14, 19),
M(15, 19),
M(16, 19),
M(17, 19),
M(-15, 20),
M(-14, 20),
M(-13, 20),
M(-12, 20),
M(-11, 20),
M(-10, 20),
M(-9, 20),
M(-8, 20),
M(-7, 20),
M(-6, 20),
M(-5, 20),
M(-4, 20),
M(-3, 20),
M(-2, 20),
M(-1, 20),
M(0, 20),
M(1, 20),
M(2, 20),
M(3, 20),
M(4, 20),
M(5, 20),
M(6, 20),
M(7, 20),
M(8, 20),
M(9, 20),
M(10, 20),
M(11, 20),
M(12, 20),
M(13, 20),
M(14, 20),
M(15, 20),
M(-14, 21),
M(-13, 21),
M(-12, 21),
M(-11, 21),
M(-10, 21),
M(-9, 21),
M(-8, 21),
M(-7, 21),
M(-6, 21),
M(-5, 21),
M(-4, 21),
M(-3, 21),
M(-2, 21),
M(-1, 21),
M(0, 21),
M(1, 21),
M(2, 21),
M(3, 21),
M(4, 21),
M(5, 21),
M(6, 21),
M(7, 21),
M(8, 21),
M(9, 21),
M(10, 21),
M(11, 21),
M(12, 21),
M(13, 21),
M(14, 21),
M(-12, 22),
M(-11, 22),
M(-10, 22),
M(-9, 22),
M(-8, 22),
M(-7, 22),
M(-6, 22),
M(-5, 22),
M(-4, 22),
M(-3, 22),
M(-2, 22),
M(-1, 22),
M(0, 22),
M(1, 22),
M(2, 22),
M(3, 22),
M(4, 22),
M(5, 22),
M(6, 22),
M(7, 22),
M(8, 22),
M(9, 22),
M(10, 22),
M(11, 22),
M(12, 22),
M(-11, 23),
M(-10, 23),
M(-9, 23),
M(-8, 23),
M(-7, 23),
M(-6, 23),
M(-5, 23),
M(-4, 23),
M(-3, 23),
M(-2, 23),
M(-1, 23),
M(0, 23),
M(1, 23),
M(2, 23),
M(3, 23),
M(4, 23),
M(5, 23),
M(6, 23),
M(7, 23),
M(8, 23),
M(9, 23),
M(10, 23),
M(11, 23),
M(-8, 24),
M(-7, 24),
M(-6, 24),
M(-5, 24),
M(-4, 24),
M(-3, 24),
M(-2, 24),
M(-1, 24),
M(0, 24),
M(1, 24),
M(2, 24),
M(3, 24),
M(4, 24),
M(5, 24),
M(6, 24),
M(7, 24),
M(8, 24),
M(-5, 25),
M(-4, 25),
M(-3, 25),
M(-2, 25),
M(-1, 25),
M(0, 25),
M(1, 25),
M(2, 25),
M(3, 25),
M(4, 25),
M(5, 25)
};
#undef M