// TO DO: look for working command-line gcc6809 environment.

// when NOT using USE_ASM_OPTIMIZATIONS:
//   The starfield always works
//   The ships always work (albeit slowly) regardless of USE_PRECALCULATED
// 
// when using USE_ASM_OPTIMIZATIONS:
//   If compiling without -O, the ships are OK regardless of USE_PRECALCULATED but the starfield is always corrupt
//   If compiling with -O and USE_PRECALCULATED is defined, ships and the starfield work OK
//   If compiling with -O and USE_PRECALCULATED is NOT defined, initial frame looks OK but is frozen,
//                                                              and the image rapidly fades out!

// This sort of behaviour suggests either a problem in the assembly coded procedures,
// and/or possibly some reliance on the value of DP in the C code which is not always true?
// I tested the latter by removing the "dp_" from all the accesses in the C code but unless
// I missed some it seemed to make no difference.

// (note the starfield code is slow but that's not relevant, it'll be improved once the seemingly
// random behaviour is fixed, and as it stands, it's a good canary for finding this obscure problem)

// All source files were merged into one at one point when I was making sure that there was not
// an issue with linking objects compiled uing different -O settings.

// Finally, there is some problem where compiling and running the code under Vide causes the
// emulation to stop just after initialisation, with the word "DEBUG" over the display in
// large friendly green letters :-(

// Current issues (other than the above):
// * bad intensities
// * a whole bunch of disorganised old code here, needs to be cleaned up and speeded up.
//   Go through previou versions and extricate the good bits.  For example, the state machine
//   code that handled the variou phases of the game has been completely lost.  A lot of
//   stuff has gone by the wayside during the attempts of the last few years to find ways
//   to make this fast enough.  Time to restore it.
// * linux interface layer is gone.  It was useful for fast prototyping, and for debugging
//   any bugs that were not specifically Vectrex-related (eg catching accesses outside the
//   bounds of an array)


#define USE_PRECALCULATED    // use precalculated rotation angles, draw scale and position
                             // Currently precalculated paths are stupid, but they're just
                             // a placeholder.  Path calculation is in genpath.c, and when
                             // good paths are being generated, I have some ideas on how to
                             // save the key points in the path and use a dynamic bezier
                             // to fill in the gaps rather than storing the entire paths.
                             // However the actual path generation itself requires quaternions
                             // and is too complex to run on the Vectrex, so what we do
                             // is compute the path with quaternions, convert the resulting
                             // path the Euler angles, and (as hinted to above) fit Bezier
                             // splines to the computed angles independantly to compress
                             // the data into a 32K rom!

#define USE_ASM_OPTIMIZATIONS

#include <vectrex.h>


// Sometimes it's instructive to see what the generated code looks like when not
// using inlines. (Although there are still a few procedures that gcc chooses to
// inline even if you didn't ask for them.)  The combined source/assembly listing
// can be a bit hard to follow when heavily inlined.

// #define inline


// should change to stdint names, eg int8_t
typedef signed int 		int8;
typedef unsigned int 		uint8;

typedef signed long int 	int16;
typedef unsigned long int 	uint16;

typedef int boolean;
int16 Debug = 0;

// See https://www.ibm.com/docs/de/i/7.4.0?topic=files-stdinth

// should change to stdint constants, eg INT8_MAX
#define MAX_INT_8		(int8)127
#define MIN_INT_8		(int8)-128
#define MAX_INT_16		(int16)32767
#define MIN_INT_16		(int16)-32768

// We don't yet have a sound system for the vectrex...
#define SOUND_BOUNCE 1
#define SOUND_EXPLODE 2
#define SOUND_LASER 3
#define SOUND_SHIELD 4
#define SOUND_STAR 5
#define SOUND_COIN 6

// Internal game state
#define PREGAME    0 /* Loops over Tumbling banner, demo wave, then INSERT COIN */
#define TUMBLING   1
#define DEMOWAVE   2
#define INSERTCOIN 3
#define COINED     4 /* loops demo wave while showing PRESS START */
#define PLAYING    5
#define PASSING    6 /* Not sure this is needed as a state? May just be a variable, like 'firing' */
static int State = PREGAME;

static void Draw_shields(uint8 i);
static void Draw_shields_remaining(void);
static void Draw_ships_remaining(void);
static void Draw_credits(void);
static void Draw_insertcoin(void);
static void Draw_highscore(void);
static void Draw_lastscore(void);
static void Draw_start(void);
static void drawtgintro(uint8 scale, uint8 bright);
#ifdef NEVER
// float types (NOT USED)
//
typedef struct { 
	int8 mantissa;
	int8 exponent; 
} float8;
#endif

// vector types
//
typedef struct { 
	int8 x;
	int8 y;
	int8 z; 
} vec8;

const vec8 vec8_zero = { 0, 0, 0 };

typedef struct { 
	int16 x;
	int16 y;
	int16 z; 
} vec16;

#ifdef NEVER
typedef struct { 
	int32 x;
	int32 y;
	int32 z; 
} vec32;
#endif

typedef struct {
	int8 x;
	int8 y;
} vec2;

typedef struct { 
	int16 x;
	int16 y;
} vec2_16;

const vec16 vec16_zero = { 0, 0, 0 };
const vec16 vec16_right = { (int16)1 << 14, 0, 0 };
const vec16 vec16_up = { 0, (int16)1 << 14, 0 };
const vec16 vec16_forward = { 0, 0, (int16)-1 << 14 };

// matrix types
//
typedef struct { 
	vec8 X;
	vec8 Y;
	vec8 Z; 
} mat8;

typedef struct { 
	vec16 X;
	vec16 Y;
	vec16 Z; 
} mat16;

const mat16 unityMatrix = { { (int16)1 << 14, 0, 0 }, { 0, (int16)1 << 14, 0 }, { 0, 0, (int16)1 << 14 } };

#define ABS16(x) 	\
    (((x) < 0) ? -(x) : (x))

extern const uint8 camDrawScale;

uint8 transformPosition(vec16* p, vec2* sp);
void rotateMatrixEuler(mat16* R, vec8* euler);
void mulMatrix(mat16* R, vec8* v, uint8 size, int8* sp);

#ifdef USE_ASM_OPTIMIZATIONS
uint8 transformPosition_asm(vec16* p, vec2* sp);
void rotateMatrixEuler_asm(mat16* R, vec8* euler);
void mulMatrix_asm(mat16* R, vec8* v, uint8 size, int8* sp);
#endif

//#include "hw.h"
////#include <vectrex.h>
////#include "typedef.h"

#define BEGIN_DRAW 		\
	/*dp_*/VIA_cntl = 0xce;	

#define END_DRAW 				\
	/*dp_*/VIA_shift_reg = 0x0;	\
	Reset0Ref();				

#define MOVE_VECTOR(vx, vy) 	\
	/*dp_*/VIA_port_a = vy;	\
	/*dp_*/VIA_port_b = 0;		\
	/*dp_*/VIA_port_b = 1;		\
	/*dp_*/VIA_port_a = vx;	\
	/*dp_*/VIA_shift_reg = 0x00;	\
	/*dp_*/VIA_t1_cnt_hi = 0;			

#define DRAW_VECTOR(vx, vy) 	\
	/*dp_*/VIA_port_a = vy;	\
	/*dp_*/VIA_port_b = 0;		\
	/*dp_*/VIA_port_b = 1;		\
	/*dp_*/VIA_port_a = vx;	\
	/*dp_*/VIA_shift_reg = 0xff;	\
	/*dp_*/VIA_t1_cnt_hi = 0;			

#define SET_DRAW_SCALE(scale) \
	/*dp_*/VIA_t1_cnt_lo = scale;

#define SET_DRAW_PATTERN(pattern) \
	/*dp_*/VIA_shift_reg = pattern;

#define SET_BRIGHTNESS(brightness)  \
    /*dp_*/VIA_port_a = brightness; \
    /*dp_*/VIA_port_b = 0x05;       \
    /*dp_*/VIA_port_b = 0x04;       \
    /*dp_*/VIA_port_b = 0x04;       \
    /*dp_*/VIA_port_b = 0x01;

#define WAIT_DRAW_FINISH                        \
    while (!(/*dp_*/VIA_int_flags & 0x40)) {};  \
    /*dp_*/VIA_shift_reg = 0x0;

#ifdef DEBUG
void debugPrint(int32 number, int8 x, int8 y);
#endif

#ifdef USE_ASM_OPTIMIZATIONS
void drawLineStripIndexed_asm(int8* lengthIndex, uint8 drawScale, int8 *screenPointBuffer);
#endif

void drawLineStrips(int8* lengthIndex, int8 *sp);

// vecmath.c
const int8 sinTable[256] = {
  0, -2, -3, -5, -6, -8, -9, -11, -12, -14, -16, -17, -19, -20, -22, -23,
  -24, -26, -27, -29, -30, -32, -33, -34, -36, -37, -38, -39, -41, -42, -43, -44,
  -45, -46, -47, -48, -49, -50, -51, -52, -53, -54, -55, -56, -56, -57, -58, -59,
  -59, -60, -60, -61, -61, -62, -62, -62, -63, -63, -63, -64, -64, -64, -64, -64,
  -64, -64, -64, -64, -64, -64, -63, -63, -63, -62, -62, -62, -61, -61, -60, -60,
  -59, -59, -58, -57, -56, -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, -46,
  -45, -44, -43, -42, -41, -39, -38, -37, -36, -34, -33, -32, -30, -29, -27, -26,
  -24, -23, -22, -20, -19, -17, -16, -14, -12, -11, -9, -8, -6, -5, -3, -2,

  // start table from here to make indexing faster
  0, 2, 3, 5, 6, 8, 9, 11, 12, 14, 16, 17, 19, 20, 22, 23,
  24, 26, 27, 29, 30, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44,
  45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 56, 57, 58, 59,
  59, 60, 60, 61, 61, 62, 62, 62, 63, 63, 63, 64, 64, 64, 64, 64,
  64, 64, 64, 64, 64, 64, 63, 63, 63, 62, 62, 62, 61, 61, 60, 60,
  59, 59, 58, 57, 56, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46,
  45, 44, 43, 42, 41, 39, 38, 37, 36, 34, 33, 32, 30, 29, 27, 26,
  24, 23, 22, 20, 19, 17, 16, 14, 12, 11, 9, 8, 6, 5, 3, 2
};

// lookup for 1/z
const uint8 ZDivTable[128] = { 255, 254, 252, 250, 248, 246, 244, 242, 240, 239, 237, 235, 234, 232, 230, 229, 227, 225, 224, 222, 221, 219, 218, 217, 215, 214, 212, 211, 210, 208, 207, 206, 204, 203, 202, 201, 199, 198, 197, 196, 195, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 168, 167, 166, 165, 164, 163, 163, 162, 161, 160, 159, 159, 158, 157, 156, 156, 155, 154, 153, 153, 152, 151, 151, 150, 149, 148, 148, 147, 146, 146, 145, 144, 144, 143, 143, 142, 141, 141, 140, 140, 139, 138, 138, 137, 137, 136, 135, 135, 134, 134, 133, 133, 132, 132, 131, 131, 130, 130, 129, 129, 128 };
const uint8 camDrawScale = 176;

#ifndef USE_ASM_OPTIMIZATIONS
uint8 transformPosition(vec16* p, vec2* sp) {
    int16 x, y, z;
    int8 s = 6;
    
    x = p->x;
    y = p->y;
    z = p->z;

    if ((z < 0) || (ABS16(x) > z) || (ABS16(y) > z)) {
        return 0;
    }
    z <<= 1;

    while (z > 0) {
        s--;
        x <<= 1;
        y <<= 1;
        z <<= 1;
    }
    // multiply with 1/z
    uint8 div = ZDivTable[(uint8)(z >> 8) - 128];
    sp->x = (int8)(((x >> 7) * div) >> 8);
    sp->y = (int8)(((y >> 7) * div) >> 8);

    // calculate object drawscale
    uint16 drawScale = ((uint16)camDrawScale * div) >> (8 + s /*- obj->mesh.scale*/);
    if (drawScale > 255)
        return 0;

    return (uint8)drawScale;
}

void mulMatrix(mat16* R, vec8* v, uint8 size, int8* sp) {

    // uncomment if z-coordinate is needed
    int8 x, y;//, z;

    while (size--) {
        x = (int8)(((R->X.x >> 7) * v->x) >> 7);
        x += (int8)(((R->Y.x >> 7) * v->y) >> 7);
        x += (int8)(((R->Z.x >> 7) * v->z) >> 7);

        y = (int8)(((R->X.y >> 7) * v->x) >> 7);
        y += (int8)(((R->Y.y >> 7) * v->y) >> 7);
        y += (int8)(((R->Z.y >> 7) * v->z) >> 7);
/*
        z = (int8)(((R->X.z >> 7) * v->x) >> 7);
        z += (int8)(((R->Y.z >> 7) * v->y) >> 7);
        z += (int8)(((R->Z.z >> 7) * v->z) >> 7);
*/
        *sp++ = x;
        *sp++ = y;
        //*sp++ = z;
        v++;
    }
}

void rotateMatrixEuler(mat16* R, vec8* euler) {

    /* calculate rotation matrix:

                 | cos(x)*cos(y)    cos(x)*sin(y)*sin(z) - sin(x)*cos(z)    cos(x)*sin(y)*cos(z) + sin(sin(x)*sin(z) |
  RX * RY * RZ = | sin(x)*cos(y)    sin(x)*sin(y)*sin(z) + cos(x)*cos(z)    sin(x)*sin(y)*cos(z) - cos(x)*sin(z)     |
                 |     -sin(y)                     cos(y)*sin(z)                           cos(y)*cos(z)             |
    */

    int8 cx, sx, cy, sy, cz, sz;
    const int8* s = &sinTable[128];

    cx = s[(int8)((int16)euler->z + 64)]; 
    sx = s[euler->z];
    cy = s[(int8)((int16)euler->y + 64)]; 
    sy = s[euler->y];
    cz = s[(int8)((int16)euler->x + 64)]; 
    sz = s[euler->x];

    R->X.x = ((int16)cx * cy) << 1;
    R->Y.x = ((int16)sx * cy) << 1;
    R->Z.x = ((int16)-sy) << 8;

    R->X.y = (((((int16)cx * sy) >> 8) * sz) << 2) - (((int16)sx * cz) << 1);
    R->Y.y = (((((int16)sx * sy) >> 8) * sz) << 2) + (((int16)cx * cz) << 1);
    R->Z.y = ((int16)cy * sz) << 1;

    R->X.z = (((((int16)cx * sy) >> 8) * cz) << 2) + (((int16)sx * sz) << 1);
    R->Y.z = (((((int16)sx * sy) >> 8) * cz) << 2) - (((int16)cx * sz) << 1);
    R->Z.z = ((int16)cy * cz) << 1;
}
#endif

// hw.c
#ifdef DEBUG
void intToString(int32 number, uint8 *text) {
	static const int32 D[] = { 1000000000L, 100000000L, 10000000L, 1000000L, 100000L, 10000, 1000, 100, 10 };
	const int32 *N = D;

	*text++ = *" ";

	if (number == 0) {
		*text++ = 48;
		*text++ = 0x80;
		return;
	}
    	if (number < 0) {
    		*text++ = *"-";
    		number = -number;
    	}
	        
	uint8 i = 9;
	uint8 firstDigit = 0;

	while (i--) {
		uint8 n = 0;
        	while (number >= *N) {
        		number -= *N;
        		n++;
			firstDigit = 1;
        	}
		if (firstDigit)
		    	*text++ = 48 + n;
	    	N++;
	}

	*text++ = 48 + (uint8)number;
	*text++ = 0x80;
}

void debugPrint(int32 number, int8 x, int8 y) {
	uint8 text[12];

	intToString(number, text);
	Print_Str_d(y, x, (void*)text);
}
#endif // DEBUG

#ifndef USE_ASM_OPTIMIZATIONS
void drawLineStrips(int8* lengthIndex, int8 *sp) {

    int8 x, y, xp, yp, length, index;
    xp = 0;
    yp = 0;

    while (*lengthIndex) {
        length = *lengthIndex++;
        index = *lengthIndex++;
        x = sp[index];
        y = sp[index + 1];

        WAIT_DRAW_FINISH
        MOVE_VECTOR(x - xp, y - yp)
        xp = x;
        yp = y;

        while (--length) {
			index = *lengthIndex++;
			x = sp[index];
			y = sp[index + 1];

		    	WAIT_DRAW_FINISH
			/*dp_*/VIA_shift_reg = 0xff;
        		DRAW_VECTOR(x - xp, y - yp)

			xp = x;
			yp = y;
		}
    }
}
#endif

// attack_waves.h
typedef struct { 
    const uint8* rx;
    const uint8* ry;
    const uint8* rz;
    const uint8* sc;
    const int8* sx;
    const int8* sy;
    uint8 numFrames;
} AttackWave;

extern const AttackWave model1_wave;
extern const AttackWave model2_wave;
extern const AttackWave model3_wave;


// Generated by genpath.c
// An attack wave must be no more than 256 frames, which at 30FPS allows up up to 8 seconds per wave.
// Still to handle: multiple ships and multiple waves, and storing them all in the object_t 'ship' structs.
#define SHIP1_WAVE1_FRAMES 255U
const uint8 ship1_wave1_rx[255U] = { // rotation vector components
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, };
const uint8 ship1_wave1_ry[255U] = {
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, };
const uint8 ship1_wave1_rz[255U] = {
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
  128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, };

const uint8 ship1_wave1_sc[255U] = { // display scale for ship
   20,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  31,  32,  33, 
   34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  43,  44,  45,  46,  47,  48, 
   49,  50,  51,  52,  53,  54,  55,  55,  56,  57,  58,  59,  60,  61,  62,  63, 
   64,  65,  66,  67,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78, 
   79,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  91,  92, 
   93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 103, 104, 105, 106, 107, 
  108, 109, 110, 111, 112, 113, 114, 115, 115, 116, 117, 118, 119, 120, 121, 122, 
  123, 124, 125, 126, 127, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 
  138, 139, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 151, 
  152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 163, 164, 165, 166, 
  167, 168, 169, 170, 171, 172, 173, 174, 175, 175, 176, 177, 178, 179, 180, 181, 
  182, 183, 184, 185, 186, 187, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 
  197, 198, 199, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 
  211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 223, 224, 225, 
  226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 235, 236, 237, 238, 239, 240, 
  241, 242, 243, 244, 245, 246, 247, 247, 248, 249, 250, 251, 252, 253, 254, };
const int8 ship1_wave1_sx[255U] = { // screen x,y
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, };
const int8 ship1_wave1_sy[255U] = {
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, };

// This attack path uses 1555 bytes of EPROM.
#define SHIP2_WAVE1_FRAMES 128U
const uint8 ship2_wave1_rx[128U] = { // rotation vector components
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 
  192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 

};
const uint8 ship2_wave1_ry[128U] = {
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 

};
const uint8 ship2_wave1_rz[128U] = {
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 

};

const uint8 ship2_wave1_sc[128U] = { // display scale for ship
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 
   20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20,  20, 

};
const int8 ship2_wave1_sx[128U] = { // screen x,y
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 

};
const int8 ship2_wave1_sy[128U] = {
     0,   -1,   -2,   -3,   -4,   -5,   -6,   -7,   -8,   -9,  -10,  -11,  -12,  -13,  -14,  -15, 
   -16,  -17,  -18,  -19,  -20,  -21,  -22,  -23,  -24,  -25,  -26,  -27,  -28,  -29,  -30,  -31, 
   -32,  -33,  -34,  -35,  -36,  -37,  -38,  -39,  -40,  -41,  -42,  -43,  -44,  -45,  -46,  -47, 
   -48,  -49,  -50,  -51,  -52,  -53,  -54,  -55,  -56,  -57,  -58,  -59,  -60,  -61,  -62,  -63, 
   -64,  -65,  -66,  -67,  -68,  -69,  -70,  -71,  -72,  -73,  -74,  -75,  -76,  -77,  -78,  -79, 
   -80,  -81,  -82,  -83,  -84,  -85,  -86,  -87,  -88,  -89,  -90,  -91,  -92,  -93,  -94,  -95, 
   -96,  -97,  -98,  -99, -100, -101, -102, -103, -104, -105, -106, -107, -108, -109, -110, -111, 
  -112, -113, -114, -115, -116, -117, -118, -119, -120, -121, -122, -123, -124, -125, -126, -127, 

};

// This attack path uses 793 bytes of EPROM.
#define SHIP3_WAVE1_FRAMES 148U
const uint8 ship3_wave1_rx[148U] = { // rotation vector components
  128, 128, 128, 128, 128, 128, 128, 127, 127, 127, 127, 127, 127, 127, 127, 127, 
  127, 127, 127, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 125, 
  125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 124, 124, 124, 124, 124, 
  124, 124, 124, 124, 124, 124, 124, 124, 123, 123, 123, 123, 123, 123, 123, 123, 
  123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 
  122, 122, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 120, 
  120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 119, 119, 
  119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 118, 118, 118, 
  118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 117, 117, 117, 
  117, 117, 117, 117, 
};
const uint8 ship3_wave1_ry[148U] = {
   16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16, 
   16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16, 
   16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16,  16, 
   16,  16,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15, 
   15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,  15, 
   15,  15,  15,  15,  15,  15,  15,  14,  14,  14,  14,  14,  14,  14,  14,  14, 
   14,  14,  14,  14,  14,  14,  14,  14,  14,  14,  14,  14,  14,  14,  14,  14, 
   14,  13,  13,  13,  13,  13,  13,  13,  13,  13,  13,  13,  13,  13,  13,  13, 
   13,  13,  13,  13,  13,  13,  13,  12,  12,  12,  12,  12,  12,  12,  12,  12, 
   12,  12,  12,  12, 
};
const uint8 ship3_wave1_rz[148U] = {
  128, 128, 128, 127, 127, 127, 127, 126, 126, 126, 126, 126, 125, 125, 125, 125, 
  125, 124, 124, 124, 124, 123, 123, 123, 123, 123, 122, 122, 122, 122, 122, 121, 
  121, 121, 121, 120, 120, 120, 120, 120, 119, 119, 119, 119, 118, 118, 118, 118, 
  118, 117, 117, 117, 117, 117, 116, 116, 116, 116, 116, 115, 115, 115, 115, 114, 
  114, 114, 114, 114, 113, 113, 113, 113, 113, 112, 112, 112, 112, 111, 111, 111, 
  111, 111, 110, 110, 110, 110, 110, 109, 109, 109, 109, 109, 108, 108, 108, 108, 
  107, 107, 107, 107, 107, 106, 106, 106, 106, 106, 105, 105, 105, 105, 105, 104, 
  104, 104, 104, 104, 103, 103, 103, 103, 102, 102, 102, 102, 102, 101, 101, 101, 
  101, 101, 100, 100, 100, 100, 100,  99,  99,  99,  99,  99,  98,  98,  98,  98, 
   98,  97,  97,  97, 
};

const uint8 ship3_wave1_sc[148U] = { // display scale for ship
   20,  21,  23,  25,  26,  28,  30,  31,  33,  35,  37,  38,  40,  42,  43,  45, 
   47,  48,  50,  52,  54,  55,  57,  59,  60,  62,  64,  66,  67,  69,  71,  72, 
   74,  76,  77,  79,  81,  83,  84,  86,  88,  89,  91,  93,  95,  96,  98, 100, 
  101, 103, 105, 106, 108, 110, 112, 113, 115, 117, 118, 120, 122, 124, 125, 127, 
  129, 130, 132, 134, 135, 137, 139, 141, 142, 144, 146, 147, 149, 151, 152, 154, 
  156, 158, 159, 161, 163, 164, 166, 168, 170, 171, 173, 175, 176, 178, 180, 181, 
  183, 185, 187, 188, 190, 192, 193, 195, 197, 199, 200, 202, 204, 205, 207, 209, 
  210, 212, 214, 216, 217, 219, 221, 222, 224, 226, 228, 229, 231, 233, 234, 236, 
  238, 239, 241, 243, 245, 246, 248, 250, 251, 253, 254, 254, 254, 254, 254, 254, 
  254, 254, 254, 254, 
};
const int8 ship3_wave1_sx[148U] = { // screen x,y
     0,    0,   -1,   -2,   -3,   -3,   -4,   -5,   -6,   -6,   -7,   -8,   -9,   -9,  -10,  -11, 
   -12,  -12,  -13,  -14,  -15,  -16,  -16,  -17,  -18,  -19,  -19,  -20,  -21,  -22,  -22,  -23, 
   -24,  -25,  -25,  -26,  -27,  -28,  -28,  -29,  -30,  -31,  -31,  -32,  -33,  -34,  -34,  -35, 
   -36,  -37,  -37,  -38,  -39,  -40,  -40,  -41,  -42,  -43,  -43,  -44,  -45,  -45,  -46,  -47, 
   -48,  -48,  -49,  -50,  -51,  -51,  -52,  -53,  -53,  -54,  -55,  -56,  -56,  -57,  -58,  -58, 
   -59,  -60,  -61,  -61,  -62,  -63,  -63,  -64,  -65,  -65,  -66,  -67,  -68,  -68,  -69,  -70, 
   -70,  -71,  -72,  -72,  -73,  -74,  -74,  -75,  -76,  -76,  -77,  -78,  -78,  -79,  -80,  -80, 
   -81,  -82,  -82,  -83,  -84,  -84,  -85,  -85,  -86,  -87,  -87,  -88,  -89,  -89,  -90,  -90, 
   -91,  -92,  -92,  -93,  -94,  -94,  -95,  -95,  -96,  -97,  -97,  -98,  -98,  -99, -100, -100, 
  -101, -101, -102, -102, 
};
const int8 ship3_wave1_sy[148U] = {
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 
     0,    0,    0,    0,    0,    0,    0,    1,    1,    1,    1,    1,    1,    1,    1,    1, 
     1,    2,    2,    2,    2,    2,    2,    2,    3,    3,    3,    3,    3,    3,    4,    4, 
     4,    4,    4,    4,    5,    5,    5,    5,    5,    6,    6,    6,    6,    7,    7,    7, 
     7,    7,    8,    8,    8,    8,    9,    9,    9,   10,   10,   10,   10,   11,   11,   11, 
    12,   12,   12,   12,   13,   13,   13,   14,   14,   14,   15,   15,   15,   16,   16,   16, 
    17,   17,   17,   18,   18,   18,   19,   19,   20,   20,   20,   21,   21,   21,   22,   22, 
    23,   23,   23,   24,   24,   25,   25,   26,   26,   26,   27,   27,   28,   28,   29,   29, 
    30,   30,   30,   31,   31,   32,   32,   33,   33,   34,   34,   35,   35,   36,   36,   37, 
    37,   38,   38,   39, 
};

// This attack path uses 913 bytes of EPROM.


const AttackWave model1_wave = { 
    ship1_wave1_rx,
    ship1_wave1_ry,
    ship1_wave1_rz,
    ship1_wave1_sc,
    ship1_wave1_sx,
    ship1_wave1_sy,
    SHIP1_WAVE1_FRAMES
};
const AttackWave model2_wave = { 
    ship2_wave1_rx,
    ship2_wave1_ry,
    ship2_wave1_rz,
    ship2_wave1_sc,
    ship2_wave1_sx,
    ship2_wave1_sy,
    SHIP2_WAVE1_FRAMES
};
const AttackWave model3_wave = { 
    ship3_wave1_rx,
    ship3_wave1_ry,
    ship3_wave1_rz,
    ship3_wave1_sc,
    ship3_wave1_sx,
    ship3_wave1_sy,
    SHIP3_WAVE1_FRAMES
};

// 3d_models.h
typedef struct { 
    vec8* vertices;
    uint8 numVertices;
    int8* lineStrips;
} Mesh;

extern const Mesh model1_mesh; 
extern const Mesh model2_mesh; 
extern const Mesh model3_mesh; 
extern const Mesh model4_mesh; 

#define MAX_MODEL_VERTICES    15


// (Models' distance coordinates inverted to compensate for models being designed facing away...)

// ship 1
//
static const vec8 model1_vertex[] = {
  /*  0 */ {      0,     0, -100/2 *-1},
  /*  1 */ {      0,     0,  -20/2 *-1},
  /*  2 */ {      0, -40/2,  -60/2 *-1},
  /*  3 */ {      0,  40/2,  -60/2 *-1},
  /*  4 */ { -100/2, -40/2,   80/2 *-1},
  /*  5 */ {  100/2, -40/2,   80/2 *-1},
  /*  6 */ {  -20/2,  20/2,  120/2 *-1},
  /*  7 */ {   20/2,  20/2,  120/2 *-1},
  /*  8 */ {  -30/2,     0,  120/2 *-1},
  /*  9 */ {   30/2,     0,  120/2 *-1},
  /* 10 */ {  -40/2,     0,  -60/2 *-1},
  /* 11 */ {   40/2,     0,  -60/2 *-1},
};
static const int8 model1_linestrips[] = {
    9,                             // line strip length (9 vectors)
    0, 20, 2, 22, 0, 4, 2, 6, 0,   // indices to screenpoint buffer (move to vertex 0, draw to screenpoint[20], etc.)
    13, 
    14, 2, 18, 14, 12, 16, 18, 10, 2, 8, 16, 2, 12,
    0    // end draw
};

// ship 2
//
static const vec8 model2_vertex[] = {
  /*  0 */ {     0,     0,          -90/2 *-1},
  /*  1 */ {     0,     0,           90/2 *-1},
  /*  2 */ {     0, -34/2, /*150*/ -128/2 *-1},
  /*  3 */ { -45/2,     0,  /*150*/ 127/2 *-1},
  /*  4 */ {  45/2,     0,  /*150*/ 127/2 *-1},
  /*  5 */ { -45/2,     0,          -60/2 *-1},
  /*  6 */ { -45/2,     0,           60/2 *-1},
  /*  7 */ {  45/2,     0,          -60/2 *-1},
  /*  8 */ {  45/2,     0,           60/2 *-1},
  /*  9 */ { -60/2,  24/2,  /*150*/ 127/2 *-1},
  /* 10 */ {  60/2,  24/2,  /*150*/ 127/2 *-1},
  /* 11 */ { -60/2,  24/2,           60/2 *-1},
  /* 12 */ {  60/2,  24/2,           60/2 *-1},
  /* 13 */ { -60/2, -27/2,          -90/2 *-1},
  /* 14 */ {  60/2, -27/2,          -90/2 *-1},
};
static const int8 model2_linestrips[] = {
    8, 
    4, 0, 14, 16, 2, 12, 10, 0,
    13, 
    16, 24, 20, 8, 16, 28, 4, 26, 12, 6, 18, 22, 12,
    2, 
    10, 26,
    2, 
    28, 14,
    0
};

// ship 3
//
static const vec8 model3_vertex[] = {
  /*  0 */ {      0,     0, -100/2 *-1},
  /*  1 */ {      0,     0,   20/2 *-1},
  /*  2 */ {      0,  40/2,  100/2 *-1},
  /*  3 */ {      0,  40/2,  -40/2 *-1},
  /*  4 */ {      0,  80/2,  100/2 *-1},
  /*  5 */ { -100/2, -40/2,  100/2 *-1},
  /*  6 */ {  100/2, -40/2,  100/2 *-1},
  /*  7 */ {  -40/2, -20/2,  100/2 *-1},
  /*  8 */ {   40/2, -20/2,  100/2 *-1},
  /*  9 */ {  -60/2,     0,  -40/2 *-1},
  /* 10 */ {   60/2,     0,  -40/2 *-1},
};
static const int8 model3_linestrips[] = {
    16, 
    0, 20,  2,  18,  0,  6,  2,  8,  4,  2,  12,  16,  2,  10,  14,  2,
    2, 
    20, 6,
    2, 
    6, 18,
    0
};

// ship 4
//
static const vec8 model4_vertex[] = {
  /*  0 */ {     0,  10/2, -20/2 *-1},
  /*  1 */ {     0, -25/2, -45/2 *-1},
  /*  2 */ {     0,   2/2, -92/2 *-1},
  /*  3 */ { -20/2, -10/2, 110/2 *-1},
  /*  4 */ {  20/2, -10/2, 110/2 *-1},
  /*  5 */ { -22/2,  15/2, -60/2 *-1},
  /*  6 */ {  22/2,  15/2, -60/2 *-1},
  /*  7 */ { -30/2,   2/2, -70/2 *-1},
  /*  8 */ {  30/2,   2/2, -70/2 *-1},
  /*  9 */ { -90/2,  20/2,  90/2 *-1},
  /* 10 */ {  90/2,  20/2,  90/2 *-1},
};
static const int8 model4_linestrips[] = {
    16, 
    4, 16, 0, 14, 4, 2, 0, 20, 8, 6, 0, 8,  2, 6, 18, 0,
    7, 
    16, 12, 10, 14, 2, 16, 14,
    2, 
    0, 10,
    0
};

const Mesh model1_mesh = { 
    (vec8*)model1_vertex, 
    sizeof(model1_vertex) / sizeof(vec8), 
    (int8*)model1_linestrips 
};

const Mesh model2_mesh = { 
    (vec8*)model2_vertex, 
    sizeof(model2_vertex) / sizeof(vec8), 
    (int8*)model2_linestrips 
};

const Mesh model3_mesh = { 
    (vec8*)model3_vertex, 
    sizeof(model3_vertex) / sizeof(vec8), 
    (int8*)model3_linestrips 
};

const Mesh model4_mesh = { 
    (vec8*)model4_vertex, 
    sizeof(model4_vertex) / sizeof(vec8), 
    (int8*)model4_linestrips 
};


/*  
     rotateMatrixEuler() calculates a rotation matrix which combines 3 rotations: first around Z axis, then Y and X last.
    This is reverse order compared to the original code (rotates first around X, then Y and Z last), so the original 
    precalculated euler angles won't work directly with this code. 

    To get a bit nicer perspective projection approximation, shear the model coordinates after rotation:

        x += (sx*z) >> 8    , where xyz are the rotated coordinates and sx/sy is the object's screen position
        y += (sy*z) >> 8

(or use a lookup table, which may be needed anyway to correct the Vectrex's aspect ratio)

*/

#ifdef USE_ASM_OPTIMIZATIONS
#define transformPosition transformPosition_asm
#define rotateMatrixEuler rotateMatrixEuler_asm
#define mulMatrix mulMatrix_asm
#endif

// align work buffer to beginning of memory page
uint8 workBuffer[16] __attribute__((section(".data")));
int8 screenPoints[2 * MAX_MODEL_VERTICES];

// ship definition
typedef struct { 
    Mesh* mesh;
    vec8 angles;
    vec8 angularVelocity;
    vec16 position;
    mat16 rotation;

    AttackWave* wave;
} Object3d;

Object3d ship_A;
Object3d ship_B;
Object3d ship_C;
Object3d ship_D;


#define debugstr(ignore)

/* Shields get a special proc because they're one continuous line */
static const int8 shieldvec[] = {
   0,  -72,24,
  -1,  24,24,
  -1,  96,-96,
  -1,  24,24,
  -1,  -72,72,
  -1,  -72,-72,
  -1,  24,-24,
  -1,  96,96,
  -1,  24,-24,
  -1,  -72,-72,
  -1,  -72,72,
   1
};

static const int8 crosshair[] = {
  0, 17, 40, // trying to move it to the center
  -1, -30, 0,
  0, 15, 20,
  -1, 0, -115,
  0, -15, 20,
  -1, 30, 0,
  0, -10, 20,
  -1, -10, 0,
  0, -10, 10,
  -1, 0, 10,
  0, -15, 10,
  -1, 0, -30,
  0, -20, 15,
  -1, 105, 0,
  0, -20, 15,
  -1, 0, -30,
  0, -20, 10,
  -1, 0, 10,
  0, -10, 10,
  -1, -10, 0,
  1
};

static inline void set_scale(uint8 scale) {
  /*VIA_t1_cnt_lo*/ *(volatile uint8 *)0xD004 = scale;
}
static inline void dots(uint8 size, const int8 *array) {
  *(volatile uint8 *)0xC823 = size-1; Dot_List((void *)array);
}
static inline void rotate_vl(uint8 angle, uint8 points, const void *original, void *rotated) {
  *(volatile uint8 *)0xC836 = angle;
  *(volatile uint8 *)0xC823 = points-1;
  Rot_VL((int *)original, rotated);
}

#define joybit Joy_Digital
#define tstat (*((volatile uint8 *) 0xc856))

#define pot0 (*((volatile int8 *) 0xc81b))
#define pot1 (*((volatile int8 *) 0xc81c))
#define pot2 (*((volatile int8 *) 0xc81d))
#define pot3 (*((volatile int8 *) 0xc81e))

#define epot0 (*((volatile uint8 *) 0xc81f))
#define epot1 (*((volatile uint8 *) 0xc820))
#define epot2 (*((volatile uint8 *) 0xc821))
#define epot3 (*((volatile uint8 *) 0xc822))


#define t1lolc (*((volatile uint8 *) 0xd004))

#define read_ram(x) (*((volatile int8 *) x))

#define joystick1_button1 (int8)(read_ram(0xC80F) & 1U) /* A */
#define joystick1_button2 (int8)(read_ram(0xC80F) & 2U) /* S */
#define joystick1_button3 (int8)(read_ram(0xC80F) & 4U) /* D */
#define joystick1_button4 (int8)(read_ram(0xC80F) & 8U) /* F */


// Drawing routines. Could increase the length of all the vectors below and
// draw them at a reduced scale for an immediate win, or go the whole hog and
// use our own drawing code rather than the BIOS call.  But the text on the
// screen is minimal and we're not that desperate for cycles *yet*...
#define DEFINE(name) static const int8 name[] = {
#define move_rel_xy(x,y) 0 /*MOVE*/, ((int8)y), ((int8)x)
#define line_rel_xy(x,y) (int8)-1 /*LINE*/, ((int8)y), ((int8)x)
#define ENDDEF(name) 1 /*STOP*/ }; static void SHOW_##name(void) { Draw_VLp((int8 *)(name)); }

DEFINE(MINUS)
  move_rel_xy(4,8),  // to 8,4
  line_rel_xy(14,0), // to 8,20
  move_rel_xy(4,-8), // to 0,24
ENDDEF(MINUS)

DEFINE(SCORE)
  line_rel_xy(16,0), // to 16,0
  line_rel_xy(0,12), // to 16,12
  line_rel_xy(-16,0), // to 0,12
  line_rel_xy(0,12), // to 0,24
  line_rel_xy(16,0), // to 16,24
  move_rel_xy(8,0), // to 24,24
  line_rel_xy(16,0), // to 40,24
  move_rel_xy(0,-24), // to 40,0
  line_rel_xy(-16,0), // to 24,0
  line_rel_xy(0,24), // to 24,24
  move_rel_xy(24,0), // to 48,24
  line_rel_xy(16,0), // to 64,24
  line_rel_xy(0,-24), // to 64,0
  line_rel_xy(-16,0), // to 48,0
  line_rel_xy(0,24), // to 48,24
  move_rel_xy(40,-24), // to 88,0
  line_rel_xy(-4,12), // to 84,12
  move_rel_xy(-12,0), // to 72,12
  line_rel_xy(16,0), // to 88,12
  line_rel_xy(0,12), // to 88,24
  line_rel_xy(-16,0), // to 72,24
  line_rel_xy(0,-24), // to 72,0
  move_rel_xy(40,0), // to 112,0
  line_rel_xy(-16,0), // to 96,0
  line_rel_xy(0,24), // to 96,24
  move_rel_xy(0,-12), // to 96,12
  line_rel_xy(8,0), // to 104,12
  move_rel_xy(-8,12), // to 96,24
  line_rel_xy(16,0), // to 112,24
ENDDEF(SCORE)

DEFINE(HIGH_SCORE)
  line_rel_xy(0,24), // to 0,24
  move_rel_xy(0,-12), // to 0,12
  line_rel_xy(16,0), // to 16,12
  move_rel_xy(0,-12), // to 16,0
  line_rel_xy(0,24), // to 16,24
  move_rel_xy(16,-24), // to 32,0
  line_rel_xy(0,24), // to 32,24
  move_rel_xy(24,-12), // to 56,12
  line_rel_xy(8,0), // to 64,12
  line_rel_xy(0,-12), // to 64,0
  line_rel_xy(-16,0), // to 48,0
  line_rel_xy(0,24), // to 48,24
  line_rel_xy(16,0), // to 64,24
  move_rel_xy(8,-24), // to 72,0
  line_rel_xy(0,24), // to 72,24
  move_rel_xy(0,-12), // to 72,12
  line_rel_xy(16,0), // to 88,12
  move_rel_xy(0,-12), // to 88,0
  line_rel_xy(0,24), // to 88,24
  move_rel_xy(32,-24), // to 120,0
  line_rel_xy(16,0), // to 136,0
  line_rel_xy(0,12), // to 136,12
  line_rel_xy(-16,0), // to 120,12
  line_rel_xy(0,12), // to 120,24
  line_rel_xy(16,0), // to 136,24
  move_rel_xy(8,0), // to 144,24
  line_rel_xy(16,0), // to 160,24
  move_rel_xy(0,-24), // to 160,0
  line_rel_xy(-16,0), // to 144,0
  line_rel_xy(0,24), // to 144,24
  move_rel_xy(24,0), // to 168,24
  line_rel_xy(16,0), // to 184,24
  line_rel_xy(0,-24), // to 184,0
  line_rel_xy(-16,0), // to 168,0
  line_rel_xy(0,24), // to 168,24
  move_rel_xy(40,-24), // to 208,0
  line_rel_xy(-4,12), // to 204,12
  move_rel_xy(-12,0), // to 192,12
  line_rel_xy(16,0), // to 208,12
  line_rel_xy(0,12), // to 208,24
  line_rel_xy(-16,0), // to 192,24
  line_rel_xy(0,-24), // to 192,0
  move_rel_xy(40,0), // to 232,0
  line_rel_xy(-16,0), // to 216,0
  line_rel_xy(0,24), // to 216,24
  move_rel_xy(0,-12), // to 216,12
  line_rel_xy(8,0), // to 224,12
  move_rel_xy(-8,12), // to 216,24
  line_rel_xy(16,0), // to 232,24
ENDDEF(HIGH_SCORE)

DEFINE(CREDITS)
  move_rel_xy(0,24), // to 0,24
  line_rel_xy(16,0), // to 16,24
  move_rel_xy(0,-24), // to 16,0
  line_rel_xy(-16,0), // to 0,0
  line_rel_xy(0,24), // to 0,24
  move_rel_xy(40,-24), // to 40,0
  line_rel_xy(-4,12), // to 36,12
  move_rel_xy(-12,0), // to 24,12
  line_rel_xy(16,0), // to 40,12
  line_rel_xy(0,12), // to 40,24
  line_rel_xy(-16,0), // to 24,24
  line_rel_xy(0,-24), // to 24,0
  move_rel_xy(40,0), // to 64,0
  line_rel_xy(-16,0), // to 48,0
  line_rel_xy(0,24), // to 48,24
  move_rel_xy(0,-12), // to 48,12
  line_rel_xy(8,0), // to 56,12
  move_rel_xy(-8,12), // to 48,24
  line_rel_xy(16,0), // to 64,24
  move_rel_xy(8,0), // to 72,24
  line_rel_xy(12,0), // to 84,24
  line_rel_xy(4,-12), // to 88,12
  line_rel_xy(-4,-12), // to 84,0
  line_rel_xy(-12,0), // to 72,0
  line_rel_xy(0,24), // to 72,24
  move_rel_xy(32,-24), // to 104,0
  line_rel_xy(0,24), // to 104,24
  move_rel_xy(16,0), // to 120,24
  line_rel_xy(16,0), // to 136,24
  move_rel_xy(-8,0), // to 128,24
  line_rel_xy(0,-24), // to 128,0
  move_rel_xy(16,0), // to 144,0
  line_rel_xy(16,0), // to 160,0
  line_rel_xy(0,12), // to 160,12
  line_rel_xy(-16,0), // to 144,12
  line_rel_xy(0,12), // to 144,24
  line_rel_xy(16,0), // to 160,24
  move_rel_xy(30,-24), // to 190,0
ENDDEF(CREDITS)

DEFINE(INSERT_COIN)
  move_rel_xy(8,0), // to 8,0
  line_rel_xy(0,24), // to 8,24
  move_rel_xy(16,-24), // to 24,0
  line_rel_xy(0,24), // to 24,24
  line_rel_xy(16,-24), // to 40,0
  line_rel_xy(0,24), // to 40,24
  move_rel_xy(8,-24), // to 48,0
  line_rel_xy(16,0), // to 64,0
  line_rel_xy(0,12), // to 64,12
  line_rel_xy(-16,0), // to 48,12
  line_rel_xy(0,12), // to 48,24
  line_rel_xy(16,0), // to 64,24
  move_rel_xy(24,-24), // to 88,0
  line_rel_xy(-16,0), // to 72,0
  line_rel_xy(0,24), // to 72,24
  move_rel_xy(0,-12), // to 72,12
  line_rel_xy(8,0), // to 80,12
  move_rel_xy(-8,12), // to 72,24
  line_rel_xy(16,0), // to 88,24
  move_rel_xy(24,-24), // to 112,0
  line_rel_xy(-4,12), // to 108,12
  move_rel_xy(-12,0), // to 96,12
  line_rel_xy(16,0), // to 112,12
  line_rel_xy(0,12), // to 112,24
  line_rel_xy(-16,0), // to 96,24
  line_rel_xy(0,-24), // to 96,0
  move_rel_xy(24,24), // to 120,24
  line_rel_xy(16,0), // to 136,24
  move_rel_xy(-8,0), // to 128,24
  line_rel_xy(0,-24), // to 128,0
  move_rel_xy(40,24), // to 168,24
  line_rel_xy(16,0), // to 184,24
  move_rel_xy(0,-24), // to 184,0
  line_rel_xy(-16,0), // to 168,0
  line_rel_xy(0,24), // to 168,24
  move_rel_xy(24,0), // to 192,24
  line_rel_xy(16,0), // to 208,24
  line_rel_xy(0,-24), // to 208,0
  line_rel_xy(-16,0), // to 192,0
  line_rel_xy(0,24), // to 192,24
  move_rel_xy(32,-24), // to 224,0
  line_rel_xy(0,24), // to 224,24
  move_rel_xy(16,-24), // to 240,0
  line_rel_xy(0,24), // to 240,24
  line_rel_xy(16,-24), // to 256,0
  line_rel_xy(0,24), // to 256,24
ENDDEF(INSERT_COIN)

DEFINE(PRESS_START)
  line_rel_xy(0,24), // to 0,24
  line_rel_xy(16,0), // to 16,24
  line_rel_xy(0,-12), // to 16,12
  line_rel_xy(-16,0), // to 0,12
  move_rel_xy(40,-12), // to 40,0
  line_rel_xy(-4,12), // to 36,12
  move_rel_xy(-12,0), // to 24,12
  line_rel_xy(16,0), // to 40,12
  line_rel_xy(0,12), // to 40,24
  line_rel_xy(-16,0), // to 24,24
  line_rel_xy(0,-24), // to 24,0
  move_rel_xy(40,0), // to 64,0
  line_rel_xy(-16,0), // to 48,0
  line_rel_xy(0,24), // to 48,24
  move_rel_xy(0,-12), // to 48,12
  line_rel_xy(8,0), // to 56,12
  move_rel_xy(-8,12), // to 48,24
  line_rel_xy(16,0), // to 64,24
  move_rel_xy(8,-24), // to 72,0
  line_rel_xy(16,0), // to 88,0
  line_rel_xy(0,12), // to 88,12
  line_rel_xy(-16,0), // to 72,12
  line_rel_xy(0,12), // to 72,24
  line_rel_xy(16,0), // to 88,24
  move_rel_xy(8,-24), // to 96,0
  line_rel_xy(16,0), // to 112,0
  line_rel_xy(0,12), // to 112,12
  line_rel_xy(-16,0), // to 96,12
  line_rel_xy(0,12), // to 96,24
  line_rel_xy(16,0), // to 112,24
  move_rel_xy(32,-24), // to 144,0
  line_rel_xy(16,0), // to 160,0
  line_rel_xy(0,12), // to 160,12
  line_rel_xy(-16,0), // to 144,12
  line_rel_xy(0,12), // to 144,24
  line_rel_xy(16,0), // to 160,24
  move_rel_xy(8,0), // to 168,24
  line_rel_xy(16,0), // to 184,24
  move_rel_xy(-8,0), // to 176,24
  line_rel_xy(0,-24), // to 176,0
  move_rel_xy(32,0), // to 208,0
  line_rel_xy(0,24), // to 208,24
  move_rel_xy(-16,0), // to 192,24
  line_rel_xy(16,0), // to 208,24
  move_rel_xy(-16,-12), // to 192,12
  line_rel_xy(16,0), // to 208,12
  move_rel_xy(-16,12), // to 192,24
  line_rel_xy(0,-24), // to 192,0
  move_rel_xy(40,0), // to 232,0
  line_rel_xy(-4,12), // to 228,12
  move_rel_xy(-12,0), // to 216,12
  line_rel_xy(16,0), // to 232,12
  line_rel_xy(0,12), // to 232,24
  line_rel_xy(-16,0), // to 216,24
  line_rel_xy(0,-24), // to 216,0
  move_rel_xy(24,24), // to 240,24
  line_rel_xy(16,0), // to 256,24
  move_rel_xy(-8,0), // to 248,24
  line_rel_xy(0,-24), // to 248,0
ENDDEF(PRESS_START)

DEFINE(N0)
  move_rel_xy(0,24), // to 0,24
  line_rel_xy(16,0), // to 16,24
  line_rel_xy(0,-24), // to 16,0
  line_rel_xy(-16,0), // to 0,0
  line_rel_xy(0,24), // to 0,24
  move_rel_xy(24,-24), // to 24,0
ENDDEF(N0)

DEFINE(N1)
  move_rel_xy(8,0), // to 8,0
  line_rel_xy(0,24), // to 8,24
  move_rel_xy(16,-24), // to 24,0
ENDDEF(N1)

DEFINE(N2)
  move_rel_xy(0,24), // to 0,24
  line_rel_xy(16,0), // to 16,24
  line_rel_xy(0,-12), // to 16,12
  line_rel_xy(-16,0), // to 0,12
  line_rel_xy(0,-12), // to 0,0
  line_rel_xy(16,0), // to 16,0
  move_rel_xy(8,0), // to 24,0
ENDDEF(N2)

DEFINE(N3)
  line_rel_xy(16,0), // to 16,0
  move_rel_xy(-8,12), // to 8,12
  line_rel_xy(8,0), // to 16,12
  move_rel_xy(0,-12), // to 16,0
  line_rel_xy(0,24), // to 16,24
  line_rel_xy(-16,0), // to 0,24
  move_rel_xy(24,-24), // to 24,0
ENDDEF(N3)

DEFINE(N4)
  move_rel_xy(0,24), // to 0,24
  line_rel_xy(0,-12), // to 0,12
  line_rel_xy(16,0), // to 16,12
  move_rel_xy(-8,0), // to 8,12
  line_rel_xy(0,-12), // to 8,0
  move_rel_xy(16,0), // to 24,0
ENDDEF(N4)

DEFINE(N5)
  line_rel_xy(16,0), // to 16,0
  line_rel_xy(0,12), // to 16,12
  line_rel_xy(-16,0), // to 0,12
  line_rel_xy(0,12), // to 0,24
  line_rel_xy(16,0), // to 16,24
  move_rel_xy(8,-24), // to 24,0
ENDDEF(N5)

DEFINE(N6)
  move_rel_xy(0,12), // to 0,12
  line_rel_xy(16,0), // to 16,12
  line_rel_xy(0,-12), // to 16,0
  line_rel_xy(-16,0), // to 0,0
  line_rel_xy(0,24), // to 0,24
  move_rel_xy(24,-24), // to 24,0
ENDDEF(N6)

DEFINE(N7)
  move_rel_xy(8,0), // to 8,0
  line_rel_xy(8,24), // to 16,24
  line_rel_xy(-16,0), // to 0,24
  move_rel_xy(24,-24), // to 24,0
ENDDEF(N7)

DEFINE(N8)
  line_rel_xy(16,0), // to 16,0
  move_rel_xy(-16,24), // to 0,24
  line_rel_xy(16,0), // to 16,24
  move_rel_xy(-16,-12), // to 0,12
  line_rel_xy(16,0), // to 16,12
  move_rel_xy(0,12), // to 16,24
  line_rel_xy(0,-24), // to 16,0
  move_rel_xy(-16,24), // to 0,24
  line_rel_xy(0,-24), // to 0,0
  move_rel_xy(24,0), // to 24,0
ENDDEF(N8)

DEFINE(N9)
  move_rel_xy(16,24), // to 16,24
  line_rel_xy(-16,0), // to 0,24
  line_rel_xy(0,-12), // to 0,12
  line_rel_xy(16,0), // to 16,12
  move_rel_xy(0,12), // to 16,24
  line_rel_xy(0,-24), // to 16,0
  move_rel_xy(4,0), // to 24,0
ENDDEF(N9)

static void position_and_scale(int8 absx, int8 absy, int16 scale)
{
  Reset0Ref();
  set_scale(0x7f);
  Moveto_d(absy, absx);
  set_scale((uint8)scale);
}

static inline void position_and_scale_and_intensity(int8 absx, int8 absy, int16 scale, uint8 bright)
{
  position_and_scale(absx, absy, scale);
  Intensity_a(bright);
}

/* 3d rendering */

static uint8 Credits;

static uint8 intro_rot;
static int16 frame_number;
static uint8 global_flashing_intensity;

static int16 HighScore;
static int16 LastScore;
static int16 Score;


// The revolving intro placard...
//#include "placard.h"


const int8 placard64[] = {
  move_rel_xy(-63,0), // to -63,0
  line_rel_xy(19,0), // to -44,0
  move_rel_xy(107,0), // to 63,0
  line_rel_xy(-126,0), // to -63,0
  move_rel_xy(107,0), // to 44,0
  line_rel_xy(19,0), // to 63,0
  move_rel_xy(-107,0), // to -44,0
  line_rel_xy(88,0), // to 44,0
  move_rel_xy(-97,0), // to -53,0
  line_rel_xy(13,0), // to -40,0
  move_rel_xy(93,0), // to 53,0
  line_rel_xy(-106,0), // to -53,0
  move_rel_xy(93,0), // to 40,0
  line_rel_xy(13,0), // to 53,0
  move_rel_xy(-93,0), // to -40,0
  line_rel_xy(80,0), // to 40,0
  move_rel_xy(-65,0), // to -25,0
  line_rel_xy(12,0), // to -13,0
  move_rel_xy(-6,0), // to -19,0
  line_rel_xy(-2,0), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,0), // to -6,0
  move_rel_xy(0,0), // to -6,0
  line_rel_xy(4,0), // to -2,0
  move_rel_xy(-7,0), // to -9,0
  line_rel_xy(5,0), // to -4,0
  move_rel_xy(10,0), // to 6,0
  line_rel_xy(0,0), // to 6,0
  move_rel_xy(9,0), // to 15,0
  line_rel_xy(1,0), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(4,0), // to 35,0
  move_rel_xy(-4,0), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,0), // to 43,0
  move_rel_xy(-2,0), // to 41,0
  line_rel_xy(5,0), // to 46,0
  move_rel_xy(-3,0), // to 43,0
  line_rel_xy(-10,0), // to 33,0
  move_rel_xy(-4,0), // to 29,0
  line_rel_xy(-11,0), // to 18,0
  move_rel_xy(0,0), // to 18,0
  line_rel_xy(-2,0), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,0), // to 23,0
  line_rel_xy(-6,0), // to 17,0
  move_rel_xy(-5,0), // to 12,0
  line_rel_xy(1,0), // to 13,0
  move_rel_xy(0,0), // to 13,0
  line_rel_xy(-11,0), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,0), // to 2,0
  move_rel_xy(-4,0), // to -2,0
  line_rel_xy(0,0), // to -2,0
  move_rel_xy(0,0), // to -2,0
  line_rel_xy(-10,0), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,0), // to -13,0
  move_rel_xy(-3,0), // to -16,0
  line_rel_xy(-2,0), // to -18,0
  move_rel_xy(0,0), // to -18,0
  line_rel_xy(-11,0), // to -29,0
  move_rel_xy(0,0), // to -29,0
  line_rel_xy(3,0), // to -26,0
  move_rel_xy(-5,0), // to -31,0
  line_rel_xy(-5,0), // to -36,0
  move_rel_xy(3,0), // to -33,0
  line_rel_xy(-2,0), // to -35,0
  move_rel_xy(0,0), // to -35,0
  line_rel_xy(-11,0), // to -46,0
  move_rel_xy(0,0), // to -46,0
  line_rel_xy(5,0), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard62[] = {
  move_rel_xy(-63,-1), // to -63,-1
  line_rel_xy(19,1), // to -44,0
  move_rel_xy(107,-1), // to 63,-1
  line_rel_xy(-126,0), // to -63,-1
  move_rel_xy(107,1), // to 44,0
  line_rel_xy(19,-1), // to 63,-1
  move_rel_xy(-107,1), // to -44,0
  line_rel_xy(88,0), // to 44,0
  move_rel_xy(-97,-1), // to -53,-1
  line_rel_xy(13,1), // to -40,0
  move_rel_xy(93,-1), // to 53,-1
  line_rel_xy(-106,0), // to -53,-1
  move_rel_xy(93,1), // to 40,0
  line_rel_xy(13,-1), // to 53,-1
  move_rel_xy(-93,1), // to -40,0
  line_rel_xy(80,0), // to 40,0
  move_rel_xy(-65,0), // to -25,0
  line_rel_xy(12,0), // to -13,0
  move_rel_xy(-6,0), // to -19,0
  line_rel_xy(-2,0), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,0), // to -6,0
  move_rel_xy(0,0), // to -6,0
  line_rel_xy(4,0), // to -2,0
  move_rel_xy(-7,0), // to -9,0
  line_rel_xy(5,0), // to -4,0
  move_rel_xy(10,0), // to 6,0
  line_rel_xy(0,0), // to 6,0
  move_rel_xy(9,0), // to 15,0
  line_rel_xy(1,0), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(4,0), // to 35,0
  move_rel_xy(-4,0), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,0), // to 43,0
  move_rel_xy(-2,0), // to 41,0
  line_rel_xy(5,0), // to 46,0
  move_rel_xy(-3,0), // to 43,0
  line_rel_xy(-10,0), // to 33,0
  move_rel_xy(-4,0), // to 29,0
  line_rel_xy(-11,0), // to 18,0
  move_rel_xy(0,0), // to 18,0
  line_rel_xy(-2,0), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,0), // to 23,0
  line_rel_xy(-6,0), // to 17,0
  move_rel_xy(-5,0), // to 12,0
  line_rel_xy(1,0), // to 13,0
  move_rel_xy(0,0), // to 13,0
  line_rel_xy(-11,0), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,0), // to 2,0
  move_rel_xy(-4,0), // to -2,0
  line_rel_xy(0,0), // to -2,0
  move_rel_xy(0,0), // to -2,0
  line_rel_xy(-10,0), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,0), // to -13,0
  move_rel_xy(-3,0), // to -16,0
  line_rel_xy(-2,0), // to -18,0
  move_rel_xy(0,0), // to -18,0
  line_rel_xy(-11,0), // to -29,0
  move_rel_xy(0,0), // to -29,0
  line_rel_xy(3,0), // to -26,0
  move_rel_xy(-5,0), // to -31,0
  line_rel_xy(-5,0), // to -36,0
  move_rel_xy(3,0), // to -33,0
  line_rel_xy(-2,0), // to -35,0
  move_rel_xy(0,0), // to -35,0
  line_rel_xy(-11,0), // to -46,0
  move_rel_xy(0,0), // to -46,0
  line_rel_xy(5,0), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard60[] = {
  move_rel_xy(-63,-3), // to -63,-3
  line_rel_xy(19,5), // to -44,2
  move_rel_xy(107,-5), // to 63,-3
  line_rel_xy(-126,0), // to -63,-3
  move_rel_xy(107,5), // to 44,2
  line_rel_xy(19,-5), // to 63,-3
  move_rel_xy(-107,5), // to -44,2
  line_rel_xy(88,0), // to 44,2
  move_rel_xy(-97,-4), // to -53,-2
  line_rel_xy(13,3), // to -40,1
  move_rel_xy(93,-3), // to 53,-2
  line_rel_xy(-106,0), // to -53,-2
  move_rel_xy(93,3), // to 40,1
  line_rel_xy(13,-3), // to 53,-2
  move_rel_xy(-93,3), // to -40,1
  line_rel_xy(80,0), // to 40,1
  move_rel_xy(-65,0), // to -25,1
  line_rel_xy(12,0), // to -13,1
  move_rel_xy(-6,0), // to -19,1
  line_rel_xy(-2,-1), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,1), // to -6,1
  move_rel_xy(0,0), // to -6,1
  line_rel_xy(4,-1), // to -2,0
  move_rel_xy(-7,0), // to -9,0
  line_rel_xy(5,0), // to -4,0
  move_rel_xy(10,0), // to 6,0
  line_rel_xy(0,1), // to 6,1
  move_rel_xy(9,0), // to 15,1
  line_rel_xy(1,-1), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(4,-1), // to 35,-1
  move_rel_xy(-4,1), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,0), // to 43,0
  move_rel_xy(-2,0), // to 41,0
  line_rel_xy(5,-1), // to 46,-1
  move_rel_xy(-3,1), // to 43,0
  line_rel_xy(-10,0), // to 33,0
  move_rel_xy(-4,-1), // to 29,-1
  line_rel_xy(-11,0), // to 18,-1
  move_rel_xy(0,0), // to 18,-1
  line_rel_xy(-2,1), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,0), // to 23,0
  line_rel_xy(-6,0), // to 17,0
  move_rel_xy(-5,0), // to 12,0
  line_rel_xy(1,-1), // to 13,-1
  move_rel_xy(0,0), // to 13,-1
  line_rel_xy(-11,1), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-1), // to 2,-1
  move_rel_xy(-4,1), // to -2,0
  line_rel_xy(0,-1), // to -2,-1
  move_rel_xy(0,0), // to -2,-1
  line_rel_xy(-10,1), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-1), // to -13,-1
  move_rel_xy(-3,1), // to -16,0
  line_rel_xy(-2,-1), // to -18,-1
  move_rel_xy(0,0), // to -18,-1
  line_rel_xy(-11,0), // to -29,-1
  move_rel_xy(0,0), // to -29,-1
  line_rel_xy(3,1), // to -26,0
  move_rel_xy(-5,0), // to -31,0
  line_rel_xy(-5,0), // to -36,0
  move_rel_xy(3,0), // to -33,0
  line_rel_xy(-2,-1), // to -35,-1
  move_rel_xy(0,0), // to -35,-1
  line_rel_xy(-11,0), // to -46,-1
  move_rel_xy(0,0), // to -46,-1
  line_rel_xy(5,1), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard58[] = {
  move_rel_xy(-63,-4), // to -63,-4
  line_rel_xy(19,7), // to -44,3
  move_rel_xy(107,-7), // to 63,-4
  line_rel_xy(-126,0), // to -63,-4
  move_rel_xy(107,7), // to 44,3
  line_rel_xy(19,-7), // to 63,-4
  move_rel_xy(-107,7), // to -44,3
  line_rel_xy(88,0), // to 44,3
  move_rel_xy(-97,-6), // to -53,-3
  line_rel_xy(13,5), // to -40,2
  move_rel_xy(93,-5), // to 53,-3
  line_rel_xy(-106,0), // to -53,-3
  move_rel_xy(93,5), // to 40,2
  line_rel_xy(13,-5), // to 53,-3
  move_rel_xy(-93,5), // to -40,2
  line_rel_xy(80,0), // to 40,2
  move_rel_xy(-65,0), // to -25,2
  line_rel_xy(12,0), // to -13,2
  move_rel_xy(-6,0), // to -19,2
  line_rel_xy(-2,-2), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,2), // to -6,2
  move_rel_xy(0,0), // to -6,2
  line_rel_xy(4,-2), // to -2,0
  move_rel_xy(-7,1), // to -9,1
  line_rel_xy(5,0), // to -4,1
  move_rel_xy(10,-1), // to 6,0
  line_rel_xy(0,2), // to 6,2
  move_rel_xy(9,0), // to 15,2
  line_rel_xy(1,-2), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(4,-2), // to 35,-2
  move_rel_xy(-4,2), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-1), // to 43,-1
  move_rel_xy(-2,0), // to 41,-1
  line_rel_xy(5,-1), // to 46,-2
  move_rel_xy(-3,1), // to 43,-1
  line_rel_xy(-10,0), // to 33,-1
  move_rel_xy(-4,-1), // to 29,-2
  line_rel_xy(-11,0), // to 18,-2
  move_rel_xy(0,0), // to 18,-2
  line_rel_xy(-2,2), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-1), // to 23,-1
  line_rel_xy(-6,0), // to 17,-1
  move_rel_xy(-5,1), // to 12,0
  line_rel_xy(1,-2), // to 13,-2
  move_rel_xy(0,0), // to 13,-2
  line_rel_xy(-11,2), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-2), // to 2,-2
  move_rel_xy(-4,2), // to -2,0
  line_rel_xy(0,-2), // to -2,-2
  line_rel_xy(-10,2), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-2), // to -13,-2
  move_rel_xy(-3,2), // to -16,0
  line_rel_xy(-2,-2), // to -18,-2
  move_rel_xy(0,0), // to -18,-2
  line_rel_xy(-11,0), // to -29,-2
  move_rel_xy(0,0), // to -29,-2
  line_rel_xy(3,2), // to -26,0
  move_rel_xy(-5,-1), // to -31,-1
  line_rel_xy(-5,0), // to -36,-1
  move_rel_xy(3,0), // to -33,-1
  line_rel_xy(-2,-1), // to -35,-2
  move_rel_xy(0,0), // to -35,-2
  line_rel_xy(-11,0), // to -46,-2
  move_rel_xy(0,0), // to -46,-2
  line_rel_xy(5,2), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard56[] = {
  move_rel_xy(-63,-6), // to -63,-6
  line_rel_xy(19,10), // to -44,4
  move_rel_xy(107,-10), // to 63,-6
  line_rel_xy(-126,0), // to -63,-6
  move_rel_xy(107,10), // to 44,4
  line_rel_xy(19,-10), // to 63,-6
  move_rel_xy(-107,10), // to -44,4
  line_rel_xy(88,0), // to 44,4
  move_rel_xy(-97,-8), // to -53,-4
  line_rel_xy(13,7), // to -40,3
  move_rel_xy(93,-7), // to 53,-4
  line_rel_xy(-106,0), // to -53,-4
  move_rel_xy(93,7), // to 40,3
  line_rel_xy(13,-7), // to 53,-4
  move_rel_xy(-93,7), // to -40,3
  line_rel_xy(80,0), // to 40,3
  move_rel_xy(-65,-1), // to -25,2
  line_rel_xy(12,0), // to -13,2
  move_rel_xy(-6,0), // to -19,2
  line_rel_xy(-2,-2), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,2), // to -6,2
  move_rel_xy(0,0), // to -6,2
  line_rel_xy(4,-2), // to -2,0
  move_rel_xy(-7,1), // to -9,1
  line_rel_xy(5,0), // to -4,1
  move_rel_xy(10,-1), // to 6,0
  line_rel_xy(0,2), // to 6,2
  move_rel_xy(9,0), // to 15,2
  line_rel_xy(1,-2), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(4,-3), // to 35,-3
  move_rel_xy(-4,3), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-1), // to 43,-1
  move_rel_xy(-2,0), // to 41,-1
  line_rel_xy(5,-2), // to 46,-3
  move_rel_xy(-3,2), // to 43,-1
  line_rel_xy(-10,0), // to 33,-1
  move_rel_xy(-4,-2), // to 29,-3
  line_rel_xy(-11,0), // to 18,-3
  move_rel_xy(0,0), // to 18,-3
  line_rel_xy(-2,3), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-1), // to 23,-1
  line_rel_xy(-6,0), // to 17,-1
  move_rel_xy(-5,1), // to 12,0
  line_rel_xy(1,-3), // to 13,-3
  move_rel_xy(0,0), // to 13,-3
  line_rel_xy(-11,3), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-3), // to 2,-3
  move_rel_xy(-4,3), // to -2,0
  line_rel_xy(0,-3), // to -2,-3
  move_rel_xy(0,0), // to -2,-3
  line_rel_xy(-10,3), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-3), // to -13,-3
  move_rel_xy(-3,3), // to -16,0
  line_rel_xy(-2,-3), // to -18,-3
  move_rel_xy(0,0), // to -18,-3
  line_rel_xy(-11,0), // to -29,-3
  move_rel_xy(0,0), // to -29,-3
  line_rel_xy(3,3), // to -26,0
  move_rel_xy(-5,-2), // to -31,-2
  line_rel_xy(-5,0), // to -36,-2
  move_rel_xy(3,0), // to -33,-2
  line_rel_xy(-2,-1), // to -35,-3
  move_rel_xy(0,0), // to -35,-3
  line_rel_xy(-11,0), // to -46,-3
  move_rel_xy(0,0), // to -46,-3
  line_rel_xy(5,3), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard54[] = {
  move_rel_xy(-63,-8), // to -63,-8
  line_rel_xy(19,13), // to -44,5
  move_rel_xy(107,-13), // to 63,-8
  line_rel_xy(-126,0), // to -63,-8
  move_rel_xy(107,13), // to 44,5
  line_rel_xy(19,-13), // to 63,-8
  move_rel_xy(-107,13), // to -44,5
  line_rel_xy(88,0), // to 44,5
  move_rel_xy(-97,-11), // to -53,-6
  line_rel_xy(13,10), // to -40,4
  move_rel_xy(93,-10), // to 53,-6
  line_rel_xy(-106,0), // to -53,-6
  move_rel_xy(93,10), // to 40,4
  line_rel_xy(13,-10), // to 53,-6
  move_rel_xy(-93,10), // to -40,4
  line_rel_xy(80,0), // to 40,4
  move_rel_xy(-65,-1), // to -25,3
  line_rel_xy(12,0), // to -13,3
  move_rel_xy(-6,0), // to -19,3
  line_rel_xy(-2,-3), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,3), // to -6,3
  move_rel_xy(0,0), // to -6,3
  line_rel_xy(4,-3), // to -2,0
  move_rel_xy(-7,2), // to -9,2
  line_rel_xy(5,0), // to -4,2
  move_rel_xy(10,-2), // to 6,0
  line_rel_xy(0,3), // to 6,3
  move_rel_xy(9,0), // to 15,3
  line_rel_xy(1,-3), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(4,-4), // to 35,-4
  move_rel_xy(-4,4), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-2), // to 43,-2
  move_rel_xy(-2,0), // to 41,-2
  line_rel_xy(5,-2), // to 46,-4
  move_rel_xy(-3,2), // to 43,-2
  line_rel_xy(-10,0), // to 33,-2
  move_rel_xy(-4,-2), // to 29,-4
  line_rel_xy(-11,0), // to 18,-4
  move_rel_xy(0,0), // to 18,-4
  line_rel_xy(-2,4), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-2), // to 23,-2
  line_rel_xy(-6,0), // to 17,-2
  move_rel_xy(-5,2), // to 12,0
  line_rel_xy(1,-4), // to 13,-4
  move_rel_xy(0,0), // to 13,-4
  line_rel_xy(-11,4), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-4), // to 2,-4
  move_rel_xy(-4,4), // to -2,0
  line_rel_xy(0,-4), // to -2,-4
  move_rel_xy(0,0), // to -2,-4
  line_rel_xy(-10,4), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-4), // to -13,-4
  move_rel_xy(-3,4), // to -16,0
  line_rel_xy(-2,-4), // to -18,-4
  move_rel_xy(0,0), // to -18,-4
  line_rel_xy(-11,0), // to -29,-4
  move_rel_xy(0,0), // to -29,-4
  line_rel_xy(3,4), // to -26,0
  move_rel_xy(-5,-2), // to -31,-2
  line_rel_xy(-5,0), // to -36,-2
  move_rel_xy(3,0), // to -33,-2
  line_rel_xy(-2,-2), // to -35,-4
  move_rel_xy(0,0), // to -35,-4
  line_rel_xy(-11,0), // to -46,-4
  move_rel_xy(0,0), // to -46,-4
  line_rel_xy(5,4), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard52[] = {
  move_rel_xy(-63,-9), // to -63,-9
  line_rel_xy(19,15), // to -44,6
  move_rel_xy(107,-15), // to 63,-9
  line_rel_xy(-126,0), // to -63,-9
  move_rel_xy(107,15), // to 44,6
  line_rel_xy(19,-15), // to 63,-9
  move_rel_xy(-107,15), // to -44,6
  line_rel_xy(88,0), // to 44,6
  move_rel_xy(-97,-13), // to -53,-7
  line_rel_xy(13,12), // to -40,5
  move_rel_xy(93,-12), // to 53,-7
  line_rel_xy(-106,0), // to -53,-7
  move_rel_xy(93,12), // to 40,5
  line_rel_xy(13,-12), // to 53,-7
  move_rel_xy(-93,12), // to -40,5
  line_rel_xy(80,0), // to 40,5
  move_rel_xy(-65,-1), // to -25,4
  line_rel_xy(12,0), // to -13,4
  move_rel_xy(-6,0), // to -19,4
  line_rel_xy(-2,-4), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,4), // to -6,4
  move_rel_xy(0,0), // to -6,4
  line_rel_xy(4,-4), // to -2,0
  move_rel_xy(-7,2), // to -9,2
  line_rel_xy(5,0), // to -4,2
  move_rel_xy(10,-2), // to 6,0
  line_rel_xy(0,4), // to 6,4
  move_rel_xy(9,0), // to 15,4
  line_rel_xy(1,-4), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(4,-5), // to 35,-5
  move_rel_xy(-4,5), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-2), // to 43,-2
  move_rel_xy(-2,0), // to 41,-2
  line_rel_xy(4,-3), // to 45,-5
  move_rel_xy(-2,3), // to 43,-2
  line_rel_xy(-10,0), // to 33,-2
  move_rel_xy(-4,-3), // to 29,-5
  line_rel_xy(-11,0), // to 18,-5
  move_rel_xy(0,0), // to 18,-5
  line_rel_xy(-2,5), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-2), // to 23,-2
  line_rel_xy(-6,0), // to 17,-2
  move_rel_xy(-5,2), // to 12,0
  line_rel_xy(1,-5), // to 13,-5
  move_rel_xy(0,0), // to 13,-5
  line_rel_xy(-11,5), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-5), // to 2,-5
  move_rel_xy(-4,5), // to -2,0
  line_rel_xy(0,-5), // to -2,-5
  move_rel_xy(0,0), // to -2,-5
  line_rel_xy(-10,5), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-5), // to -13,-5
  move_rel_xy(-3,5), // to -16,0
  line_rel_xy(-2,-5), // to -18,-5
  move_rel_xy(0,0), // to -18,-5
  line_rel_xy(-11,0), // to -29,-5
  move_rel_xy(0,0), // to -29,-5
  line_rel_xy(3,5), // to -26,0
  move_rel_xy(-5,-3), // to -31,-3
  line_rel_xy(-5,0), // to -36,-3
  move_rel_xy(3,0), // to -33,-3
  line_rel_xy(-2,-2), // to -35,-5
  move_rel_xy(0,0), // to -35,-5
  line_rel_xy(-10,0), // to -45,-5
  move_rel_xy(0,0), // to -45,-5
  line_rel_xy(4,5), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard50[] = {
  move_rel_xy(-63,-11), // to -63,-11
  line_rel_xy(19,18), // to -44,7
  move_rel_xy(107,-18), // to 63,-11
  line_rel_xy(-126,0), // to -63,-11
  move_rel_xy(107,18), // to 44,7
  line_rel_xy(19,-18), // to 63,-11
  move_rel_xy(-107,18), // to -44,7
  line_rel_xy(88,0), // to 44,7
  move_rel_xy(-97,-15), // to -53,-8
  line_rel_xy(13,14), // to -40,6
  move_rel_xy(93,-14), // to 53,-8
  line_rel_xy(-106,0), // to -53,-8
  move_rel_xy(93,14), // to 40,6
  line_rel_xy(13,-14), // to 53,-8
  move_rel_xy(-93,14), // to -40,6
  line_rel_xy(80,0), // to 40,6
  move_rel_xy(-65,-1), // to -25,5
  line_rel_xy(12,0), // to -13,5
  move_rel_xy(-6,0), // to -19,5
  line_rel_xy(-2,-5), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,5), // to -6,5
  move_rel_xy(0,0), // to -6,5
  line_rel_xy(4,-5), // to -2,0
  move_rel_xy(-7,3), // to -9,3
  line_rel_xy(5,0), // to -4,3
  move_rel_xy(10,-3), // to 6,0
  line_rel_xy(0,5), // to 6,5
  move_rel_xy(9,0), // to 15,5
  line_rel_xy(1,-5), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(3,-6), // to 34,-6
  move_rel_xy(-3,6), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-3), // to 43,-3
  move_rel_xy(-2,0), // to 41,-3
  line_rel_xy(4,-3), // to 45,-6
  move_rel_xy(-2,3), // to 43,-3
  line_rel_xy(-10,0), // to 33,-3
  move_rel_xy(-4,-3), // to 29,-6
  line_rel_xy(-11,0), // to 18,-6
  move_rel_xy(0,0), // to 18,-6
  line_rel_xy(-2,6), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-3), // to 23,-3
  line_rel_xy(-6,0), // to 17,-3
  move_rel_xy(-5,3), // to 12,0
  line_rel_xy(1,-6), // to 13,-6
  move_rel_xy(0,0), // to 13,-6
  line_rel_xy(-11,6), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-6), // to 2,-6
  move_rel_xy(-4,6), // to -2,0
  line_rel_xy(0,-6), // to -2,-6
  move_rel_xy(0,0), // to -2,-6
  line_rel_xy(-10,6), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-6), // to -13,-6
  move_rel_xy(-3,6), // to -16,0
  line_rel_xy(-2,-6), // to -18,-6
  move_rel_xy(0,0), // to -18,-6
  line_rel_xy(-11,0), // to -29,-6
  move_rel_xy(0,0), // to -29,-6
  line_rel_xy(3,6), // to -26,0
  move_rel_xy(-5,-3), // to -31,-3
  line_rel_xy(-5,0), // to -36,-3
  move_rel_xy(3,0), // to -33,-3
  line_rel_xy(-1,-3), // to -34,-6
  move_rel_xy(0,0), // to -34,-6
  line_rel_xy(-11,0), // to -45,-6
  move_rel_xy(0,0), // to -45,-6
  line_rel_xy(4,6), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard48[] = {
  move_rel_xy(-63,-12), // to -63,-12
  line_rel_xy(19,21), // to -44,9
  move_rel_xy(107,-21), // to 63,-12
  line_rel_xy(-126,0), // to -63,-12
  move_rel_xy(107,21), // to 44,9
  line_rel_xy(19,-21), // to 63,-12
  move_rel_xy(-107,21), // to -44,9
  line_rel_xy(88,0), // to 44,9
  move_rel_xy(-96,-18), // to -52,-9
  line_rel_xy(12,16), // to -40,7
  move_rel_xy(92,-16), // to 52,-9
  line_rel_xy(-104,0), // to -52,-9
  move_rel_xy(92,16), // to 40,7
  line_rel_xy(12,-16), // to 52,-9
  move_rel_xy(-92,16), // to -40,7
  line_rel_xy(80,0), // to 40,7
  move_rel_xy(-65,-2), // to -25,5
  line_rel_xy(12,0), // to -13,5
  move_rel_xy(-6,0), // to -19,5
  line_rel_xy(-2,-5), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,5), // to -6,5
  move_rel_xy(0,0), // to -6,5
  line_rel_xy(4,-5), // to -2,0
  move_rel_xy(-7,3), // to -9,3
  line_rel_xy(5,0), // to -4,3
  move_rel_xy(10,-3), // to 6,0
  line_rel_xy(0,5), // to 6,5
  move_rel_xy(9,0), // to 15,5
  line_rel_xy(1,-5), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(3,-6), // to 34,-6
  move_rel_xy(-3,6), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-3), // to 43,-3
  move_rel_xy(-3,0), // to 40,-3
  line_rel_xy(5,-3), // to 45,-6
  move_rel_xy(-2,3), // to 43,-3
  line_rel_xy(-10,0), // to 33,-3
  move_rel_xy(-4,-3), // to 29,-6
  line_rel_xy(-11,0), // to 18,-6
  move_rel_xy(0,0), // to 18,-6
  line_rel_xy(-2,6), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-3), // to 23,-3
  line_rel_xy(-6,0), // to 17,-3
  move_rel_xy(-5,3), // to 12,0
  line_rel_xy(1,-6), // to 13,-6
  move_rel_xy(0,0), // to 13,-6
  line_rel_xy(-11,6), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-6), // to 2,-6
  move_rel_xy(-4,6), // to -2,0
  line_rel_xy(0,-6), // to -2,-6
  move_rel_xy(0,0), // to -2,-6
  line_rel_xy(-10,6), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-6), // to -13,-6
  move_rel_xy(-3,6), // to -16,0
  line_rel_xy(-2,-6), // to -18,-6
  move_rel_xy(0,0), // to -18,-6
  line_rel_xy(-11,0), // to -29,-6
  move_rel_xy(0,0), // to -29,-6
  line_rel_xy(3,6), // to -26,0
  move_rel_xy(-4,-4), // to -30,-4
  line_rel_xy(-6,0), // to -36,-4
  move_rel_xy(3,0), // to -33,-4
  line_rel_xy(-1,-2), // to -34,-6
  move_rel_xy(0,0), // to -34,-6
  line_rel_xy(-11,0), // to -45,-6
  move_rel_xy(0,0), // to -45,-6
  line_rel_xy(4,6), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard46[] = {
  move_rel_xy(-62,-14), // to -62,-14
  line_rel_xy(18,24), // to -44,10
  move_rel_xy(106,-24), // to 62,-14
  line_rel_xy(-124,0), // to -62,-14
  move_rel_xy(106,24), // to 44,10
  line_rel_xy(18,-24), // to 62,-14
  move_rel_xy(-106,24), // to -44,10
  line_rel_xy(88,0), // to 44,10
  move_rel_xy(-96,-20), // to -52,-10
  line_rel_xy(12,18), // to -40,8
  move_rel_xy(92,-18), // to 52,-10
  line_rel_xy(-104,0), // to -52,-10
  move_rel_xy(92,18), // to 40,8
  line_rel_xy(12,-18), // to 52,-10
  move_rel_xy(-92,18), // to -40,8
  line_rel_xy(80,0), // to 40,8
  move_rel_xy(-65,-2), // to -25,6
  line_rel_xy(12,0), // to -13,6
  move_rel_xy(-6,0), // to -19,6
  line_rel_xy(-2,-6), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,6), // to -6,6
  move_rel_xy(0,0), // to -6,6
  line_rel_xy(4,-6), // to -2,0
  move_rel_xy(-7,3), // to -9,3
  line_rel_xy(5,0), // to -4,3
  move_rel_xy(10,-3), // to 6,0
  line_rel_xy(0,6), // to 6,6
  move_rel_xy(9,0), // to 15,6
  line_rel_xy(1,-6), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(3,-7), // to 34,-7
  move_rel_xy(-3,7), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-4), // to 43,-4
  move_rel_xy(-3,0), // to 40,-4
  line_rel_xy(5,-3), // to 45,-7
  move_rel_xy(-2,3), // to 43,-4
  line_rel_xy(-10,0), // to 33,-4
  move_rel_xy(-4,-3), // to 29,-7
  line_rel_xy(-11,0), // to 18,-7
  move_rel_xy(0,0), // to 18,-7
  line_rel_xy(-2,7), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-4), // to 23,-4
  line_rel_xy(-6,0), // to 17,-4
  move_rel_xy(-5,4), // to 12,0
  line_rel_xy(1,-7), // to 13,-7
  move_rel_xy(0,0), // to 13,-7
  line_rel_xy(-11,7), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-7), // to 2,-7
  move_rel_xy(-4,7), // to -2,0
  line_rel_xy(0,-7), // to -2,-7
  move_rel_xy(0,0), // to -2,-7
  line_rel_xy(-10,7), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-7), // to -13,-7
  move_rel_xy(-3,7), // to -16,0
  line_rel_xy(-2,-7), // to -18,-7
  move_rel_xy(0,0), // to -18,-7
  line_rel_xy(-11,0), // to -29,-7
  move_rel_xy(0,0), // to -29,-7
  line_rel_xy(3,7), // to -26,0
  move_rel_xy(-4,-5), // to -30,-5
  line_rel_xy(-6,0), // to -36,-5
  move_rel_xy(3,0), // to -33,-5
  line_rel_xy(-1,-2), // to -34,-7
  move_rel_xy(0,0), // to -34,-7
  line_rel_xy(-11,0), // to -45,-7
  move_rel_xy(0,0), // to -45,-7
  line_rel_xy(4,7), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard44[] = {
  move_rel_xy(-62,-15), // to -62,-15
  line_rel_xy(17,26), // to -45,11
  move_rel_xy(107,-26), // to 62,-15
  line_rel_xy(-124,0), // to -62,-15
  move_rel_xy(107,26), // to 45,11
  line_rel_xy(17,-26), // to 62,-15
  move_rel_xy(-107,26), // to -45,11
  line_rel_xy(90,0), // to 45,11
  move_rel_xy(-97,-22), // to -52,-11
  line_rel_xy(12,20), // to -40,9
  move_rel_xy(92,-20), // to 52,-11
  line_rel_xy(-104,0), // to -52,-11
  move_rel_xy(92,20), // to 40,9
  line_rel_xy(12,-20), // to 52,-11
  move_rel_xy(-92,20), // to -40,9
  line_rel_xy(80,0), // to 40,9
  move_rel_xy(-65,-2), // to -25,7
  line_rel_xy(12,0), // to -13,7
  move_rel_xy(-6,0), // to -19,7
  line_rel_xy(-2,-7), // to -21,0
  move_rel_xy(10,0), // to -11,0
  line_rel_xy(5,7), // to -6,7
  move_rel_xy(0,0), // to -6,7
  line_rel_xy(4,-7), // to -2,0
  move_rel_xy(-7,4), // to -9,4
  line_rel_xy(5,0), // to -4,4
  move_rel_xy(10,-4), // to 6,0
  line_rel_xy(0,7), // to 6,7
  move_rel_xy(9,0), // to 15,7
  line_rel_xy(1,-7), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(5,0), // to 31,0
  line_rel_xy(3,-8), // to 34,-8
  move_rel_xy(-3,8), // to 31,0
  line_rel_xy(10,0), // to 41,0
  move_rel_xy(0,0), // to 41,0
  line_rel_xy(2,-4), // to 43,-4
  move_rel_xy(-3,0), // to 40,-4
  line_rel_xy(5,-4), // to 45,-8
  move_rel_xy(-2,4), // to 43,-4
  line_rel_xy(-10,0), // to 33,-4
  move_rel_xy(-4,-4), // to 29,-8
  line_rel_xy(-11,0), // to 18,-8
  move_rel_xy(0,0), // to 18,-8
  line_rel_xy(-2,8), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-3,-4), // to 23,-4
  line_rel_xy(-6,0), // to 17,-4
  move_rel_xy(-5,4), // to 12,0
  line_rel_xy(1,-8), // to 13,-8
  move_rel_xy(0,0), // to 13,-8
  line_rel_xy(-11,8), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-8), // to 2,-8
  move_rel_xy(-4,8), // to -2,0
  line_rel_xy(0,-8), // to -2,-8
  move_rel_xy(0,0), // to -2,-8
  line_rel_xy(-10,8), // to -12,0
  move_rel_xy(0,0), // to -12,0
  line_rel_xy(-1,-8), // to -13,-8
  move_rel_xy(-3,8), // to -16,0
  line_rel_xy(-2,-8), // to -18,-8
  move_rel_xy(0,0), // to -18,-8
  line_rel_xy(-11,0), // to -29,-8
  move_rel_xy(0,0), // to -29,-8
  line_rel_xy(3,8), // to -26,0
  move_rel_xy(-4,-5), // to -30,-5
  line_rel_xy(-6,0), // to -36,-5
  move_rel_xy(3,0), // to -33,-5
  line_rel_xy(-1,-3), // to -34,-8
  move_rel_xy(0,0), // to -34,-8
  line_rel_xy(-11,0), // to -45,-8
  move_rel_xy(0,0), // to -45,-8
  line_rel_xy(4,8), // to -41,0
  move_rel_xy(0,0), // to -41,0
  line_rel_xy(10,0), // to -31,0
  1
};


const int8 placard42[] = {
  move_rel_xy(-62,-16), // to -62,-16
  line_rel_xy(17,28), // to -45,12
  move_rel_xy(107,-28), // to 62,-16
  line_rel_xy(-124,0), // to -62,-16
  move_rel_xy(107,28), // to 45,12
  line_rel_xy(17,-28), // to 62,-16
  move_rel_xy(-107,28), // to -45,12
  line_rel_xy(90,0), // to 45,12
  move_rel_xy(-97,-24), // to -52,-12
  line_rel_xy(12,21), // to -40,9
  move_rel_xy(92,-21), // to 52,-12
  line_rel_xy(-104,0), // to -52,-12
  move_rel_xy(92,21), // to 40,9
  line_rel_xy(12,-21), // to 52,-12
  move_rel_xy(-92,21), // to -40,9
  line_rel_xy(80,0), // to 40,9
  move_rel_xy(-65,-2), // to -25,7
  line_rel_xy(12,0), // to -13,7
  move_rel_xy(-6,0), // to -19,7
  line_rel_xy(-2,-6), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,6), // to -6,7
  move_rel_xy(0,0), // to -6,7
  line_rel_xy(4,-6), // to -2,1
  move_rel_xy(-7,3), // to -9,4
  line_rel_xy(5,0), // to -4,4
  move_rel_xy(10,-3), // to 6,1
  line_rel_xy(0,6), // to 6,7
  move_rel_xy(9,0), // to 15,7
  line_rel_xy(1,-6), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(3,-8), // to 34,-9
  move_rel_xy(-3,8), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(2,-4), // to 43,-5
  move_rel_xy(-3,0), // to 40,-5
  line_rel_xy(5,-4), // to 45,-9
  move_rel_xy(-2,4), // to 43,-5
  line_rel_xy(-10,0), // to 33,-5
  move_rel_xy(-4,-4), // to 29,-9
  line_rel_xy(-11,0), // to 18,-9
  move_rel_xy(0,0), // to 18,-9
  line_rel_xy(-2,8), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-3,-4), // to 23,-5
  line_rel_xy(-6,0), // to 17,-5
  move_rel_xy(-5,4), // to 12,-1
  line_rel_xy(1,-8), // to 13,-9
  move_rel_xy(0,0), // to 13,-9
  line_rel_xy(-11,8), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-8), // to 2,-9
  move_rel_xy(-4,8), // to -2,-1
  line_rel_xy(0,-8), // to -2,-9
  move_rel_xy(0,0), // to -2,-9
  line_rel_xy(-10,8), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(-1,-8), // to -13,-9
  move_rel_xy(-3,8), // to -16,-1
  line_rel_xy(-2,-8), // to -18,-9
  move_rel_xy(0,0), // to -18,-9
  line_rel_xy(-11,0), // to -29,-9
  move_rel_xy(0,0), // to -29,-9
  line_rel_xy(3,8), // to -26,-1
  move_rel_xy(-4,-5), // to -30,-6
  line_rel_xy(-6,0), // to -36,-6
  move_rel_xy(3,0), // to -33,-6
  line_rel_xy(-1,-3), // to -34,-9
  move_rel_xy(0,0), // to -34,-9
  line_rel_xy(-11,0), // to -45,-9
  move_rel_xy(0,0), // to -45,-9
  line_rel_xy(4,8), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard40[] = {
  move_rel_xy(-61,-18), // to -61,-18
  line_rel_xy(16,31), // to -45,13
  move_rel_xy(106,-31), // to 61,-18
  line_rel_xy(-122,0), // to -61,-18
  move_rel_xy(106,31), // to 45,13
  line_rel_xy(16,-31), // to 61,-18
  move_rel_xy(-106,31), // to -45,13
  line_rel_xy(90,0), // to 45,13
  move_rel_xy(-97,-26), // to -52,-13
  line_rel_xy(11,23), // to -41,10
  move_rel_xy(93,-23), // to 52,-13
  line_rel_xy(-104,0), // to -52,-13
  move_rel_xy(93,23), // to 41,10
  line_rel_xy(11,-23), // to 52,-13
  move_rel_xy(-93,23), // to -41,10
  line_rel_xy(82,0), // to 41,10
  move_rel_xy(-66,-2), // to -25,8
  line_rel_xy(12,0), // to -13,8
  move_rel_xy(-6,0), // to -19,8
  line_rel_xy(-2,-7), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,7), // to -6,8
  move_rel_xy(0,0), // to -6,8
  line_rel_xy(4,-7), // to -2,1
  move_rel_xy(-7,3), // to -9,4
  line_rel_xy(5,0), // to -4,4
  move_rel_xy(10,-3), // to 6,1
  line_rel_xy(0,7), // to 6,8
  move_rel_xy(9,0), // to 15,8
  line_rel_xy(1,-7), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(3,-9), // to 34,-10
  move_rel_xy(-3,9), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(2,-4), // to 43,-5
  move_rel_xy(-3,0), // to 40,-5
  line_rel_xy(5,-5), // to 45,-10
  move_rel_xy(-2,5), // to 43,-5
  line_rel_xy(-10,0), // to 33,-5
  move_rel_xy(-4,-5), // to 29,-10
  line_rel_xy(-11,0), // to 18,-10
  move_rel_xy(0,0), // to 18,-10
  line_rel_xy(-2,9), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-4), // to 22,-5
  line_rel_xy(-5,0), // to 17,-5
  move_rel_xy(-5,4), // to 12,-1
  line_rel_xy(1,-9), // to 13,-10
  move_rel_xy(0,0), // to 13,-10
  line_rel_xy(-11,9), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-9), // to 2,-10
  move_rel_xy(-4,9), // to -2,-1
  line_rel_xy(0,-9), // to -2,-10
  move_rel_xy(0,0), // to -2,-10
  line_rel_xy(-10,9), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(-1,-9), // to -13,-10
  move_rel_xy(-3,9), // to -16,-1
  line_rel_xy(-2,-9), // to -18,-10
  move_rel_xy(0,0), // to -18,-10
  line_rel_xy(-11,0), // to -29,-10
  move_rel_xy(0,0), // to -29,-10
  line_rel_xy(3,9), // to -26,-1
  move_rel_xy(-4,-5), // to -30,-6
  line_rel_xy(-6,0), // to -36,-6
  move_rel_xy(3,0), // to -33,-6
  line_rel_xy(-1,-4), // to -34,-10
  move_rel_xy(0,0), // to -34,-10
  line_rel_xy(-11,0), // to -45,-10
  move_rel_xy(0,0), // to -45,-10
  line_rel_xy(4,9), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard38[] = {
  move_rel_xy(-61,-19), // to -61,-19
  line_rel_xy(16,33), // to -45,14
  move_rel_xy(106,-33), // to 61,-19
  line_rel_xy(-122,0), // to -61,-19
  move_rel_xy(106,33), // to 45,14
  line_rel_xy(16,-33), // to 61,-19
  move_rel_xy(-106,33), // to -45,14
  line_rel_xy(90,0), // to 45,14
  move_rel_xy(-96,-28), // to -51,-14
  line_rel_xy(10,25), // to -41,11
  move_rel_xy(92,-25), // to 51,-14
  line_rel_xy(-102,0), // to -51,-14
  move_rel_xy(92,25), // to 41,11
  line_rel_xy(10,-25), // to 51,-14
  move_rel_xy(-92,25), // to -41,11
  line_rel_xy(82,0), // to 41,11
  move_rel_xy(-66,-2), // to -25,9
  line_rel_xy(12,0), // to -13,9
  move_rel_xy(-6,0), // to -19,9
  line_rel_xy(-2,-8), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,8), // to -6,9
  move_rel_xy(0,0), // to -6,9
  line_rel_xy(4,-8), // to -2,1
  move_rel_xy(-7,4), // to -9,5
  line_rel_xy(5,0), // to -4,5
  move_rel_xy(10,-4), // to 6,1
  line_rel_xy(0,8), // to 6,9
  move_rel_xy(9,0), // to 15,9
  line_rel_xy(1,-8), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(3,-9), // to 34,-10
  move_rel_xy(-3,9), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(2,-5), // to 43,-6
  move_rel_xy(-3,0), // to 40,-6
  line_rel_xy(5,-4), // to 45,-10
  move_rel_xy(-2,4), // to 43,-6
  line_rel_xy(-10,0), // to 33,-6
  move_rel_xy(-4,-4), // to 29,-10
  line_rel_xy(-11,0), // to 18,-10
  move_rel_xy(0,0), // to 18,-10
  line_rel_xy(-2,9), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-5), // to 22,-6
  line_rel_xy(-5,0), // to 17,-6
  move_rel_xy(-5,5), // to 12,-1
  line_rel_xy(1,-9), // to 13,-10
  move_rel_xy(0,0), // to 13,-10
  line_rel_xy(-11,9), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-9), // to 2,-10
  move_rel_xy(-4,9), // to -2,-1
  line_rel_xy(0,-9), // to -2,-10
  move_rel_xy(0,0), // to -2,-10
  line_rel_xy(-10,9), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(-1,-9), // to -13,-10
  move_rel_xy(-3,9), // to -16,-1
  line_rel_xy(-2,-9), // to -18,-10
  move_rel_xy(0,0), // to -18,-10
  line_rel_xy(-11,0), // to -29,-10
  move_rel_xy(0,0), // to -29,-10
  line_rel_xy(3,9), // to -26,-1
  move_rel_xy(-4,-5), // to -30,-6
  line_rel_xy(-5,0), // to -35,-6
  move_rel_xy(2,0), // to -33,-6
  line_rel_xy(-1,-4), // to -34,-10
  move_rel_xy(0,0), // to -34,-10
  line_rel_xy(-11,0), // to -45,-10
  move_rel_xy(0,0), // to -45,-10
  line_rel_xy(4,9), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard36[] = {
  move_rel_xy(-60,-20), // to -60,-20
  line_rel_xy(15,35), // to -45,15
  move_rel_xy(105,-35), // to 60,-20
  line_rel_xy(-120,0), // to -60,-20
  move_rel_xy(105,35), // to 45,15
  line_rel_xy(15,-35), // to 60,-20
  move_rel_xy(-105,35), // to -45,15
  line_rel_xy(90,0), // to 45,15
  move_rel_xy(-96,-30), // to -51,-15
  line_rel_xy(10,27), // to -41,12
  move_rel_xy(92,-27), // to 51,-15
  line_rel_xy(-102,0), // to -51,-15
  move_rel_xy(92,27), // to 41,12
  line_rel_xy(10,-27), // to 51,-15
  move_rel_xy(-92,27), // to -41,12
  line_rel_xy(82,0), // to 41,12
  move_rel_xy(-67,-3), // to -26,9
  line_rel_xy(13,0), // to -13,9
  move_rel_xy(-6,0), // to -19,9
  line_rel_xy(-2,-8), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,8), // to -6,9
  move_rel_xy(0,0), // to -6,9
  line_rel_xy(4,-8), // to -2,1
  move_rel_xy(-7,4), // to -9,5
  line_rel_xy(5,0), // to -4,5
  move_rel_xy(10,-4), // to 6,1
  line_rel_xy(0,8), // to 6,9
  move_rel_xy(9,0), // to 15,9
  line_rel_xy(1,-8), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(3,-10), // to 34,-11
  move_rel_xy(-3,10), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(2,-5), // to 43,-6
  move_rel_xy(-3,0), // to 40,-6
  line_rel_xy(4,-5), // to 44,-11
  move_rel_xy(-1,5), // to 43,-6
  line_rel_xy(-10,0), // to 33,-6
  move_rel_xy(-4,-5), // to 29,-11
  line_rel_xy(-11,0), // to 18,-11
  move_rel_xy(0,0), // to 18,-11
  line_rel_xy(-2,10), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-5), // to 22,-6
  line_rel_xy(-5,0), // to 17,-6
  move_rel_xy(-5,5), // to 12,-1
  line_rel_xy(1,-10), // to 13,-11
  move_rel_xy(0,0), // to 13,-11
  line_rel_xy(-11,10), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-10), // to 2,-11
  move_rel_xy(-4,10), // to -2,-1
  line_rel_xy(0,-10), // to -2,-11
  move_rel_xy(0,0), // to -2,-11
  line_rel_xy(-10,10), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(-1,-10), // to -13,-11
  move_rel_xy(-3,10), // to -16,-1
  line_rel_xy(-2,-10), // to -18,-11
  move_rel_xy(0,0), // to -18,-11
  line_rel_xy(-11,0), // to -29,-11
  move_rel_xy(0,0), // to -29,-11
  line_rel_xy(3,10), // to -26,-1
  move_rel_xy(-4,-6), // to -30,-7
  line_rel_xy(-5,0), // to -35,-7
  move_rel_xy(2,0), // to -33,-7
  line_rel_xy(-1,-4), // to -34,-11
  move_rel_xy(0,0), // to -34,-11
  line_rel_xy(-10,0), // to -44,-11
  move_rel_xy(0,0), // to -44,-11
  line_rel_xy(3,10), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard34[] = {
  move_rel_xy(-60,-21), // to -60,-21
  line_rel_xy(14,37), // to -46,16
  move_rel_xy(106,-37), // to 60,-21
  line_rel_xy(-120,0), // to -60,-21
  move_rel_xy(106,37), // to 46,16
  line_rel_xy(14,-37), // to 60,-21
  move_rel_xy(-106,37), // to -46,16
  line_rel_xy(92,0), // to 46,16
  move_rel_xy(-97,-32), // to -51,-16
  line_rel_xy(10,29), // to -41,13
  move_rel_xy(92,-29), // to 51,-16
  line_rel_xy(-102,0), // to -51,-16
  move_rel_xy(92,29), // to 41,13
  line_rel_xy(10,-29), // to 51,-16
  move_rel_xy(-92,29), // to -41,13
  line_rel_xy(82,0), // to 41,13
  move_rel_xy(-67,-3), // to -26,10
  line_rel_xy(13,0), // to -13,10
  move_rel_xy(-6,0), // to -19,10
  line_rel_xy(-2,-9), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,9), // to -6,10
  move_rel_xy(0,0), // to -6,10
  line_rel_xy(4,-9), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(10,-5), // to 6,1
  line_rel_xy(0,9), // to 6,10
  move_rel_xy(9,0), // to 15,10
  line_rel_xy(1,-9), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(3,-11), // to 34,-12
  move_rel_xy(-3,11), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(2,-5), // to 43,-6
  move_rel_xy(-3,0), // to 40,-6
  line_rel_xy(4,-6), // to 44,-12
  move_rel_xy(-1,6), // to 43,-6
  line_rel_xy(-10,0), // to 33,-6
  move_rel_xy(-5,-6), // to 28,-12
  line_rel_xy(-10,0), // to 18,-12
  move_rel_xy(0,0), // to 18,-12
  line_rel_xy(-2,11), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-5), // to 22,-6
  line_rel_xy(-5,0), // to 17,-6
  move_rel_xy(-5,5), // to 12,-1
  line_rel_xy(1,-11), // to 13,-12
  move_rel_xy(0,0), // to 13,-12
  line_rel_xy(-11,11), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-11), // to 2,-12
  move_rel_xy(-4,11), // to -2,-1
  line_rel_xy(0,-11), // to -2,-12
  move_rel_xy(0,0), // to -2,-12
  line_rel_xy(-10,11), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(-1,-11), // to -13,-12
  move_rel_xy(-3,11), // to -16,-1
  line_rel_xy(-2,-11), // to -18,-12
  move_rel_xy(0,0), // to -18,-12
  line_rel_xy(-10,0), // to -28,-12
  move_rel_xy(0,0), // to -28,-12
  line_rel_xy(2,11), // to -26,-1
  move_rel_xy(-4,-6), // to -30,-7
  line_rel_xy(-5,0), // to -35,-7
  move_rel_xy(2,0), // to -33,-7
  line_rel_xy(-1,-5), // to -34,-12
  move_rel_xy(0,0), // to -34,-12
  line_rel_xy(-10,0), // to -44,-12
  move_rel_xy(0,0), // to -44,-12
  line_rel_xy(3,11), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard32[] = {
  move_rel_xy(-59,-22), // to -59,-22
  line_rel_xy(13,39), // to -46,17
  move_rel_xy(105,-39), // to 59,-22
  line_rel_xy(-118,0), // to -59,-22
  move_rel_xy(105,39), // to 46,17
  line_rel_xy(13,-39), // to 59,-22
  move_rel_xy(-105,39), // to -46,17
  line_rel_xy(92,0), // to 46,17
  move_rel_xy(-96,-33), // to -50,-16
  line_rel_xy(9,29), // to -41,13
  move_rel_xy(91,-29), // to 50,-16
  line_rel_xy(-100,0), // to -50,-16
  move_rel_xy(91,29), // to 41,13
  line_rel_xy(9,-29), // to 50,-16
  move_rel_xy(-91,29), // to -41,13
  line_rel_xy(82,0), // to 41,13
  move_rel_xy(-67,-3), // to -26,10
  line_rel_xy(12,0), // to -14,10
  move_rel_xy(-5,0), // to -19,10
  line_rel_xy(-2,-9), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,9), // to -6,10
  move_rel_xy(0,0), // to -6,10
  line_rel_xy(4,-9), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(10,-5), // to 6,1
  line_rel_xy(0,9), // to 6,10
  move_rel_xy(9,0), // to 15,10
  line_rel_xy(1,-9), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(2,-11), // to 33,-12
  move_rel_xy(-2,11), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(2,-5), // to 43,-6
  move_rel_xy(-3,0), // to 40,-6
  line_rel_xy(4,-6), // to 44,-12
  move_rel_xy(-1,6), // to 43,-6
  line_rel_xy(-11,0), // to 32,-6
  move_rel_xy(-4,-6), // to 28,-12
  line_rel_xy(-10,0), // to 18,-12
  move_rel_xy(0,0), // to 18,-12
  line_rel_xy(-2,11), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-5), // to 22,-6
  line_rel_xy(-5,0), // to 17,-6
  move_rel_xy(-5,5), // to 12,-1
  line_rel_xy(1,-11), // to 13,-12
  move_rel_xy(0,0), // to 13,-12
  line_rel_xy(-11,11), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-11), // to 2,-12
  move_rel_xy(-4,11), // to -2,-1
  line_rel_xy(0,-11), // to -2,-12
  move_rel_xy(0,0), // to -2,-12
  line_rel_xy(-10,11), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(-1,-11), // to -13,-12
  move_rel_xy(-3,11), // to -16,-1
  line_rel_xy(-2,-11), // to -18,-12
  move_rel_xy(0,0), // to -18,-12
  line_rel_xy(-10,0), // to -28,-12
  move_rel_xy(0,0), // to -28,-12
  line_rel_xy(2,11), // to -26,-1
  move_rel_xy(-4,-7), // to -30,-8
  line_rel_xy(-5,0), // to -35,-8
  move_rel_xy(2,0), // to -33,-8
  line_rel_xy(0,-4), // to -33,-12
  move_rel_xy(0,0), // to -33,-12
  line_rel_xy(-11,0), // to -44,-12
  move_rel_xy(0,0), // to -44,-12
  line_rel_xy(3,11), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard30[] = {
  move_rel_xy(-59,-23), // to -59,-23
  line_rel_xy(13,41), // to -46,18
  move_rel_xy(105,-41), // to 59,-23
  line_rel_xy(-118,0), // to -59,-23
  move_rel_xy(105,41), // to 46,18
  line_rel_xy(13,-41), // to 59,-23
  move_rel_xy(-105,41), // to -46,18
  line_rel_xy(92,0), // to 46,18
  move_rel_xy(-96,-35), // to -50,-17
  line_rel_xy(9,31), // to -41,14
  move_rel_xy(91,-31), // to 50,-17
  line_rel_xy(-100,0), // to -50,-17
  move_rel_xy(91,31), // to 41,14
  line_rel_xy(9,-31), // to 50,-17
  move_rel_xy(-91,31), // to -41,14
  line_rel_xy(82,0), // to 41,14
  move_rel_xy(-67,-3), // to -26,11
  line_rel_xy(12,0), // to -14,11
  move_rel_xy(-6,0), // to -20,11
  line_rel_xy(-1,-10), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,10), // to -6,11
  move_rel_xy(0,0), // to -6,11
  line_rel_xy(4,-10), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(10,-5), // to 6,1
  line_rel_xy(0,10), // to 6,11
  move_rel_xy(9,0), // to 15,11
  line_rel_xy(1,-10), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(2,-12), // to 33,-13
  move_rel_xy(-2,12), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(1,-6), // to 42,-7
  move_rel_xy(-2,0), // to 40,-7
  line_rel_xy(4,-6), // to 44,-13
  move_rel_xy(-2,6), // to 42,-7
  line_rel_xy(-10,0), // to 32,-7
  move_rel_xy(-4,-6), // to 28,-13
  line_rel_xy(-10,0), // to 18,-13
  move_rel_xy(0,0), // to 18,-13
  line_rel_xy(-2,12), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-6), // to 22,-7
  line_rel_xy(-5,0), // to 17,-7
  move_rel_xy(-5,6), // to 12,-1
  line_rel_xy(1,-12), // to 13,-13
  move_rel_xy(0,0), // to 13,-13
  line_rel_xy(-11,12), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-12), // to 2,-13
  move_rel_xy(-4,12), // to -2,-1
  line_rel_xy(0,-12), // to -2,-13
  move_rel_xy(0,0), // to -2,-13
  line_rel_xy(-10,12), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(-1,-12), // to -13,-13
  move_rel_xy(-3,12), // to -16,-1
  line_rel_xy(-2,-12), // to -18,-13
  move_rel_xy(0,0), // to -18,-13
  line_rel_xy(-10,0), // to -28,-13
  move_rel_xy(0,0), // to -28,-13
  line_rel_xy(2,12), // to -26,-1
  move_rel_xy(-4,-7), // to -30,-8
  line_rel_xy(-5,0), // to -35,-8
  move_rel_xy(2,0), // to -33,-8
  line_rel_xy(0,-5), // to -33,-13
  move_rel_xy(0,0), // to -33,-13
  line_rel_xy(-11,0), // to -44,-13
  move_rel_xy(0,0), // to -44,-13
  line_rel_xy(3,12), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard28[] = {
  move_rel_xy(-59,-24), // to -59,-24
  line_rel_xy(13,43), // to -46,19
  move_rel_xy(105,-43), // to 59,-24
  line_rel_xy(-118,0), // to -59,-24
  move_rel_xy(105,43), // to 46,19
  line_rel_xy(13,-43), // to 59,-24
  move_rel_xy(-105,43), // to -46,19
  line_rel_xy(92,0), // to 46,19
  move_rel_xy(-96,-37), // to -50,-18
  line_rel_xy(8,33), // to -42,15
  move_rel_xy(92,-33), // to 50,-18
  line_rel_xy(-100,0), // to -50,-18
  move_rel_xy(92,33), // to 42,15
  line_rel_xy(8,-33), // to 50,-18
  move_rel_xy(-92,33), // to -42,15
  line_rel_xy(84,0), // to 42,15
  move_rel_xy(-68,-3), // to -26,12
  line_rel_xy(12,0), // to -14,12
  move_rel_xy(-6,0), // to -20,12
  line_rel_xy(-1,-11), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,11), // to -6,12
  move_rel_xy(0,0), // to -6,12
  line_rel_xy(4,-11), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(10,-5), // to 6,1
  line_rel_xy(0,11), // to 6,12
  move_rel_xy(9,0), // to 15,12
  line_rel_xy(1,-11), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(2,-12), // to 33,-13
  move_rel_xy(-2,12), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(1,-6), // to 42,-7
  move_rel_xy(-2,0), // to 40,-7
  line_rel_xy(4,-6), // to 44,-13
  move_rel_xy(-2,6), // to 42,-7
  line_rel_xy(-10,0), // to 32,-7
  move_rel_xy(-4,-6), // to 28,-13
  line_rel_xy(-10,0), // to 18,-13
  move_rel_xy(0,0), // to 18,-13
  line_rel_xy(-2,12), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-6), // to 22,-7
  line_rel_xy(-5,0), // to 17,-7
  move_rel_xy(-5,6), // to 12,-1
  line_rel_xy(0,-12), // to 12,-13
  move_rel_xy(0,0), // to 12,-13
  line_rel_xy(-10,12), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-12), // to 2,-13
  move_rel_xy(-4,12), // to -2,-1
  line_rel_xy(0,-12), // to -2,-13
  move_rel_xy(0,0), // to -2,-13
  line_rel_xy(-10,12), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(0,-12), // to -12,-13
  move_rel_xy(-4,12), // to -16,-1
  line_rel_xy(-2,-12), // to -18,-13
  move_rel_xy(0,0), // to -18,-13
  line_rel_xy(-10,0), // to -28,-13
  move_rel_xy(0,0), // to -28,-13
  line_rel_xy(2,12), // to -26,-1
  move_rel_xy(-4,-8), // to -30,-9
  line_rel_xy(-5,0), // to -35,-9
  move_rel_xy(2,0), // to -33,-9
  line_rel_xy(0,-4), // to -33,-13
  move_rel_xy(0,0), // to -33,-13
  line_rel_xy(-11,0), // to -44,-13
  move_rel_xy(0,0), // to -44,-13
  line_rel_xy(3,12), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard26[] = {
  move_rel_xy(-58,-25), // to -58,-25
  line_rel_xy(11,45), // to -47,20
  move_rel_xy(105,-45), // to 58,-25
  line_rel_xy(-116,0), // to -58,-25
  move_rel_xy(105,45), // to 47,20
  line_rel_xy(11,-45), // to 58,-25
  move_rel_xy(-105,45), // to -47,20
  line_rel_xy(94,0), // to 47,20
  move_rel_xy(-96,-39), // to -49,-19
  line_rel_xy(7,35), // to -42,16
  move_rel_xy(91,-35), // to 49,-19
  line_rel_xy(-98,0), // to -49,-19
  move_rel_xy(91,35), // to 42,16
  line_rel_xy(7,-35), // to 49,-19
  move_rel_xy(-91,35), // to -42,16
  line_rel_xy(84,0), // to 42,16
  move_rel_xy(-68,-4), // to -26,12
  line_rel_xy(12,0), // to -14,12
  move_rel_xy(-6,0), // to -20,12
  line_rel_xy(-1,-11), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,11), // to -6,12
  move_rel_xy(0,0), // to -6,12
  line_rel_xy(4,-11), // to -2,1
  move_rel_xy(-7,6), // to -9,7
  line_rel_xy(5,0), // to -4,7
  move_rel_xy(10,-6), // to 6,1
  line_rel_xy(0,11), // to 6,12
  move_rel_xy(9,0), // to 15,12
  line_rel_xy(1,-11), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(2,-13), // to 33,-14
  move_rel_xy(-2,13), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(1,-6), // to 42,-7
  move_rel_xy(-3,0), // to 39,-7
  line_rel_xy(4,-7), // to 43,-14
  move_rel_xy(-1,7), // to 42,-7
  line_rel_xy(-10,0), // to 32,-7
  move_rel_xy(-4,-7), // to 28,-14
  line_rel_xy(-11,0), // to 17,-14
  move_rel_xy(0,0), // to 17,-14
  line_rel_xy(-1,13), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-6), // to 22,-7
  line_rel_xy(-5,0), // to 17,-7
  move_rel_xy(-5,6), // to 12,-1
  line_rel_xy(0,-13), // to 12,-14
  move_rel_xy(0,0), // to 12,-14
  line_rel_xy(-10,13), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-13), // to 2,-14
  move_rel_xy(-4,13), // to -2,-1
  line_rel_xy(0,-13), // to -2,-14
  move_rel_xy(0,0), // to -2,-14
  line_rel_xy(-10,13), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(0,-13), // to -12,-14
  move_rel_xy(-4,13), // to -16,-1
  line_rel_xy(-1,-13), // to -17,-14
  move_rel_xy(0,0), // to -17,-14
  line_rel_xy(-11,0), // to -28,-14
  move_rel_xy(0,0), // to -28,-14
  line_rel_xy(2,13), // to -26,-1
  move_rel_xy(-4,-8), // to -30,-9
  line_rel_xy(-5,0), // to -35,-9
  move_rel_xy(3,0), // to -32,-9
  line_rel_xy(-1,-5), // to -33,-14
  move_rel_xy(0,0), // to -33,-14
  line_rel_xy(-10,0), // to -43,-14
  move_rel_xy(0,0), // to -43,-14
  line_rel_xy(2,13), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard24[] = {
  move_rel_xy(-58,-26), // to -58,-26
  line_rel_xy(11,47), // to -47,21
  move_rel_xy(105,-47), // to 58,-26
  line_rel_xy(-116,0), // to -58,-26
  move_rel_xy(105,47), // to 47,21
  line_rel_xy(11,-47), // to 58,-26
  move_rel_xy(-105,47), // to -47,21
  line_rel_xy(94,0), // to 47,21
  move_rel_xy(-96,-40), // to -49,-19
  line_rel_xy(7,35), // to -42,16
  move_rel_xy(91,-35), // to 49,-19
  line_rel_xy(-98,0), // to -49,-19
  move_rel_xy(91,35), // to 42,16
  line_rel_xy(7,-35), // to 49,-19
  move_rel_xy(-91,35), // to -42,16
  line_rel_xy(84,0), // to 42,16
  move_rel_xy(-68,-3), // to -26,13
  line_rel_xy(12,0), // to -14,13
  move_rel_xy(-6,0), // to -20,13
  line_rel_xy(-1,-12), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,12), // to -6,13
  move_rel_xy(0,0), // to -6,13
  line_rel_xy(4,-12), // to -2,1
  move_rel_xy(-7,6), // to -9,7
  line_rel_xy(5,0), // to -4,7
  move_rel_xy(10,-6), // to 6,1
  line_rel_xy(0,12), // to 6,13
  move_rel_xy(9,0), // to 15,13
  line_rel_xy(1,-12), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(2,-13), // to 33,-14
  move_rel_xy(-2,13), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(1,-7), // to 42,-8
  move_rel_xy(-3,0), // to 39,-8
  line_rel_xy(4,-6), // to 43,-14
  move_rel_xy(-1,6), // to 42,-8
  line_rel_xy(-10,0), // to 32,-8
  move_rel_xy(-4,-6), // to 28,-14
  line_rel_xy(-11,0), // to 17,-14
  move_rel_xy(0,0), // to 17,-14
  line_rel_xy(-1,13), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-7), // to 22,-8
  line_rel_xy(-5,0), // to 17,-8
  move_rel_xy(-5,7), // to 12,-1
  line_rel_xy(0,-13), // to 12,-14
  move_rel_xy(0,0), // to 12,-14
  line_rel_xy(-10,13), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-13), // to 2,-14
  move_rel_xy(-4,13), // to -2,-1
  line_rel_xy(0,-13), // to -2,-14
  move_rel_xy(0,0), // to -2,-14
  line_rel_xy(-10,13), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(0,-13), // to -12,-14
  move_rel_xy(-4,13), // to -16,-1
  line_rel_xy(-1,-13), // to -17,-14
  move_rel_xy(0,0), // to -17,-14
  line_rel_xy(-11,0), // to -28,-14
  move_rel_xy(0,0), // to -28,-14
  line_rel_xy(2,13), // to -26,-1
  move_rel_xy(-4,-8), // to -30,-9
  line_rel_xy(-5,0), // to -35,-9
  move_rel_xy(3,0), // to -32,-9
  line_rel_xy(-1,-5), // to -33,-14
  move_rel_xy(0,0), // to -33,-14
  line_rel_xy(-10,0), // to -43,-14
  move_rel_xy(0,0), // to -43,-14
  line_rel_xy(2,13), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard22[] = {
  move_rel_xy(-57,-26), // to -57,-26
  line_rel_xy(10,48), // to -47,22
  move_rel_xy(104,-48), // to 57,-26
  line_rel_xy(-114,0), // to -57,-26
  move_rel_xy(104,48), // to 47,22
  line_rel_xy(10,-48), // to 57,-26
  move_rel_xy(-104,48), // to -47,22
  line_rel_xy(94,0), // to 47,22
  move_rel_xy(-96,-41), // to -49,-19
  line_rel_xy(7,36), // to -42,17
  move_rel_xy(91,-36), // to 49,-19
  line_rel_xy(-98,0), // to -49,-19
  move_rel_xy(91,36), // to 42,17
  line_rel_xy(7,-36), // to 49,-19
  move_rel_xy(-91,36), // to -42,17
  line_rel_xy(84,0), // to 42,17
  move_rel_xy(-68,-4), // to -26,13
  line_rel_xy(12,0), // to -14,13
  move_rel_xy(-6,0), // to -20,13
  line_rel_xy(-1,-12), // to -21,1
  move_rel_xy(10,0), // to -11,1
  line_rel_xy(5,12), // to -6,13
  move_rel_xy(0,0), // to -6,13
  line_rel_xy(4,-12), // to -2,1
  move_rel_xy(-7,6), // to -9,7
  line_rel_xy(5,0), // to -4,7
  move_rel_xy(10,-6), // to 6,1
  line_rel_xy(0,12), // to 6,13
  move_rel_xy(10,0), // to 16,13
  line_rel_xy(0,-12), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(2,-14), // to 33,-15
  move_rel_xy(-2,14), // to 31,-1
  line_rel_xy(10,0), // to 41,-1
  move_rel_xy(0,0), // to 41,-1
  line_rel_xy(1,-7), // to 42,-8
  move_rel_xy(-3,0), // to 39,-8
  line_rel_xy(4,-7), // to 43,-15
  move_rel_xy(-1,7), // to 42,-8
  line_rel_xy(-10,0), // to 32,-8
  move_rel_xy(-4,-7), // to 28,-15
  line_rel_xy(-11,0), // to 17,-15
  move_rel_xy(0,0), // to 17,-15
  line_rel_xy(-1,14), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-4,-7), // to 22,-8
  line_rel_xy(-5,0), // to 17,-8
  move_rel_xy(-5,7), // to 12,-1
  line_rel_xy(0,-14), // to 12,-15
  move_rel_xy(0,0), // to 12,-15
  line_rel_xy(-10,14), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-14), // to 2,-15
  move_rel_xy(-4,14), // to -2,-1
  line_rel_xy(0,-14), // to -2,-15
  move_rel_xy(0,0), // to -2,-15
  line_rel_xy(-10,14), // to -12,-1
  move_rel_xy(0,0), // to -12,-1
  line_rel_xy(0,-14), // to -12,-15
  move_rel_xy(-4,14), // to -16,-1
  line_rel_xy(-1,-14), // to -17,-15
  move_rel_xy(0,0), // to -17,-15
  line_rel_xy(-11,0), // to -28,-15
  move_rel_xy(0,0), // to -28,-15
  line_rel_xy(2,14), // to -26,-1
  move_rel_xy(-3,-8), // to -29,-9
  line_rel_xy(-6,0), // to -35,-9
  move_rel_xy(3,0), // to -32,-9
  line_rel_xy(-1,-6), // to -33,-15
  move_rel_xy(0,0), // to -33,-15
  line_rel_xy(-10,0), // to -43,-15
  move_rel_xy(0,0), // to -43,-15
  line_rel_xy(2,14), // to -41,-1
  move_rel_xy(0,0), // to -41,-1
  line_rel_xy(10,0), // to -31,-1
  1
};


const int8 placard20[] = {
  move_rel_xy(-57,-27), // to -57,-27
  line_rel_xy(9,49), // to -48,22
  move_rel_xy(105,-49), // to 57,-27
  line_rel_xy(-114,0), // to -57,-27
  move_rel_xy(105,49), // to 48,22
  line_rel_xy(9,-49), // to 57,-27
  move_rel_xy(-105,49), // to -48,22
  line_rel_xy(96,0), // to 48,22
  move_rel_xy(-97,-42), // to -49,-20
  line_rel_xy(6,37), // to -43,17
  move_rel_xy(92,-37), // to 49,-20
  line_rel_xy(-98,0), // to -49,-20
  move_rel_xy(92,37), // to 43,17
  line_rel_xy(6,-37), // to 49,-20
  move_rel_xy(-92,37), // to -43,17
  line_rel_xy(86,0), // to 43,17
  move_rel_xy(-69,-4), // to -26,13
  line_rel_xy(12,0), // to -14,13
  move_rel_xy(-6,0), // to -20,13
  line_rel_xy(-1,-11), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,11), // to -6,13
  move_rel_xy(0,0), // to -6,13
  line_rel_xy(4,-11), // to -2,2
  move_rel_xy(-7,6), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(10,-6), // to 6,2
  line_rel_xy(0,11), // to 6,13
  move_rel_xy(10,0), // to 16,13
  line_rel_xy(0,-11), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(2,-13), // to 33,-15
  move_rel_xy(-2,13), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(1,-6), // to 42,-8
  move_rel_xy(-3,0), // to 39,-8
  line_rel_xy(4,-7), // to 43,-15
  move_rel_xy(-1,7), // to 42,-8
  line_rel_xy(-10,0), // to 32,-8
  move_rel_xy(-5,-7), // to 27,-15
  line_rel_xy(-10,0), // to 17,-15
  move_rel_xy(0,0), // to 17,-15
  line_rel_xy(-1,13), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-4,-6), // to 22,-8
  line_rel_xy(-5,0), // to 17,-8
  move_rel_xy(-5,6), // to 12,-2
  line_rel_xy(0,-13), // to 12,-15
  move_rel_xy(0,0), // to 12,-15
  line_rel_xy(-10,13), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-13), // to 2,-15
  move_rel_xy(-4,13), // to -2,-2
  line_rel_xy(0,-13), // to -2,-15
  move_rel_xy(0,0), // to -2,-15
  line_rel_xy(-10,13), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-13), // to -12,-15
  move_rel_xy(-4,13), // to -16,-2
  line_rel_xy(-1,-13), // to -17,-15
  move_rel_xy(0,0), // to -17,-15
  line_rel_xy(-10,0), // to -27,-15
  move_rel_xy(0,0), // to -27,-15
  line_rel_xy(1,13), // to -26,-2
  move_rel_xy(-3,-8), // to -29,-10
  line_rel_xy(-5,0), // to -34,-10
  move_rel_xy(2,0), // to -32,-10
  line_rel_xy(-1,-5), // to -33,-15
  move_rel_xy(0,0), // to -33,-15
  line_rel_xy(-10,0), // to -43,-15
  move_rel_xy(0,0), // to -43,-15
  line_rel_xy(2,13), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard18[] = {
  move_rel_xy(-56,-27), // to -56,-27
  line_rel_xy(8,50), // to -48,23
  move_rel_xy(104,-50), // to 56,-27
  line_rel_xy(-112,0), // to -56,-27
  move_rel_xy(104,50), // to 48,23
  line_rel_xy(8,-50), // to 56,-27
  move_rel_xy(-104,50), // to -48,23
  line_rel_xy(96,0), // to 48,23
  move_rel_xy(-96,-43), // to -48,-20
  line_rel_xy(5,38), // to -43,18
  move_rel_xy(91,-38), // to 48,-20
  line_rel_xy(-96,0), // to -48,-20
  move_rel_xy(91,38), // to 43,18
  line_rel_xy(5,-38), // to 48,-20
  move_rel_xy(-91,38), // to -43,18
  line_rel_xy(86,0), // to 43,18
  move_rel_xy(-69,-4), // to -26,14
  line_rel_xy(12,0), // to -14,14
  move_rel_xy(-6,0), // to -20,14
  line_rel_xy(-1,-12), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,12), // to -6,14
  move_rel_xy(0,0), // to -6,14
  line_rel_xy(4,-12), // to -2,2
  move_rel_xy(-7,6), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(10,-6), // to 6,2
  line_rel_xy(0,12), // to 6,14
  move_rel_xy(10,0), // to 16,14
  line_rel_xy(0,-12), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(2,-14), // to 33,-16
  move_rel_xy(-2,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(1,-6), // to 42,-8
  move_rel_xy(-3,0), // to 39,-8
  line_rel_xy(4,-8), // to 43,-16
  move_rel_xy(-1,8), // to 42,-8
  line_rel_xy(-10,0), // to 32,-8
  move_rel_xy(-5,-8), // to 27,-16
  line_rel_xy(-10,0), // to 17,-16
  move_rel_xy(0,0), // to 17,-16
  line_rel_xy(-1,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-4,-6), // to 22,-8
  line_rel_xy(-5,0), // to 17,-8
  move_rel_xy(-5,6), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(-1,-14), // to -17,-16
  move_rel_xy(0,0), // to -17,-16
  line_rel_xy(-10,0), // to -27,-16
  move_rel_xy(0,0), // to -27,-16
  line_rel_xy(1,14), // to -26,-2
  move_rel_xy(-3,-8), // to -29,-10
  line_rel_xy(-5,0), // to -34,-10
  move_rel_xy(2,0), // to -32,-10
  line_rel_xy(-1,-6), // to -33,-16
  move_rel_xy(0,0), // to -33,-16
  line_rel_xy(-10,0), // to -43,-16
  move_rel_xy(0,0), // to -43,-16
  line_rel_xy(2,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard16[] = {
  move_rel_xy(-56,-27), // to -56,-27
  line_rel_xy(7,51), // to -49,24
  move_rel_xy(105,-51), // to 56,-27
  line_rel_xy(-112,0), // to -56,-27
  move_rel_xy(105,51), // to 49,24
  line_rel_xy(7,-51), // to 56,-27
  move_rel_xy(-105,51), // to -49,24
  line_rel_xy(98,0), // to 49,24
  move_rel_xy(-97,-45), // to -48,-21
  line_rel_xy(5,40), // to -43,19
  move_rel_xy(91,-40), // to 48,-21
  line_rel_xy(-96,0), // to -48,-21
  move_rel_xy(91,40), // to 43,19
  line_rel_xy(5,-40), // to 48,-21
  move_rel_xy(-91,40), // to -43,19
  line_rel_xy(86,0), // to 43,19
  move_rel_xy(-69,-5), // to -26,14
  line_rel_xy(12,0), // to -14,14
  move_rel_xy(-6,0), // to -20,14
  line_rel_xy(-1,-12), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,12), // to -6,14
  move_rel_xy(0,0), // to -6,14
  line_rel_xy(4,-12), // to -2,2
  move_rel_xy(-7,6), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(10,-6), // to 6,2
  line_rel_xy(0,12), // to 6,14
  move_rel_xy(10,0), // to 16,14
  line_rel_xy(0,-12), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(1,-14), // to 32,-16
  move_rel_xy(-1,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(1,-7), // to 42,-9
  move_rel_xy(-3,0), // to 39,-9
  line_rel_xy(3,-7), // to 42,-16
  move_rel_xy(0,7), // to 42,-9
  line_rel_xy(-10,0), // to 32,-9
  move_rel_xy(-5,-7), // to 27,-16
  line_rel_xy(-10,0), // to 17,-16
  move_rel_xy(0,0), // to 17,-16
  line_rel_xy(-1,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-4,-7), // to 22,-9
  line_rel_xy(-5,0), // to 17,-9
  move_rel_xy(-5,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(-1,-14), // to -17,-16
  move_rel_xy(0,0), // to -17,-16
  line_rel_xy(-10,0), // to -27,-16
  move_rel_xy(0,0), // to -27,-16
  line_rel_xy(1,14), // to -26,-2
  move_rel_xy(-3,-8), // to -29,-10
  line_rel_xy(-5,0), // to -34,-10
  move_rel_xy(2,0), // to -32,-10
  line_rel_xy(0,-6), // to -32,-16
  move_rel_xy(0,0), // to -32,-16
  line_rel_xy(-10,0), // to -42,-16
  move_rel_xy(0,0), // to -42,-16
  line_rel_xy(1,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard14[] = {
  move_rel_xy(-55,-28), // to -55,-28
  line_rel_xy(6,52), // to -49,24
  move_rel_xy(104,-52), // to 55,-28
  line_rel_xy(-110,0), // to -55,-28
  move_rel_xy(104,52), // to 49,24
  line_rel_xy(6,-52), // to 55,-28
  move_rel_xy(-104,52), // to -49,24
  line_rel_xy(98,0), // to 49,24
  move_rel_xy(-97,-45), // to -48,-21
  line_rel_xy(5,40), // to -43,19
  move_rel_xy(91,-40), // to 48,-21
  line_rel_xy(-96,0), // to -48,-21
  move_rel_xy(91,40), // to 43,19
  line_rel_xy(5,-40), // to 48,-21
  move_rel_xy(-91,40), // to -43,19
  line_rel_xy(86,0), // to 43,19
  move_rel_xy(-70,-4), // to -27,15
  line_rel_xy(13,0), // to -14,15
  move_rel_xy(-6,0), // to -20,15
  line_rel_xy(-1,-13), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,13), // to -6,15
  move_rel_xy(0,0), // to -6,15
  line_rel_xy(4,-13), // to -2,2
  move_rel_xy(-7,6), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(10,-6), // to 6,2
  line_rel_xy(0,13), // to 6,15
  move_rel_xy(10,0), // to 16,15
  line_rel_xy(0,-13), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(1,-14), // to 32,-16
  move_rel_xy(-1,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-2,0), // to 39,-9
  line_rel_xy(3,-7), // to 42,-16
  move_rel_xy(-1,7), // to 41,-9
  line_rel_xy(-9,0), // to 32,-9
  move_rel_xy(-5,-7), // to 27,-16
  line_rel_xy(-10,0), // to 17,-16
  move_rel_xy(0,0), // to 17,-16
  line_rel_xy(-1,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-4,-7), // to 22,-9
  line_rel_xy(-5,0), // to 17,-9
  move_rel_xy(-5,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(-1,-14), // to -17,-16
  move_rel_xy(0,0), // to -17,-16
  line_rel_xy(-10,0), // to -27,-16
  move_rel_xy(0,0), // to -27,-16
  line_rel_xy(1,14), // to -26,-2
  move_rel_xy(-3,-8), // to -29,-10
  line_rel_xy(-5,0), // to -34,-10
  move_rel_xy(2,0), // to -32,-10
  line_rel_xy(0,-6), // to -32,-16
  move_rel_xy(0,0), // to -32,-16
  line_rel_xy(-10,0), // to -42,-16
  move_rel_xy(0,0), // to -42,-16
  line_rel_xy(1,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard12[] = {
  move_rel_xy(-55,-28), // to -55,-28
  line_rel_xy(6,53), // to -49,25
  move_rel_xy(104,-53), // to 55,-28
  line_rel_xy(-110,0), // to -55,-28
  move_rel_xy(104,53), // to 49,25
  line_rel_xy(6,-53), // to 55,-28
  move_rel_xy(-104,53), // to -49,25
  line_rel_xy(98,0), // to 49,25
  move_rel_xy(-96,-46), // to -47,-21
  line_rel_xy(3,40), // to -44,19
  move_rel_xy(91,-40), // to 47,-21
  line_rel_xy(-94,0), // to -47,-21
  move_rel_xy(91,40), // to 44,19
  line_rel_xy(3,-40), // to 47,-21
  move_rel_xy(-91,40), // to -44,19
  line_rel_xy(88,0), // to 44,19
  move_rel_xy(-71,-4), // to -27,15
  line_rel_xy(13,0), // to -14,15
  move_rel_xy(-6,0), // to -20,15
  line_rel_xy(-1,-13), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,13), // to -6,15
  move_rel_xy(0,0), // to -6,15
  line_rel_xy(4,-13), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(10,-7), // to 6,2
  line_rel_xy(0,13), // to 6,15
  move_rel_xy(10,0), // to 16,15
  line_rel_xy(0,-13), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(1,-14), // to 32,-16
  move_rel_xy(-1,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-2,0), // to 39,-9
  line_rel_xy(3,-7), // to 42,-16
  move_rel_xy(-1,7), // to 41,-9
  line_rel_xy(-10,0), // to 31,-9
  move_rel_xy(-4,-7), // to 27,-16
  line_rel_xy(-10,0), // to 17,-16
  move_rel_xy(0,0), // to 17,-16
  line_rel_xy(-1,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-4,-7), // to 22,-9
  line_rel_xy(-5,0), // to 17,-9
  move_rel_xy(-5,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(-1,-14), // to -17,-16
  move_rel_xy(0,0), // to -17,-16
  line_rel_xy(-10,0), // to -27,-16
  move_rel_xy(0,0), // to -27,-16
  line_rel_xy(1,14), // to -26,-2
  move_rel_xy(-3,-8), // to -29,-10
  line_rel_xy(-5,0), // to -34,-10
  move_rel_xy(2,0), // to -32,-10
  line_rel_xy(0,-6), // to -32,-16
  move_rel_xy(0,0), // to -32,-16
  line_rel_xy(-10,0), // to -42,-16
  move_rel_xy(0,0), // to -42,-16
  line_rel_xy(1,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard10[] = {
  move_rel_xy(-54,-28), // to -54,-28
  line_rel_xy(5,54), // to -49,26
  move_rel_xy(103,-54), // to 54,-28
  line_rel_xy(-108,0), // to -54,-28
  move_rel_xy(103,54), // to 49,26
  line_rel_xy(5,-54), // to 54,-28
  move_rel_xy(-103,54), // to -49,26
  line_rel_xy(98,0), // to 49,26
  move_rel_xy(-96,-47), // to -47,-21
  line_rel_xy(3,41), // to -44,20
  move_rel_xy(91,-41), // to 47,-21
  line_rel_xy(-94,0), // to -47,-21
  move_rel_xy(91,41), // to 44,20
  line_rel_xy(3,-41), // to 47,-21
  move_rel_xy(-91,41), // to -44,20
  line_rel_xy(88,0), // to 44,20
  move_rel_xy(-71,-5), // to -27,15
  line_rel_xy(13,0), // to -14,15
  move_rel_xy(-7,0), // to -21,15
  line_rel_xy(0,-13), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,13), // to -6,15
  move_rel_xy(0,0), // to -6,15
  line_rel_xy(4,-13), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(10,-7), // to 6,2
  line_rel_xy(0,13), // to 6,15
  move_rel_xy(10,0), // to 16,15
  line_rel_xy(0,-13), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(1,-14), // to 32,-16
  move_rel_xy(-1,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-2,0), // to 39,-9
  line_rel_xy(3,-7), // to 42,-16
  move_rel_xy(-1,7), // to 41,-9
  line_rel_xy(-10,0), // to 31,-9
  move_rel_xy(-4,-7), // to 27,-16
  line_rel_xy(-10,0), // to 17,-16
  move_rel_xy(0,0), // to 17,-16
  line_rel_xy(-1,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-4,-7), // to 22,-9
  line_rel_xy(-6,0), // to 16,-9
  move_rel_xy(-4,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(-1,-14), // to -17,-16
  move_rel_xy(0,0), // to -17,-16
  line_rel_xy(-10,0), // to -27,-16
  move_rel_xy(0,0), // to -27,-16
  line_rel_xy(1,14), // to -26,-2
  move_rel_xy(-3,-8), // to -29,-10
  line_rel_xy(-5,0), // to -34,-10
  move_rel_xy(3,0), // to -31,-10
  line_rel_xy(-1,-6), // to -32,-16
  move_rel_xy(0,0), // to -32,-16
  line_rel_xy(-10,0), // to -42,-16
  move_rel_xy(0,0), // to -42,-16
  line_rel_xy(1,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard8[] = {
  move_rel_xy(-54,-28), // to -54,-28
  line_rel_xy(4,54), // to -50,26
  move_rel_xy(104,-54), // to 54,-28
  line_rel_xy(-108,0), // to -54,-28
  move_rel_xy(104,54), // to 50,26
  line_rel_xy(4,-54), // to 54,-28
  move_rel_xy(-104,54), // to -50,26
  line_rel_xy(100,0), // to 50,26
  move_rel_xy(-97,-47), // to -47,-21
  line_rel_xy(3,41), // to -44,20
  move_rel_xy(91,-41), // to 47,-21
  line_rel_xy(-94,0), // to -47,-21
  move_rel_xy(91,41), // to 44,20
  line_rel_xy(3,-41), // to 47,-21
  move_rel_xy(-91,41), // to -44,20
  line_rel_xy(88,0), // to 44,20
  move_rel_xy(-71,-4), // to -27,16
  line_rel_xy(13,0), // to -14,16
  move_rel_xy(-7,0), // to -21,16
  line_rel_xy(0,-14), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,14), // to -6,16
  move_rel_xy(0,0), // to -6,16
  line_rel_xy(4,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(10,-7), // to 6,2
  line_rel_xy(0,14), // to 6,16
  move_rel_xy(10,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(1,-14), // to 32,-16
  move_rel_xy(-1,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-2,0), // to 39,-9
  line_rel_xy(2,-7), // to 41,-16
  move_rel_xy(0,7), // to 41,-9
  line_rel_xy(-10,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-9,0), // to 17,-16
  move_rel_xy(0,0), // to 17,-16
  line_rel_xy(-1,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-4,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(-1,-14), // to -17,-16
  move_rel_xy(0,0), // to -17,-16
  line_rel_xy(-9,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-3,-9), // to -29,-11
  line_rel_xy(-5,0), // to -34,-11
  move_rel_xy(3,0), // to -31,-11
  line_rel_xy(-1,-5), // to -32,-16
  move_rel_xy(0,0), // to -32,-16
  line_rel_xy(-9,0), // to -41,-16
  move_rel_xy(0,0), // to -41,-16
  line_rel_xy(0,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard6[] = {
  move_rel_xy(-53,-28), // to -53,-28
  line_rel_xy(3,54), // to -50,26
  move_rel_xy(103,-54), // to 53,-28
  line_rel_xy(-106,0), // to -53,-28
  move_rel_xy(103,54), // to 50,26
  line_rel_xy(3,-54), // to 53,-28
  move_rel_xy(-103,54), // to -50,26
  line_rel_xy(100,0), // to 50,26
  move_rel_xy(-96,-47), // to -46,-21
  line_rel_xy(2,41), // to -44,20
  move_rel_xy(90,-41), // to 46,-21
  line_rel_xy(-92,0), // to -46,-21
  move_rel_xy(90,41), // to 44,20
  line_rel_xy(2,-41), // to 46,-21
  move_rel_xy(-90,41), // to -44,20
  line_rel_xy(88,0), // to 44,20
  move_rel_xy(-71,-4), // to -27,16
  line_rel_xy(13,0), // to -14,16
  move_rel_xy(-7,0), // to -21,16
  line_rel_xy(0,-14), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,14), // to -6,16
  move_rel_xy(0,0), // to -6,16
  line_rel_xy(4,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(10,-7), // to 6,2
  line_rel_xy(0,14), // to 6,16
  move_rel_xy(10,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(0,-14), // to 31,-16
  move_rel_xy(0,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-2,0), // to 39,-9
  line_rel_xy(2,-7), // to 41,-16
  move_rel_xy(0,7), // to 41,-9
  line_rel_xy(-10,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-4,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-3,-9), // to -29,-11
  line_rel_xy(-5,0), // to -34,-11
  move_rel_xy(3,0), // to -31,-11
  line_rel_xy(0,-5), // to -31,-16
  move_rel_xy(0,0), // to -31,-16
  line_rel_xy(-10,0), // to -41,-16
  move_rel_xy(0,0), // to -41,-16
  line_rel_xy(0,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard4[] = {
  move_rel_xy(-53,-28), // to -53,-28
  line_rel_xy(2,55), // to -51,27
  move_rel_xy(104,-55), // to 53,-28
  line_rel_xy(-106,0), // to -53,-28
  move_rel_xy(104,55), // to 51,27
  line_rel_xy(2,-55), // to 53,-28
  move_rel_xy(-104,55), // to -51,27
  line_rel_xy(102,0), // to 51,27
  move_rel_xy(-97,-48), // to -46,-21
  line_rel_xy(1,42), // to -45,21
  move_rel_xy(91,-42), // to 46,-21
  line_rel_xy(-92,0), // to -46,-21
  move_rel_xy(91,42), // to 45,21
  line_rel_xy(1,-42), // to 46,-21
  move_rel_xy(-91,42), // to -45,21
  line_rel_xy(90,0), // to 45,21
  move_rel_xy(-72,-5), // to -27,16
  line_rel_xy(12,0), // to -15,16
  move_rel_xy(-6,0), // to -21,16
  line_rel_xy(0,-14), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,14), // to -6,16
  move_rel_xy(0,0), // to -6,16
  line_rel_xy(4,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(10,-7), // to 6,2
  line_rel_xy(0,14), // to 6,16
  move_rel_xy(10,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(0,-14), // to 31,-16
  move_rel_xy(0,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-3,0), // to 38,-9
  line_rel_xy(3,-7), // to 41,-16
  move_rel_xy(0,7), // to 41,-9
  line_rel_xy(-10,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-4,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-3,-9), // to -29,-11
  line_rel_xy(-4,0), // to -33,-11
  move_rel_xy(2,0), // to -31,-11
  line_rel_xy(0,-5), // to -31,-16
  move_rel_xy(0,0), // to -31,-16
  line_rel_xy(-10,0), // to -41,-16
  move_rel_xy(0,0), // to -41,-16
  line_rel_xy(0,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard2[] = {
  move_rel_xy(-52,-28), // to -52,-28
  line_rel_xy(1,55), // to -51,27
  move_rel_xy(103,-55), // to 52,-28
  line_rel_xy(-104,0), // to -52,-28
  move_rel_xy(103,55), // to 51,27
  line_rel_xy(1,-55), // to 52,-28
  move_rel_xy(-103,55), // to -51,27
  line_rel_xy(102,0), // to 51,27
  move_rel_xy(-97,-48), // to -46,-21
  line_rel_xy(1,42), // to -45,21
  move_rel_xy(91,-42), // to 46,-21
  line_rel_xy(-92,0), // to -46,-21
  move_rel_xy(91,42), // to 45,21
  line_rel_xy(1,-42), // to 46,-21
  move_rel_xy(-91,42), // to -45,21
  line_rel_xy(90,0), // to 45,21
  move_rel_xy(-72,-5), // to -27,16
  line_rel_xy(12,0), // to -15,16
  move_rel_xy(-6,0), // to -21,16
  line_rel_xy(0,-14), // to -21,2
  move_rel_xy(10,0), // to -11,2
  line_rel_xy(5,14), // to -6,16
  move_rel_xy(0,0), // to -6,16
  line_rel_xy(4,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(10,-7), // to 6,2
  line_rel_xy(0,14), // to 6,16
  move_rel_xy(10,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(0,-14), // to 31,-16
  move_rel_xy(0,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-3,0), // to 38,-9
  line_rel_xy(3,-7), // to 41,-16
  move_rel_xy(0,7), // to 41,-9
  line_rel_xy(-10,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-4,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-3,-9), // to -29,-11
  line_rel_xy(-4,0), // to -33,-11
  move_rel_xy(2,0), // to -31,-11
  line_rel_xy(0,-5), // to -31,-16
  move_rel_xy(0,0), // to -31,-16
  line_rel_xy(-10,0), // to -41,-16
  move_rel_xy(0,0), // to -41,-16
  line_rel_xy(0,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard0[] = {
  move_rel_xy(-52,-28), // to -52,-28
  line_rel_xy(0,56), // to -52,28
  move_rel_xy(104,-56), // to 52,-28
  line_rel_xy(-104,0), // to -52,-28
  move_rel_xy(104,56), // to 52,28
  line_rel_xy(0,-56), // to 52,-28
  move_rel_xy(-104,56), // to -52,28
  line_rel_xy(104,0), // to 52,28
  move_rel_xy(-98,-49), // to -46,-21
  line_rel_xy(0,42), // to -46,21
  move_rel_xy(92,-42), // to 46,-21
  line_rel_xy(-92,0), // to -46,-21
  move_rel_xy(92,42), // to 46,21
  line_rel_xy(0,-42), // to 46,-21
  move_rel_xy(-92,42), // to -46,21
  line_rel_xy(92,0), // to 46,21
  move_rel_xy(-74,-5), // to -28,16
  line_rel_xy(13,0), // to -15,16
  move_rel_xy(-6,0), // to -21,16
  line_rel_xy(0,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(9,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(0,-14), // to 31,-16
  move_rel_xy(0,14), // to 31,-2
  line_rel_xy(10,0), // to 41,-2
  move_rel_xy(0,0), // to 41,-2
  line_rel_xy(0,-7), // to 41,-9
  move_rel_xy(-3,0), // to 38,-9
  line_rel_xy(3,-7), // to 41,-16
  move_rel_xy(0,7), // to 41,-9
  line_rel_xy(-10,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-4,7), // to 12,-2
  line_rel_xy(0,-14), // to 12,-16
  move_rel_xy(0,0), // to 12,-16
  line_rel_xy(-10,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-10,14), // to -12,-2
  move_rel_xy(0,0), // to -12,-2
  line_rel_xy(0,-14), // to -12,-16
  move_rel_xy(-4,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-3,-9), // to -29,-11
  line_rel_xy(-4,0), // to -33,-11
  move_rel_xy(2,0), // to -31,-11
  line_rel_xy(0,-5), // to -31,-16
  move_rel_xy(0,0), // to -31,-16
  line_rel_xy(-10,0), // to -41,-16
  move_rel_xy(0,0), // to -41,-16
  line_rel_xy(0,14), // to -41,-2
  move_rel_xy(0,0), // to -41,-2
  line_rel_xy(10,0), // to -31,-2
  1
};


const int8 placard254[] = {
  move_rel_xy(-51,-27), // to -51,-27
  line_rel_xy(-1,55), // to -52,28
  move_rel_xy(103,-55), // to 51,-27
  line_rel_xy(-102,0), // to -51,-27
  move_rel_xy(103,55), // to 52,28
  line_rel_xy(-1,-55), // to 51,-27
  move_rel_xy(-103,55), // to -52,28
  line_rel_xy(104,0), // to 52,28
  move_rel_xy(-97,-49), // to -45,-21
  line_rel_xy(-1,42), // to -46,21
  move_rel_xy(91,-42), // to 45,-21
  line_rel_xy(-90,0), // to -45,-21
  move_rel_xy(91,42), // to 46,21
  line_rel_xy(-1,-42), // to 45,-21
  move_rel_xy(-91,42), // to -46,21
  line_rel_xy(92,0), // to 46,21
  move_rel_xy(-74,-5), // to -28,16
  line_rel_xy(13,0), // to -15,16
  move_rel_xy(-6,0), // to -21,16
  line_rel_xy(0,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(9,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(0,-14), // to 31,-16
  move_rel_xy(0,14), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(0,-7), // to 40,-9
  move_rel_xy(-2,0), // to 38,-9
  line_rel_xy(2,-7), // to 40,-16
  move_rel_xy(0,7), // to 40,-9
  line_rel_xy(-9,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-5,7), // to 11,-2
  line_rel_xy(0,-14), // to 11,-16
  move_rel_xy(0,0), // to 11,-16
  line_rel_xy(-9,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-9,14), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-14), // to -11,-16
  move_rel_xy(-5,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-2,-9), // to -28,-11
  line_rel_xy(-5,0), // to -33,-11
  move_rel_xy(2,0), // to -31,-11
  line_rel_xy(0,-5), // to -31,-16
  move_rel_xy(0,0), // to -31,-16
  line_rel_xy(-9,0), // to -40,-16
  move_rel_xy(0,0), // to -40,-16
  line_rel_xy(0,14), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard252[] = {
  move_rel_xy(-51,-27), // to -51,-27
  line_rel_xy(-2,55), // to -53,28
  move_rel_xy(104,-55), // to 51,-27
  line_rel_xy(-102,0), // to -51,-27
  move_rel_xy(104,55), // to 53,28
  line_rel_xy(-2,-55), // to 51,-27
  move_rel_xy(-104,55), // to -53,28
  line_rel_xy(106,0), // to 53,28
  move_rel_xy(-98,-49), // to -45,-21
  line_rel_xy(-1,42), // to -46,21
  move_rel_xy(91,-42), // to 45,-21
  line_rel_xy(-90,0), // to -45,-21
  move_rel_xy(91,42), // to 46,21
  line_rel_xy(-1,-42), // to 45,-21
  move_rel_xy(-91,42), // to -46,21
  line_rel_xy(92,0), // to 46,21
  move_rel_xy(-74,-5), // to -28,16
  line_rel_xy(13,0), // to -15,16
  move_rel_xy(-6,0), // to -21,16
  line_rel_xy(0,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(9,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-1,-14), // to 30,-16
  move_rel_xy(1,14), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(0,-7), // to 40,-9
  move_rel_xy(-2,0), // to 38,-9
  line_rel_xy(2,-7), // to 40,-16
  move_rel_xy(0,7), // to 40,-9
  line_rel_xy(-9,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-5,7), // to 11,-2
  line_rel_xy(0,-14), // to 11,-16
  move_rel_xy(0,0), // to 11,-16
  line_rel_xy(-9,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-9,14), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-14), // to -11,-16
  move_rel_xy(-5,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-2,-8), // to -28,-10
  line_rel_xy(-5,0), // to -33,-10
  move_rel_xy(2,0), // to -31,-10
  line_rel_xy(1,-6), // to -30,-16
  move_rel_xy(0,0), // to -30,-16
  line_rel_xy(-10,0), // to -40,-16
  move_rel_xy(0,0), // to -40,-16
  line_rel_xy(0,14), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard250[] = {
  move_rel_xy(-50,-26), // to -50,-26
  line_rel_xy(-3,54), // to -53,28
  move_rel_xy(103,-54), // to 50,-26
  line_rel_xy(-100,0), // to -50,-26
  move_rel_xy(103,54), // to 53,28
  line_rel_xy(-3,-54), // to 50,-26
  move_rel_xy(-103,54), // to -53,28
  line_rel_xy(106,0), // to 53,28
  move_rel_xy(-97,-48), // to -44,-20
  line_rel_xy(-2,41), // to -46,21
  move_rel_xy(90,-41), // to 44,-20
  line_rel_xy(-88,0), // to -44,-20
  move_rel_xy(90,41), // to 46,21
  line_rel_xy(-2,-41), // to 44,-20
  move_rel_xy(-90,41), // to -46,21
  line_rel_xy(92,0), // to 46,21
  move_rel_xy(-74,-5), // to -28,16
  line_rel_xy(13,0), // to -15,16
  move_rel_xy(-7,0), // to -22,16
  line_rel_xy(1,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(9,0), // to 16,16
  line_rel_xy(0,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-1,-14), // to 30,-16
  move_rel_xy(1,14), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(0,-7), // to 40,-9
  move_rel_xy(-2,0), // to 38,-9
  line_rel_xy(2,-7), // to 40,-16
  move_rel_xy(0,7), // to 40,-9
  line_rel_xy(-9,0), // to 31,-9
  move_rel_xy(-5,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-5,7), // to 11,-2
  line_rel_xy(0,-14), // to 11,-16
  move_rel_xy(0,0), // to 11,-16
  line_rel_xy(-9,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-9,14), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-14), // to -11,-16
  move_rel_xy(-5,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-2,-8), // to -28,-10
  line_rel_xy(-5,0), // to -33,-10
  move_rel_xy(3,0), // to -30,-10
  line_rel_xy(0,-6), // to -30,-16
  move_rel_xy(0,0), // to -30,-16
  line_rel_xy(-10,0), // to -40,-16
  move_rel_xy(0,0), // to -40,-16
  line_rel_xy(0,14), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard248[] = {
  move_rel_xy(-50,-26), // to -50,-26
  line_rel_xy(-4,54), // to -54,28
  move_rel_xy(104,-54), // to 50,-26
  line_rel_xy(-100,0), // to -50,-26
  move_rel_xy(104,54), // to 54,28
  line_rel_xy(-4,-54), // to 50,-26
  move_rel_xy(-104,54), // to -54,28
  line_rel_xy(108,0), // to 54,28
  move_rel_xy(-98,-48), // to -44,-20
  line_rel_xy(-3,41), // to -47,21
  move_rel_xy(91,-41), // to 44,-20
  line_rel_xy(-88,0), // to -44,-20
  move_rel_xy(91,41), // to 47,21
  line_rel_xy(-3,-41), // to 44,-20
  move_rel_xy(-91,41), // to -47,21
  line_rel_xy(94,0), // to 47,21
  move_rel_xy(-75,-5), // to -28,16
  line_rel_xy(13,0), // to -15,16
  move_rel_xy(-7,0), // to -22,16
  line_rel_xy(1,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(10,0), // to 17,16
  line_rel_xy(-1,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-1,-14), // to 30,-16
  move_rel_xy(1,14), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(0,-7), // to 40,-9
  move_rel_xy(-2,0), // to 38,-9
  line_rel_xy(2,-7), // to 40,-16
  move_rel_xy(0,7), // to 40,-9
  line_rel_xy(-10,0), // to 30,-9
  move_rel_xy(-4,-7), // to 26,-16
  line_rel_xy(-10,0), // to 16,-16
  move_rel_xy(0,0), // to 16,-16
  line_rel_xy(0,14), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-5,7), // to 11,-2
  line_rel_xy(0,-14), // to 11,-16
  move_rel_xy(0,0), // to 11,-16
  line_rel_xy(-9,14), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-14), // to 2,-16
  move_rel_xy(-4,14), // to -2,-2
  line_rel_xy(0,-14), // to -2,-16
  move_rel_xy(0,0), // to -2,-16
  line_rel_xy(-9,14), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-14), // to -11,-16
  move_rel_xy(-5,14), // to -16,-2
  line_rel_xy(0,-14), // to -16,-16
  line_rel_xy(-10,0), // to -26,-16
  move_rel_xy(0,0), // to -26,-16
  line_rel_xy(0,14), // to -26,-2
  move_rel_xy(-2,-8), // to -28,-10
  line_rel_xy(-5,0), // to -33,-10
  move_rel_xy(3,0), // to -30,-10
  line_rel_xy(0,-6), // to -30,-16
  move_rel_xy(0,0), // to -30,-16
  line_rel_xy(-10,0), // to -40,-16
  move_rel_xy(0,0), // to -40,-16
  line_rel_xy(0,14), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard246[] = {
  move_rel_xy(-49,-26), // to -49,-26
  line_rel_xy(-5,54), // to -54,28
  move_rel_xy(103,-54), // to 49,-26
  line_rel_xy(-98,0), // to -49,-26
  move_rel_xy(103,54), // to 54,28
  line_rel_xy(-5,-54), // to 49,-26
  move_rel_xy(-103,54), // to -54,28
  line_rel_xy(108,0), // to 54,28
  move_rel_xy(-98,-48), // to -44,-20
  line_rel_xy(-3,41), // to -47,21
  move_rel_xy(91,-41), // to 44,-20
  line_rel_xy(-88,0), // to -44,-20
  move_rel_xy(91,41), // to 47,21
  line_rel_xy(-3,-41), // to 44,-20
  move_rel_xy(-91,41), // to -47,21
  line_rel_xy(94,0), // to 47,21
  move_rel_xy(-75,-5), // to -28,16
  line_rel_xy(13,0), // to -15,16
  move_rel_xy(-7,0), // to -22,16
  line_rel_xy(1,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(10,0), // to 17,16
  line_rel_xy(-1,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-1,-13), // to 30,-15
  move_rel_xy(1,13), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(0,-7), // to 40,-9
  move_rel_xy(-2,0), // to 38,-9
  line_rel_xy(1,-6), // to 39,-15
  move_rel_xy(1,6), // to 40,-9
  line_rel_xy(-10,0), // to 30,-9
  move_rel_xy(-5,-6), // to 25,-15
  line_rel_xy(-9,0), // to 16,-15
  move_rel_xy(0,0), // to 16,-15
  line_rel_xy(0,13), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-5,7), // to 11,-2
  line_rel_xy(0,-13), // to 11,-15
  move_rel_xy(0,0), // to 11,-15
  line_rel_xy(-9,13), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-13), // to 2,-15
  move_rel_xy(-4,13), // to -2,-2
  line_rel_xy(0,-13), // to -2,-15
  move_rel_xy(0,0), // to -2,-15
  line_rel_xy(-9,13), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-13), // to -11,-15
  move_rel_xy(-5,13), // to -16,-2
  line_rel_xy(0,-13), // to -16,-15
  move_rel_xy(0,0), // to -16,-15
  line_rel_xy(-9,0), // to -25,-15
  move_rel_xy(0,0), // to -25,-15
  line_rel_xy(-1,13), // to -26,-2
  move_rel_xy(-2,-8), // to -28,-10
  line_rel_xy(-5,0), // to -33,-10
  move_rel_xy(3,0), // to -30,-10
  line_rel_xy(0,-5), // to -30,-15
  move_rel_xy(0,0), // to -30,-15
  line_rel_xy(-9,0), // to -39,-15
  move_rel_xy(0,0), // to -39,-15
  line_rel_xy(-1,13), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard244[] = {
  move_rel_xy(-49,-25), // to -49,-25
  line_rel_xy(-6,53), // to -55,28
  move_rel_xy(104,-53), // to 49,-25
  line_rel_xy(-98,0), // to -49,-25
  move_rel_xy(104,53), // to 55,28
  line_rel_xy(-6,-53), // to 49,-25
  move_rel_xy(-104,53), // to -55,28
  line_rel_xy(110,0), // to 55,28
  move_rel_xy(-99,-47), // to -44,-19
  line_rel_xy(-3,40), // to -47,21
  move_rel_xy(91,-40), // to 44,-19
  line_rel_xy(-88,0), // to -44,-19
  move_rel_xy(91,40), // to 47,21
  line_rel_xy(-3,-40), // to 44,-19
  move_rel_xy(-91,40), // to -47,21
  line_rel_xy(94,0), // to 47,21
  move_rel_xy(-76,-5), // to -29,16
  line_rel_xy(14,0), // to -15,16
  move_rel_xy(-7,0), // to -22,16
  line_rel_xy(1,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(10,0), // to 17,16
  line_rel_xy(-1,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-1,-13), // to 30,-15
  move_rel_xy(1,13), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(0,-7), // to 40,-9
  move_rel_xy(-3,0), // to 37,-9
  line_rel_xy(2,-6), // to 39,-15
  move_rel_xy(1,6), // to 40,-9
  line_rel_xy(-10,0), // to 30,-9
  move_rel_xy(-5,-6), // to 25,-15
  line_rel_xy(-9,0), // to 16,-15
  move_rel_xy(0,0), // to 16,-15
  line_rel_xy(0,13), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-7), // to 21,-9
  line_rel_xy(-5,0), // to 16,-9
  move_rel_xy(-5,7), // to 11,-2
  line_rel_xy(0,-13), // to 11,-15
  move_rel_xy(0,0), // to 11,-15
  line_rel_xy(-9,13), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-13), // to 2,-15
  move_rel_xy(-4,13), // to -2,-2
  line_rel_xy(0,-13), // to -2,-15
  move_rel_xy(0,0), // to -2,-15
  line_rel_xy(-9,13), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-13), // to -11,-15
  move_rel_xy(-5,13), // to -16,-2
  line_rel_xy(0,-13), // to -16,-15
  move_rel_xy(0,0), // to -16,-15
  line_rel_xy(-9,0), // to -25,-15
  move_rel_xy(0,0), // to -25,-15
  line_rel_xy(-1,13), // to -26,-2
  move_rel_xy(-2,-8), // to -28,-10
  line_rel_xy(-5,0), // to -33,-10
  move_rel_xy(3,0), // to -30,-10
  line_rel_xy(0,-5), // to -30,-15
  move_rel_xy(0,0), // to -30,-15
  line_rel_xy(-9,0), // to -39,-15
  move_rel_xy(0,0), // to -39,-15
  line_rel_xy(-1,13), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard242[] = {
  move_rel_xy(-49,-24), // to -49,-24
  line_rel_xy(-6,52), // to -55,28
  move_rel_xy(104,-52), // to 49,-24
  line_rel_xy(-98,0), // to -49,-24
  move_rel_xy(104,52), // to 55,28
  line_rel_xy(-6,-52), // to 49,-24
  move_rel_xy(-104,52), // to -55,28
  line_rel_xy(110,0), // to 55,28
  move_rel_xy(-98,-47), // to -43,-19
  line_rel_xy(-5,40), // to -48,21
  move_rel_xy(91,-40), // to 43,-19
  line_rel_xy(-86,0), // to -43,-19
  move_rel_xy(91,40), // to 48,21
  line_rel_xy(-5,-40), // to 43,-19
  move_rel_xy(-91,40), // to -48,21
  line_rel_xy(96,0), // to 48,21
  move_rel_xy(-77,-5), // to -29,16
  line_rel_xy(14,0), // to -15,16
  move_rel_xy(-7,0), // to -22,16
  line_rel_xy(1,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(10,0), // to 17,16
  line_rel_xy(-1,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-1,-13), // to 30,-15
  move_rel_xy(1,13), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(0,-6), // to 40,-8
  move_rel_xy(-3,0), // to 37,-8
  line_rel_xy(2,-7), // to 39,-15
  move_rel_xy(1,7), // to 40,-8
  line_rel_xy(-10,0), // to 30,-8
  move_rel_xy(-5,-7), // to 25,-15
  line_rel_xy(-9,0), // to 16,-15
  move_rel_xy(0,0), // to 16,-15
  line_rel_xy(0,13), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-6), // to 21,-8
  line_rel_xy(-5,0), // to 16,-8
  move_rel_xy(-5,6), // to 11,-2
  line_rel_xy(0,-13), // to 11,-15
  move_rel_xy(0,0), // to 11,-15
  line_rel_xy(-9,13), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-13), // to 2,-15
  move_rel_xy(-4,13), // to -2,-2
  line_rel_xy(0,-13), // to -2,-15
  move_rel_xy(0,0), // to -2,-15
  line_rel_xy(-9,13), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-13), // to -11,-15
  move_rel_xy(-5,13), // to -16,-2
  line_rel_xy(0,-13), // to -16,-15
  move_rel_xy(0,0), // to -16,-15
  line_rel_xy(-9,0), // to -25,-15
  move_rel_xy(0,0), // to -25,-15
  line_rel_xy(-1,13), // to -26,-2
  move_rel_xy(-2,-8), // to -28,-10
  line_rel_xy(-5,0), // to -33,-10
  move_rel_xy(3,0), // to -30,-10
  line_rel_xy(0,-5), // to -30,-15
  move_rel_xy(0,0), // to -30,-15
  line_rel_xy(-9,0), // to -39,-15
  move_rel_xy(0,0), // to -39,-15
  line_rel_xy(-1,13), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard240[] = {
  move_rel_xy(-49,-24), // to -49,-24
  line_rel_xy(-7,51), // to -56,27
  move_rel_xy(105,-51), // to 49,-24
  line_rel_xy(-98,0), // to -49,-24
  move_rel_xy(105,51), // to 56,27
  line_rel_xy(-7,-51), // to 49,-24
  move_rel_xy(-105,51), // to -56,27
  line_rel_xy(112,0), // to 56,27
  move_rel_xy(-99,-46), // to -43,-19
  line_rel_xy(-5,40), // to -48,21
  move_rel_xy(91,-40), // to 43,-19
  line_rel_xy(-86,0), // to -43,-19
  move_rel_xy(91,40), // to 48,21
  line_rel_xy(-5,-40), // to 43,-19
  move_rel_xy(-91,40), // to -48,21
  line_rel_xy(96,0), // to 48,21
  move_rel_xy(-77,-5), // to -29,16
  line_rel_xy(14,0), // to -15,16
  move_rel_xy(-7,0), // to -22,16
  line_rel_xy(1,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,7), // to -9,9
  line_rel_xy(5,0), // to -4,9
  move_rel_xy(11,-7), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(10,0), // to 17,16
  line_rel_xy(-1,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-2,-12), // to 29,-14
  move_rel_xy(2,12), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(-1,-6), // to 39,-8
  move_rel_xy(-2,0), // to 37,-8
  line_rel_xy(2,-6), // to 39,-14
  move_rel_xy(0,6), // to 39,-8
  line_rel_xy(-9,0), // to 30,-8
  move_rel_xy(-5,-6), // to 25,-14
  line_rel_xy(-9,0), // to 16,-14
  move_rel_xy(0,0), // to 16,-14
  line_rel_xy(0,12), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-6), // to 21,-8
  line_rel_xy(-5,0), // to 16,-8
  move_rel_xy(-5,6), // to 11,-2
  line_rel_xy(0,-12), // to 11,-14
  move_rel_xy(0,0), // to 11,-14
  line_rel_xy(-9,12), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-12), // to 2,-14
  move_rel_xy(-4,12), // to -2,-2
  line_rel_xy(0,-12), // to -2,-14
  move_rel_xy(0,0), // to -2,-14
  line_rel_xy(-9,12), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-12), // to -11,-14
  move_rel_xy(-5,12), // to -16,-2
  line_rel_xy(0,-12), // to -16,-14
  move_rel_xy(0,0), // to -16,-14
  line_rel_xy(-9,0), // to -25,-14
  move_rel_xy(0,0), // to -25,-14
  line_rel_xy(-1,12), // to -26,-2
  move_rel_xy(-2,-7), // to -28,-9
  line_rel_xy(-4,0), // to -32,-9
  move_rel_xy(2,0), // to -30,-9
  line_rel_xy(1,-5), // to -29,-14
  move_rel_xy(0,0), // to -29,-14
  line_rel_xy(-10,0), // to -39,-14
  move_rel_xy(0,0), // to -39,-14
  line_rel_xy(-1,12), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard238[] = {
  move_rel_xy(-48,-23), // to -48,-23
  line_rel_xy(-8,50), // to -56,27
  move_rel_xy(104,-50), // to 48,-23
  line_rel_xy(-96,0), // to -48,-23
  move_rel_xy(104,50), // to 56,27
  line_rel_xy(-8,-50), // to 48,-23
  move_rel_xy(-104,50), // to -56,27
  line_rel_xy(112,0), // to 56,27
  move_rel_xy(-99,-45), // to -43,-18
  line_rel_xy(-5,38), // to -48,20
  move_rel_xy(91,-38), // to 43,-18
  line_rel_xy(-86,0), // to -43,-18
  move_rel_xy(91,38), // to 48,20
  line_rel_xy(-5,-38), // to 43,-18
  move_rel_xy(-91,38), // to -48,20
  line_rel_xy(96,0), // to 48,20
  move_rel_xy(-77,-4), // to -29,16
  line_rel_xy(13,0), // to -16,16
  move_rel_xy(-6,0), // to -22,16
  line_rel_xy(1,-14), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,14), // to -7,16
  move_rel_xy(0,0), // to -7,16
  line_rel_xy(5,-14), // to -2,2
  move_rel_xy(-7,6), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(11,-6), // to 7,2
  line_rel_xy(0,14), // to 7,16
  move_rel_xy(10,0), // to 17,16
  line_rel_xy(-1,-14), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-2,-12), // to 29,-14
  move_rel_xy(2,12), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(-1,-6), // to 39,-8
  move_rel_xy(-2,0), // to 37,-8
  line_rel_xy(2,-6), // to 39,-14
  move_rel_xy(0,6), // to 39,-8
  line_rel_xy(-9,0), // to 30,-8
  move_rel_xy(-5,-6), // to 25,-14
  line_rel_xy(-9,0), // to 16,-14
  move_rel_xy(0,0), // to 16,-14
  line_rel_xy(0,12), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-5,-6), // to 21,-8
  line_rel_xy(-5,0), // to 16,-8
  move_rel_xy(-5,6), // to 11,-2
  line_rel_xy(0,-12), // to 11,-14
  move_rel_xy(0,0), // to 11,-14
  line_rel_xy(-9,12), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-12), // to 2,-14
  move_rel_xy(-4,12), // to -2,-2
  line_rel_xy(0,-12), // to -2,-14
  move_rel_xy(0,0), // to -2,-14
  line_rel_xy(-9,12), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-12), // to -11,-14
  move_rel_xy(-5,12), // to -16,-2
  line_rel_xy(0,-12), // to -16,-14
  move_rel_xy(0,0), // to -16,-14
  line_rel_xy(-9,0), // to -25,-14
  move_rel_xy(0,0), // to -25,-14
  line_rel_xy(-1,12), // to -26,-2
  move_rel_xy(-2,-7), // to -28,-9
  line_rel_xy(-4,0), // to -32,-9
  move_rel_xy(2,0), // to -30,-9
  line_rel_xy(1,-5), // to -29,-14
  move_rel_xy(0,0), // to -29,-14
  line_rel_xy(-10,0), // to -39,-14
  move_rel_xy(0,0), // to -39,-14
  line_rel_xy(-1,12), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard236[] = {
  move_rel_xy(-48,-22), // to -48,-22
  line_rel_xy(-9,49), // to -57,27
  move_rel_xy(105,-49), // to 48,-22
  line_rel_xy(-96,0), // to -48,-22
  move_rel_xy(105,49), // to 57,27
  line_rel_xy(-9,-49), // to 48,-22
  move_rel_xy(-105,49), // to -57,27
  line_rel_xy(114,0), // to 57,27
  move_rel_xy(-100,-44), // to -43,-17
  line_rel_xy(-6,37), // to -49,20
  move_rel_xy(92,-37), // to 43,-17
  line_rel_xy(-86,0), // to -43,-17
  move_rel_xy(92,37), // to 49,20
  line_rel_xy(-6,-37), // to 43,-17
  move_rel_xy(-92,37), // to -49,20
  line_rel_xy(98,0), // to 49,20
  move_rel_xy(-78,-5), // to -29,15
  line_rel_xy(13,0), // to -16,15
  move_rel_xy(-6,0), // to -22,15
  line_rel_xy(1,-13), // to -21,2
  move_rel_xy(9,0), // to -12,2
  line_rel_xy(5,13), // to -7,15
  move_rel_xy(0,0), // to -7,15
  line_rel_xy(5,-13), // to -2,2
  move_rel_xy(-7,6), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(11,-6), // to 7,2
  line_rel_xy(0,13), // to 7,15
  move_rel_xy(10,0), // to 17,15
  line_rel_xy(-1,-13), // to 16,2
  move_rel_xy(0,0), // to 16,2
  line_rel_xy(10,0), // to 26,2
  move_rel_xy(5,-4), // to 31,-2
  line_rel_xy(-2,-11), // to 29,-13
  move_rel_xy(2,11), // to 31,-2
  line_rel_xy(9,0), // to 40,-2
  move_rel_xy(0,0), // to 40,-2
  line_rel_xy(-1,-6), // to 39,-8
  move_rel_xy(-2,0), // to 37,-8
  line_rel_xy(2,-5), // to 39,-13
  move_rel_xy(0,5), // to 39,-8
  line_rel_xy(-9,0), // to 30,-8
  move_rel_xy(-5,-5), // to 25,-13
  line_rel_xy(-9,0), // to 16,-13
  move_rel_xy(0,0), // to 16,-13
  line_rel_xy(0,11), // to 16,-2
  move_rel_xy(0,0), // to 16,-2
  line_rel_xy(10,0), // to 26,-2
  move_rel_xy(-6,-6), // to 20,-8
  line_rel_xy(-4,0), // to 16,-8
  move_rel_xy(-5,6), // to 11,-2
  line_rel_xy(0,-11), // to 11,-13
  move_rel_xy(0,0), // to 11,-13
  line_rel_xy(-9,11), // to 2,-2
  move_rel_xy(0,0), // to 2,-2
  line_rel_xy(0,-11), // to 2,-13
  move_rel_xy(-4,11), // to -2,-2
  line_rel_xy(0,-11), // to -2,-13
  move_rel_xy(0,0), // to -2,-13
  line_rel_xy(-9,11), // to -11,-2
  move_rel_xy(0,0), // to -11,-2
  line_rel_xy(0,-11), // to -11,-13
  move_rel_xy(-5,11), // to -16,-2
  line_rel_xy(0,-11), // to -16,-13
  move_rel_xy(0,0), // to -16,-13
  line_rel_xy(-9,0), // to -25,-13
  move_rel_xy(0,0), // to -25,-13
  line_rel_xy(-1,11), // to -26,-2
  move_rel_xy(-1,-7), // to -27,-9
  line_rel_xy(-5,0), // to -32,-9
  move_rel_xy(2,0), // to -30,-9
  line_rel_xy(1,-4), // to -29,-13
  move_rel_xy(0,0), // to -29,-13
  line_rel_xy(-10,0), // to -39,-13
  move_rel_xy(0,0), // to -39,-13
  line_rel_xy(-1,11), // to -40,-2
  move_rel_xy(0,0), // to -40,-2
  line_rel_xy(9,0), // to -31,-2
  1
};


const int8 placard234[] = {
  move_rel_xy(-47,-22), // to -47,-22
  line_rel_xy(-10,48), // to -57,26
  move_rel_xy(104,-48), // to 47,-22
  line_rel_xy(-94,0), // to -47,-22
  move_rel_xy(104,48), // to 57,26
  line_rel_xy(-10,-48), // to 47,-22
  move_rel_xy(-104,48), // to -57,26
  line_rel_xy(114,0), // to 57,26
  move_rel_xy(-99,-43), // to -42,-17
  line_rel_xy(-7,36), // to -49,19
  move_rel_xy(91,-36), // to 42,-17
  line_rel_xy(-84,0), // to -42,-17
  move_rel_xy(91,36), // to 49,19
  line_rel_xy(-7,-36), // to 42,-17
  move_rel_xy(-91,36), // to -49,19
  line_rel_xy(98,0), // to 49,19
  move_rel_xy(-78,-4), // to -29,15
  line_rel_xy(13,0), // to -16,15
  move_rel_xy(-7,0), // to -23,15
  line_rel_xy(2,-14), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,14), // to -7,15
  move_rel_xy(0,0), // to -7,15
  line_rel_xy(5,-14), // to -2,1
  move_rel_xy(-7,7), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(11,-7), // to 7,1
  line_rel_xy(0,14), // to 7,15
  move_rel_xy(10,0), // to 17,15
  line_rel_xy(-1,-14), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(-2,-12), // to 29,-13
  move_rel_xy(2,12), // to 31,-1
  line_rel_xy(9,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-6), // to 39,-7
  move_rel_xy(-2,0), // to 37,-7
  line_rel_xy(1,-6), // to 38,-13
  move_rel_xy(1,6), // to 39,-7
  line_rel_xy(-9,0), // to 30,-7
  move_rel_xy(-5,-6), // to 25,-13
  line_rel_xy(-9,0), // to 16,-13
  move_rel_xy(0,0), // to 16,-13
  line_rel_xy(0,12), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-6), // to 20,-7
  line_rel_xy(-4,0), // to 16,-7
  move_rel_xy(-5,6), // to 11,-1
  line_rel_xy(0,-12), // to 11,-13
  move_rel_xy(0,0), // to 11,-13
  line_rel_xy(-9,12), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-12), // to 2,-13
  move_rel_xy(-4,12), // to -2,-1
  line_rel_xy(0,-12), // to -2,-13
  move_rel_xy(0,0), // to -2,-13
  line_rel_xy(-9,12), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(0,-12), // to -11,-13
  move_rel_xy(-5,12), // to -16,-1
  line_rel_xy(0,-12), // to -16,-13
  move_rel_xy(0,0), // to -16,-13
  line_rel_xy(-9,0), // to -25,-13
  move_rel_xy(0,0), // to -25,-13
  line_rel_xy(-1,12), // to -26,-1
  move_rel_xy(-1,-8), // to -27,-9
  line_rel_xy(-5,0), // to -32,-9
  move_rel_xy(2,0), // to -30,-9
  line_rel_xy(1,-4), // to -29,-13
  move_rel_xy(0,0), // to -29,-13
  line_rel_xy(-9,0), // to -38,-13
  move_rel_xy(0,0), // to -38,-13
  line_rel_xy(-2,12), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(9,0), // to -31,-1
  1
};


const int8 placard232[] = {
  move_rel_xy(-47,-21), // to -47,-21
  line_rel_xy(-11,47), // to -58,26
  move_rel_xy(105,-47), // to 47,-21
  line_rel_xy(-94,0), // to -47,-21
  move_rel_xy(105,47), // to 58,26
  line_rel_xy(-11,-47), // to 47,-21
  move_rel_xy(-105,47), // to -58,26
  line_rel_xy(116,0), // to 58,26
  move_rel_xy(-100,-42), // to -42,-16
  line_rel_xy(-7,35), // to -49,19
  move_rel_xy(91,-35), // to 42,-16
  line_rel_xy(-84,0), // to -42,-16
  move_rel_xy(91,35), // to 49,19
  line_rel_xy(-7,-35), // to 42,-16
  move_rel_xy(-91,35), // to -49,19
  line_rel_xy(98,0), // to 49,19
  move_rel_xy(-78,-5), // to -29,14
  line_rel_xy(13,0), // to -16,14
  move_rel_xy(-7,0), // to -23,14
  line_rel_xy(2,-13), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,13), // to -7,14
  move_rel_xy(0,0), // to -7,14
  line_rel_xy(5,-13), // to -2,1
  move_rel_xy(-7,7), // to -9,8
  line_rel_xy(5,0), // to -4,8
  move_rel_xy(11,-7), // to 7,1
  line_rel_xy(0,13), // to 7,14
  move_rel_xy(10,0), // to 17,14
  line_rel_xy(-1,-13), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(-2,-12), // to 29,-13
  move_rel_xy(2,12), // to 31,-1
  line_rel_xy(9,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-6), // to 39,-7
  move_rel_xy(-2,0), // to 37,-7
  line_rel_xy(1,-6), // to 38,-13
  move_rel_xy(1,6), // to 39,-7
  line_rel_xy(-9,0), // to 30,-7
  move_rel_xy(-6,-6), // to 24,-13
  line_rel_xy(-9,0), // to 15,-13
  move_rel_xy(0,0), // to 15,-13
  line_rel_xy(1,12), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-6), // to 20,-7
  line_rel_xy(-4,0), // to 16,-7
  move_rel_xy(-5,6), // to 11,-1
  line_rel_xy(0,-12), // to 11,-13
  move_rel_xy(0,0), // to 11,-13
  line_rel_xy(-9,12), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-12), // to 2,-13
  move_rel_xy(-4,12), // to -2,-1
  line_rel_xy(0,-12), // to -2,-13
  move_rel_xy(0,0), // to -2,-13
  line_rel_xy(-9,12), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(0,-12), // to -11,-13
  move_rel_xy(-5,12), // to -16,-1
  line_rel_xy(1,-12), // to -15,-13
  move_rel_xy(0,0), // to -15,-13
  line_rel_xy(-9,0), // to -24,-13
  move_rel_xy(0,0), // to -24,-13
  line_rel_xy(-2,12), // to -26,-1
  move_rel_xy(-1,-7), // to -27,-8
  line_rel_xy(-5,0), // to -32,-8
  move_rel_xy(3,0), // to -29,-8
  line_rel_xy(0,-5), // to -29,-13
  move_rel_xy(0,0), // to -29,-13
  line_rel_xy(-9,0), // to -38,-13
  move_rel_xy(0,0), // to -38,-13
  line_rel_xy(-2,12), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(9,0), // to -31,-1
  1
};


const int8 placard230[] = {
  move_rel_xy(-47,-20), // to -47,-20
  line_rel_xy(-11,45), // to -58,25
  move_rel_xy(105,-45), // to 47,-20
  line_rel_xy(-94,0), // to -47,-20
  move_rel_xy(105,45), // to 58,25
  line_rel_xy(-11,-45), // to 47,-20
  move_rel_xy(-105,45), // to -58,25
  line_rel_xy(116,0), // to 58,25
  move_rel_xy(-100,-41), // to -42,-16
  line_rel_xy(-7,35), // to -49,19
  move_rel_xy(91,-35), // to 42,-16
  line_rel_xy(-84,0), // to -42,-16
  move_rel_xy(91,35), // to 49,19
  line_rel_xy(-7,-35), // to 42,-16
  move_rel_xy(-91,35), // to -49,19
  line_rel_xy(98,0), // to 49,19
  move_rel_xy(-78,-5), // to -29,14
  line_rel_xy(13,0), // to -16,14
  move_rel_xy(-7,0), // to -23,14
  line_rel_xy(2,-13), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,13), // to -7,14
  move_rel_xy(0,0), // to -7,14
  line_rel_xy(5,-13), // to -2,1
  move_rel_xy(-7,6), // to -9,7
  line_rel_xy(5,0), // to -4,7
  move_rel_xy(11,-6), // to 7,1
  line_rel_xy(0,13), // to 7,14
  move_rel_xy(10,0), // to 17,14
  line_rel_xy(-1,-13), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(5,-2), // to 31,-1
  line_rel_xy(-2,-11), // to 29,-12
  move_rel_xy(2,11), // to 31,-1
  line_rel_xy(9,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-6), // to 39,-7
  move_rel_xy(-2,0), // to 37,-7
  line_rel_xy(1,-5), // to 38,-12
  move_rel_xy(1,5), // to 39,-7
  line_rel_xy(-9,0), // to 30,-7
  move_rel_xy(-6,-5), // to 24,-12
  line_rel_xy(-9,0), // to 15,-12
  move_rel_xy(0,0), // to 15,-12
  line_rel_xy(1,11), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-6), // to 20,-7
  line_rel_xy(-4,0), // to 16,-7
  move_rel_xy(-5,6), // to 11,-1
  line_rel_xy(0,-11), // to 11,-12
  move_rel_xy(0,0), // to 11,-12
  line_rel_xy(-9,11), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-11), // to 2,-12
  move_rel_xy(-4,11), // to -2,-1
  line_rel_xy(0,-11), // to -2,-12
  move_rel_xy(0,0), // to -2,-12
  line_rel_xy(-9,11), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(0,-11), // to -11,-12
  move_rel_xy(-5,11), // to -16,-1
  line_rel_xy(1,-11), // to -15,-12
  move_rel_xy(0,0), // to -15,-12
  line_rel_xy(-9,0), // to -24,-12
  move_rel_xy(0,0), // to -24,-12
  line_rel_xy(-2,11), // to -26,-1
  move_rel_xy(-1,-7), // to -27,-8
  line_rel_xy(-5,0), // to -32,-8
  move_rel_xy(3,0), // to -29,-8
  line_rel_xy(0,-4), // to -29,-12
  move_rel_xy(0,0), // to -29,-12
  line_rel_xy(-9,0), // to -38,-12
  move_rel_xy(0,0), // to -38,-12
  line_rel_xy(-2,11), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(9,0), // to -31,-1
  1
};


const int8 placard228[] = {
  move_rel_xy(-46,-19), // to -46,-19
  line_rel_xy(-13,43), // to -59,24
  move_rel_xy(105,-43), // to 46,-19
  line_rel_xy(-92,0), // to -46,-19
  move_rel_xy(105,43), // to 59,24
  line_rel_xy(-13,-43), // to 46,-19
  move_rel_xy(-105,43), // to -59,24
  line_rel_xy(118,0), // to 59,24
  move_rel_xy(-101,-39), // to -42,-15
  line_rel_xy(-8,33), // to -50,18
  move_rel_xy(92,-33), // to 42,-15
  line_rel_xy(-84,0), // to -42,-15
  move_rel_xy(92,33), // to 50,18
  line_rel_xy(-8,-33), // to 42,-15
  move_rel_xy(-92,33), // to -50,18
  line_rel_xy(100,0), // to 50,18
  move_rel_xy(-80,-5), // to -30,13
  line_rel_xy(14,0), // to -16,13
  move_rel_xy(-7,0), // to -23,13
  line_rel_xy(2,-12), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,12), // to -7,13
  move_rel_xy(0,0), // to -7,13
  line_rel_xy(5,-12), // to -2,1
  move_rel_xy(-7,6), // to -9,7
  line_rel_xy(5,0), // to -4,7
  move_rel_xy(11,-6), // to 7,1
  line_rel_xy(0,12), // to 7,13
  move_rel_xy(11,0), // to 18,13
  line_rel_xy(-2,-12), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-1,-11), // to 29,-12
  move_rel_xy(1,11), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-5), // to 39,-6
  move_rel_xy(-2,0), // to 37,-6
  line_rel_xy(1,-6), // to 38,-12
  move_rel_xy(1,6), // to 39,-6
  line_rel_xy(-9,0), // to 30,-6
  move_rel_xy(-6,-6), // to 24,-12
  line_rel_xy(-9,0), // to 15,-12
  move_rel_xy(0,0), // to 15,-12
  line_rel_xy(1,11), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-5), // to 20,-6
  line_rel_xy(-4,0), // to 16,-6
  move_rel_xy(-5,5), // to 11,-1
  line_rel_xy(0,-11), // to 11,-12
  move_rel_xy(0,0), // to 11,-12
  line_rel_xy(-9,11), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-11), // to 2,-12
  move_rel_xy(-4,11), // to -2,-1
  line_rel_xy(0,-11), // to -2,-12
  move_rel_xy(0,0), // to -2,-12
  line_rel_xy(-9,11), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(0,-11), // to -11,-12
  move_rel_xy(-5,11), // to -16,-1
  line_rel_xy(1,-11), // to -15,-12
  move_rel_xy(0,0), // to -15,-12
  line_rel_xy(-9,0), // to -24,-12
  move_rel_xy(0,0), // to -24,-12
  line_rel_xy(-2,11), // to -26,-1
  move_rel_xy(-1,-7), // to -27,-8
  line_rel_xy(-5,0), // to -32,-8
  move_rel_xy(3,0), // to -29,-8
  line_rel_xy(0,-4), // to -29,-12
  move_rel_xy(0,0), // to -29,-12
  line_rel_xy(-9,0), // to -38,-12
  move_rel_xy(0,0), // to -38,-12
  line_rel_xy(-2,11), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard226[] = {
  move_rel_xy(-46,-18), // to -46,-18
  line_rel_xy(-13,41), // to -59,23
  move_rel_xy(105,-41), // to 46,-18
  line_rel_xy(-92,0), // to -46,-18
  move_rel_xy(105,41), // to 59,23
  line_rel_xy(-13,-41), // to 46,-18
  move_rel_xy(-105,41), // to -59,23
  line_rel_xy(118,0), // to 59,23
  move_rel_xy(-100,-37), // to -41,-14
  line_rel_xy(-9,31), // to -50,17
  move_rel_xy(91,-31), // to 41,-14
  line_rel_xy(-82,0), // to -41,-14
  move_rel_xy(91,31), // to 50,17
  line_rel_xy(-9,-31), // to 41,-14
  move_rel_xy(-91,31), // to -50,17
  line_rel_xy(100,0), // to 50,17
  move_rel_xy(-80,-4), // to -30,13
  line_rel_xy(14,0), // to -16,13
  move_rel_xy(-7,0), // to -23,13
  line_rel_xy(2,-12), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,12), // to -7,13
  move_rel_xy(0,0), // to -7,13
  line_rel_xy(5,-12), // to -2,1
  move_rel_xy(-7,6), // to -9,7
  line_rel_xy(5,0), // to -4,7
  move_rel_xy(11,-6), // to 7,1
  line_rel_xy(0,12), // to 7,13
  move_rel_xy(11,0), // to 18,13
  line_rel_xy(-2,-12), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-1,-10), // to 29,-11
  move_rel_xy(1,10), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-5), // to 39,-6
  move_rel_xy(-3,0), // to 36,-6
  line_rel_xy(2,-5), // to 38,-11
  move_rel_xy(1,5), // to 39,-6
  line_rel_xy(-10,0), // to 29,-6
  move_rel_xy(-5,-5), // to 24,-11
  line_rel_xy(-9,0), // to 15,-11
  move_rel_xy(0,0), // to 15,-11
  line_rel_xy(1,10), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-5), // to 20,-6
  line_rel_xy(-4,0), // to 16,-6
  move_rel_xy(-5,5), // to 11,-1
  line_rel_xy(0,-10), // to 11,-11
  move_rel_xy(0,0), // to 11,-11
  line_rel_xy(-9,10), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-10), // to 2,-11
  move_rel_xy(-4,10), // to -2,-1
  line_rel_xy(0,-10), // to -2,-11
  move_rel_xy(0,0), // to -2,-11
  line_rel_xy(-9,10), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(0,-10), // to -11,-11
  move_rel_xy(-5,10), // to -16,-1
  line_rel_xy(1,-10), // to -15,-11
  move_rel_xy(0,0), // to -15,-11
  line_rel_xy(-9,0), // to -24,-11
  move_rel_xy(0,0), // to -24,-11
  line_rel_xy(-2,10), // to -26,-1
  move_rel_xy(-1,-6), // to -27,-7
  line_rel_xy(-5,0), // to -32,-7
  move_rel_xy(3,0), // to -29,-7
  line_rel_xy(0,-4), // to -29,-11
  move_rel_xy(0,0), // to -29,-11
  line_rel_xy(-9,0), // to -38,-11
  move_rel_xy(0,0), // to -38,-11
  line_rel_xy(-2,10), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard224[] = {
  move_rel_xy(-46,-17), // to -46,-17
  line_rel_xy(-13,39), // to -59,22
  move_rel_xy(105,-39), // to 46,-17
  line_rel_xy(-92,0), // to -46,-17
  move_rel_xy(105,39), // to 59,22
  line_rel_xy(-13,-39), // to 46,-17
  move_rel_xy(-105,39), // to -59,22
  line_rel_xy(118,0), // to 59,22
  move_rel_xy(-100,-35), // to -41,-13
  line_rel_xy(-9,29), // to -50,16
  move_rel_xy(91,-29), // to 41,-13
  line_rel_xy(-82,0), // to -41,-13
  move_rel_xy(91,29), // to 50,16
  line_rel_xy(-9,-29), // to 41,-13
  move_rel_xy(-91,29), // to -50,16
  line_rel_xy(100,0), // to 50,16
  move_rel_xy(-80,-4), // to -30,12
  line_rel_xy(14,0), // to -16,12
  move_rel_xy(-7,0), // to -23,12
  line_rel_xy(2,-11), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,11), // to -7,12
  move_rel_xy(0,0), // to -7,12
  line_rel_xy(5,-11), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(11,-5), // to 7,1
  line_rel_xy(0,11), // to 7,12
  move_rel_xy(11,0), // to 18,12
  line_rel_xy(-2,-11), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-1,-9), // to 29,-10
  move_rel_xy(1,9), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-5), // to 39,-6
  move_rel_xy(-3,0), // to 36,-6
  line_rel_xy(2,-4), // to 38,-10
  move_rel_xy(1,4), // to 39,-6
  line_rel_xy(-10,0), // to 29,-6
  move_rel_xy(-5,-4), // to 24,-10
  line_rel_xy(-9,0), // to 15,-10
  move_rel_xy(0,0), // to 15,-10
  line_rel_xy(1,9), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-5), // to 20,-6
  line_rel_xy(-4,0), // to 16,-6
  move_rel_xy(-5,5), // to 11,-1
  line_rel_xy(0,-9), // to 11,-10
  move_rel_xy(0,0), // to 11,-10
  line_rel_xy(-9,9), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-9), // to 2,-10
  move_rel_xy(-4,9), // to -2,-1
  line_rel_xy(0,-9), // to -2,-10
  move_rel_xy(0,0), // to -2,-10
  line_rel_xy(-9,9), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(0,-9), // to -11,-10
  move_rel_xy(-5,9), // to -16,-1
  line_rel_xy(1,-9), // to -15,-10
  move_rel_xy(0,0), // to -15,-10
  line_rel_xy(-9,0), // to -24,-10
  move_rel_xy(0,0), // to -24,-10
  line_rel_xy(-2,9), // to -26,-1
  move_rel_xy(-1,-6), // to -27,-7
  line_rel_xy(-5,0), // to -32,-7
  move_rel_xy(3,0), // to -29,-7
  line_rel_xy(0,-3), // to -29,-10
  move_rel_xy(0,0), // to -29,-10
  line_rel_xy(-9,0), // to -38,-10
  move_rel_xy(0,0), // to -38,-10
  line_rel_xy(-2,9), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard222[] = {
  move_rel_xy(-46,-16), // to -46,-16
  line_rel_xy(-14,37), // to -60,21
  move_rel_xy(106,-37), // to 46,-16
  line_rel_xy(-92,0), // to -46,-16
  move_rel_xy(106,37), // to 60,21
  line_rel_xy(-14,-37), // to 46,-16
  move_rel_xy(-106,37), // to -60,21
  line_rel_xy(120,0), // to 60,21
  move_rel_xy(-101,-34), // to -41,-13
  line_rel_xy(-10,29), // to -51,16
  move_rel_xy(92,-29), // to 41,-13
  line_rel_xy(-82,0), // to -41,-13
  move_rel_xy(92,29), // to 51,16
  line_rel_xy(-10,-29), // to 41,-13
  move_rel_xy(-92,29), // to -51,16
  line_rel_xy(102,0), // to 51,16
  move_rel_xy(-81,-4), // to -30,12
  line_rel_xy(14,0), // to -16,12
  move_rel_xy(-7,0), // to -23,12
  line_rel_xy(2,-11), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,11), // to -7,12
  move_rel_xy(0,0), // to -7,12
  line_rel_xy(5,-11), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(11,-5), // to 7,1
  line_rel_xy(0,11), // to 7,12
  move_rel_xy(11,0), // to 18,12
  line_rel_xy(-2,-11), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-1,-9), // to 29,-10
  move_rel_xy(1,9), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-5), // to 39,-6
  move_rel_xy(-3,0), // to 36,-6
  line_rel_xy(1,-4), // to 37,-10
  move_rel_xy(2,4), // to 39,-6
  line_rel_xy(-10,0), // to 29,-6
  move_rel_xy(-5,-4), // to 24,-10
  line_rel_xy(-9,0), // to 15,-10
  move_rel_xy(0,0), // to 15,-10
  line_rel_xy(1,9), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-5), // to 20,-6
  line_rel_xy(-4,0), // to 16,-6
  move_rel_xy(-5,5), // to 11,-1
  line_rel_xy(0,-9), // to 11,-10
  move_rel_xy(0,0), // to 11,-10
  line_rel_xy(-9,9), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-9), // to 2,-10
  move_rel_xy(-4,9), // to -2,-1
  line_rel_xy(0,-9), // to -2,-10
  move_rel_xy(0,0), // to -2,-10
  line_rel_xy(-9,9), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(0,-9), // to -11,-10
  move_rel_xy(-5,9), // to -16,-1
  line_rel_xy(1,-9), // to -15,-10
  move_rel_xy(0,0), // to -15,-10
  line_rel_xy(-9,0), // to -24,-10
  move_rel_xy(0,0), // to -24,-10
  line_rel_xy(-2,9), // to -26,-1
  move_rel_xy(-1,-5), // to -27,-6
  line_rel_xy(-5,0), // to -32,-6
  move_rel_xy(3,0), // to -29,-6
  line_rel_xy(0,-4), // to -29,-10
  move_rel_xy(0,0), // to -29,-10
  line_rel_xy(-8,0), // to -37,-10
  move_rel_xy(0,0), // to -37,-10
  line_rel_xy(-3,9), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard220[] = {
  move_rel_xy(-45,-15), // to -45,-15
  line_rel_xy(-15,35), // to -60,20
  move_rel_xy(105,-35), // to 45,-15
  line_rel_xy(-90,0), // to -45,-15
  move_rel_xy(105,35), // to 60,20
  line_rel_xy(-15,-35), // to 45,-15
  move_rel_xy(-105,35), // to -60,20
  line_rel_xy(120,0), // to 60,20
  move_rel_xy(-101,-32), // to -41,-12
  line_rel_xy(-10,27), // to -51,15
  move_rel_xy(92,-27), // to 41,-12
  line_rel_xy(-82,0), // to -41,-12
  move_rel_xy(92,27), // to 51,15
  line_rel_xy(-10,-27), // to 41,-12
  move_rel_xy(-92,27), // to -51,15
  line_rel_xy(102,0), // to 51,15
  move_rel_xy(-81,-4), // to -30,11
  line_rel_xy(14,0), // to -16,11
  move_rel_xy(-7,0), // to -23,11
  line_rel_xy(2,-10), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,10), // to -7,11
  move_rel_xy(0,0), // to -7,11
  line_rel_xy(5,-10), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(11,-5), // to 7,1
  line_rel_xy(0,10), // to 7,11
  move_rel_xy(11,0), // to 18,11
  line_rel_xy(-2,-10), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-2,-8), // to 28,-9
  move_rel_xy(2,8), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-4), // to 39,-5
  move_rel_xy(-3,0), // to 36,-5
  line_rel_xy(1,-4), // to 37,-9
  move_rel_xy(2,4), // to 39,-5
  line_rel_xy(-10,0), // to 29,-5
  move_rel_xy(-5,-4), // to 24,-9
  line_rel_xy(-9,0), // to 15,-9
  move_rel_xy(0,0), // to 15,-9
  line_rel_xy(1,8), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-4), // to 20,-5
  line_rel_xy(-4,0), // to 16,-5
  move_rel_xy(-5,4), // to 11,-1
  line_rel_xy(-1,-8), // to 10,-9
  move_rel_xy(0,0), // to 10,-9
  line_rel_xy(-8,8), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-8), // to 2,-9
  move_rel_xy(-4,8), // to -2,-1
  line_rel_xy(0,-8), // to -2,-9
  move_rel_xy(0,0), // to -2,-9
  line_rel_xy(-9,8), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(1,-8), // to -10,-9
  move_rel_xy(-6,8), // to -16,-1
  line_rel_xy(1,-8), // to -15,-9
  move_rel_xy(0,0), // to -15,-9
  line_rel_xy(-9,0), // to -24,-9
  move_rel_xy(0,0), // to -24,-9
  line_rel_xy(-2,8), // to -26,-1
  move_rel_xy(-1,-5), // to -27,-6
  line_rel_xy(-5,0), // to -32,-6
  move_rel_xy(3,0), // to -29,-6
  line_rel_xy(1,-3), // to -28,-9
  move_rel_xy(0,0), // to -28,-9
  line_rel_xy(-9,0), // to -37,-9
  move_rel_xy(0,0), // to -37,-9
  line_rel_xy(-3,8), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard218[] = {
  move_rel_xy(-45,-14), // to -45,-14
  line_rel_xy(-16,33), // to -61,19
  move_rel_xy(106,-33), // to 45,-14
  line_rel_xy(-90,0), // to -45,-14
  move_rel_xy(106,33), // to 61,19
  line_rel_xy(-16,-33), // to 45,-14
  move_rel_xy(-106,33), // to -61,19
  line_rel_xy(122,0), // to 61,19
  move_rel_xy(-102,-30), // to -41,-11
  line_rel_xy(-10,25), // to -51,14
  move_rel_xy(92,-25), // to 41,-11
  line_rel_xy(-82,0), // to -41,-11
  move_rel_xy(92,25), // to 51,14
  line_rel_xy(-10,-25), // to 41,-11
  move_rel_xy(-92,25), // to -51,14
  line_rel_xy(102,0), // to 51,14
  move_rel_xy(-81,-4), // to -30,10
  line_rel_xy(14,0), // to -16,10
  move_rel_xy(-7,0), // to -23,10
  line_rel_xy(2,-9), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,9), // to -7,10
  move_rel_xy(0,0), // to -7,10
  line_rel_xy(5,-9), // to -2,1
  move_rel_xy(-7,5), // to -9,6
  line_rel_xy(5,0), // to -4,6
  move_rel_xy(11,-5), // to 7,1
  line_rel_xy(0,9), // to 7,10
  move_rel_xy(11,0), // to 18,10
  line_rel_xy(-2,-9), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-2,-8), // to 28,-9
  move_rel_xy(2,8), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-4), // to 39,-5
  move_rel_xy(-3,0), // to 36,-5
  line_rel_xy(1,-4), // to 37,-9
  move_rel_xy(2,4), // to 39,-5
  line_rel_xy(-10,0), // to 29,-5
  move_rel_xy(-5,-4), // to 24,-9
  line_rel_xy(-9,0), // to 15,-9
  move_rel_xy(0,0), // to 15,-9
  line_rel_xy(1,8), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-4), // to 20,-5
  line_rel_xy(-4,0), // to 16,-5
  move_rel_xy(-5,4), // to 11,-1
  line_rel_xy(-1,-8), // to 10,-9
  move_rel_xy(0,0), // to 10,-9
  line_rel_xy(-8,8), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-8), // to 2,-9
  move_rel_xy(-4,8), // to -2,-1
  line_rel_xy(0,-8), // to -2,-9
  move_rel_xy(0,0), // to -2,-9
  line_rel_xy(-9,8), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(1,-8), // to -10,-9
  move_rel_xy(-6,8), // to -16,-1
  line_rel_xy(1,-8), // to -15,-9
  move_rel_xy(0,0), // to -15,-9
  line_rel_xy(-9,0), // to -24,-9
  move_rel_xy(0,0), // to -24,-9
  line_rel_xy(-2,8), // to -26,-1
  move_rel_xy(-1,-5), // to -27,-6
  line_rel_xy(-4,0), // to -31,-6
  move_rel_xy(2,0), // to -29,-6
  line_rel_xy(1,-3), // to -28,-9
  move_rel_xy(0,0), // to -28,-9
  line_rel_xy(-9,0), // to -37,-9
  move_rel_xy(0,0), // to -37,-9
  line_rel_xy(-3,8), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard216[] = {
  move_rel_xy(-45,-13), // to -45,-13
  line_rel_xy(-16,31), // to -61,18
  move_rel_xy(106,-31), // to 45,-13
  line_rel_xy(-90,0), // to -45,-13
  move_rel_xy(106,31), // to 61,18
  line_rel_xy(-16,-31), // to 45,-13
  move_rel_xy(-106,31), // to -61,18
  line_rel_xy(122,0), // to 61,18
  move_rel_xy(-102,-28), // to -41,-10
  line_rel_xy(-11,23), // to -52,13
  move_rel_xy(93,-23), // to 41,-10
  line_rel_xy(-82,0), // to -41,-10
  move_rel_xy(93,23), // to 52,13
  line_rel_xy(-11,-23), // to 41,-10
  move_rel_xy(-93,23), // to -52,13
  line_rel_xy(104,0), // to 52,13
  move_rel_xy(-82,-3), // to -30,10
  line_rel_xy(14,0), // to -16,10
  move_rel_xy(-7,0), // to -23,10
  line_rel_xy(2,-9), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,9), // to -7,10
  move_rel_xy(0,0), // to -7,10
  line_rel_xy(5,-9), // to -2,1
  move_rel_xy(-7,4), // to -9,5
  line_rel_xy(5,0), // to -4,5
  move_rel_xy(11,-4), // to 7,1
  line_rel_xy(0,9), // to 7,10
  move_rel_xy(11,0), // to 18,10
  line_rel_xy(-2,-9), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-2,-7), // to 28,-8
  move_rel_xy(2,7), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-3), // to 39,-4
  move_rel_xy(-3,0), // to 36,-4
  line_rel_xy(1,-4), // to 37,-8
  move_rel_xy(2,4), // to 39,-4
  line_rel_xy(-10,0), // to 29,-4
  move_rel_xy(-5,-4), // to 24,-8
  line_rel_xy(-9,0), // to 15,-8
  move_rel_xy(0,0), // to 15,-8
  line_rel_xy(1,7), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-3), // to 20,-4
  line_rel_xy(-4,0), // to 16,-4
  move_rel_xy(-5,3), // to 11,-1
  line_rel_xy(-1,-7), // to 10,-8
  move_rel_xy(0,0), // to 10,-8
  line_rel_xy(-8,7), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-7), // to 2,-8
  move_rel_xy(-4,7), // to -2,-1
  line_rel_xy(0,-7), // to -2,-8
  move_rel_xy(0,0), // to -2,-8
  line_rel_xy(-9,7), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(1,-7), // to -10,-8
  move_rel_xy(-6,7), // to -16,-1
  line_rel_xy(1,-7), // to -15,-8
  move_rel_xy(0,0), // to -15,-8
  line_rel_xy(-9,0), // to -24,-8
  move_rel_xy(0,0), // to -24,-8
  line_rel_xy(-2,7), // to -26,-1
  move_rel_xy(-1,-4), // to -27,-5
  line_rel_xy(-4,0), // to -31,-5
  move_rel_xy(2,0), // to -29,-5
  line_rel_xy(1,-3), // to -28,-8
  move_rel_xy(0,0), // to -28,-8
  line_rel_xy(-9,0), // to -37,-8
  move_rel_xy(0,0), // to -37,-8
  line_rel_xy(-3,7), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard214[] = {
  move_rel_xy(-45,-12), // to -45,-12
  line_rel_xy(-17,28), // to -62,16
  move_rel_xy(107,-28), // to 45,-12
  line_rel_xy(-90,0), // to -45,-12
  move_rel_xy(107,28), // to 62,16
  line_rel_xy(-17,-28), // to 45,-12
  move_rel_xy(-107,28), // to -62,16
  line_rel_xy(124,0), // to 62,16
  move_rel_xy(-102,-25), // to -40,-9
  line_rel_xy(-12,21), // to -52,12
  move_rel_xy(92,-21), // to 40,-9
  line_rel_xy(-80,0), // to -40,-9
  move_rel_xy(92,21), // to 52,12
  line_rel_xy(-12,-21), // to 40,-9
  move_rel_xy(-92,21), // to -52,12
  line_rel_xy(104,0), // to 52,12
  move_rel_xy(-82,-3), // to -30,9
  line_rel_xy(14,0), // to -16,9
  move_rel_xy(-7,0), // to -23,9
  line_rel_xy(2,-8), // to -21,1
  move_rel_xy(9,0), // to -12,1
  line_rel_xy(5,8), // to -7,9
  move_rel_xy(0,0), // to -7,9
  line_rel_xy(5,-8), // to -2,1
  move_rel_xy(-7,4), // to -9,5
  line_rel_xy(5,0), // to -4,5
  move_rel_xy(11,-4), // to 7,1
  line_rel_xy(0,8), // to 7,9
  move_rel_xy(11,0), // to 18,9
  line_rel_xy(-2,-8), // to 16,1
  move_rel_xy(0,0), // to 16,1
  line_rel_xy(10,0), // to 26,1
  move_rel_xy(4,-2), // to 30,-1
  line_rel_xy(-2,-6), // to 28,-7
  move_rel_xy(2,6), // to 30,-1
  line_rel_xy(10,0), // to 40,-1
  move_rel_xy(0,0), // to 40,-1
  line_rel_xy(-1,-3), // to 39,-4
  move_rel_xy(-3,0), // to 36,-4
  line_rel_xy(1,-3), // to 37,-7
  move_rel_xy(2,3), // to 39,-4
  line_rel_xy(-10,0), // to 29,-4
  move_rel_xy(-5,-3), // to 24,-7
  line_rel_xy(-9,0), // to 15,-7
  move_rel_xy(0,0), // to 15,-7
  line_rel_xy(1,6), // to 16,-1
  move_rel_xy(0,0), // to 16,-1
  line_rel_xy(10,0), // to 26,-1
  move_rel_xy(-6,-3), // to 20,-4
  line_rel_xy(-4,0), // to 16,-4
  move_rel_xy(-5,3), // to 11,-1
  line_rel_xy(-1,-6), // to 10,-7
  move_rel_xy(0,0), // to 10,-7
  line_rel_xy(-8,6), // to 2,-1
  move_rel_xy(0,0), // to 2,-1
  line_rel_xy(0,-6), // to 2,-7
  move_rel_xy(-4,6), // to -2,-1
  line_rel_xy(0,-6), // to -2,-7
  move_rel_xy(0,0), // to -2,-7
  line_rel_xy(-9,6), // to -11,-1
  move_rel_xy(0,0), // to -11,-1
  line_rel_xy(1,-6), // to -10,-7
  move_rel_xy(-6,6), // to -16,-1
  line_rel_xy(1,-6), // to -15,-7
  move_rel_xy(0,0), // to -15,-7
  line_rel_xy(-9,0), // to -24,-7
  move_rel_xy(0,0), // to -24,-7
  line_rel_xy(-2,6), // to -26,-1
  move_rel_xy(-1,-4), // to -27,-5
  line_rel_xy(-4,0), // to -31,-5
  move_rel_xy(2,0), // to -29,-5
  line_rel_xy(1,-2), // to -28,-7
  move_rel_xy(0,0), // to -28,-7
  line_rel_xy(-9,0), // to -37,-7
  move_rel_xy(0,0), // to -37,-7
  line_rel_xy(-3,6), // to -40,-1
  move_rel_xy(0,0), // to -40,-1
  line_rel_xy(10,0), // to -30,-1
  1
};


const int8 placard212[] = {
  move_rel_xy(-45,-11), // to -45,-11
  line_rel_xy(-17,26), // to -62,15
  move_rel_xy(107,-26), // to 45,-11
  line_rel_xy(-90,0), // to -45,-11
  move_rel_xy(107,26), // to 62,15
  line_rel_xy(-17,-26), // to 45,-11
  move_rel_xy(-107,26), // to -62,15
  line_rel_xy(124,0), // to 62,15
  move_rel_xy(-102,-24), // to -40,-9
  line_rel_xy(-12,20), // to -52,11
  move_rel_xy(92,-20), // to 40,-9
  line_rel_xy(-80,0), // to -40,-9
  move_rel_xy(92,20), // to 52,11
  line_rel_xy(-12,-20), // to 40,-9
  move_rel_xy(-92,20), // to -52,11
  line_rel_xy(104,0), // to 52,11
  move_rel_xy(-83,-3), // to -31,8
  line_rel_xy(15,0), // to -16,8
  move_rel_xy(-7,0), // to -23,8
  line_rel_xy(1,-8), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,8), // to -7,8
  move_rel_xy(0,0), // to -7,8
  line_rel_xy(5,-8), // to -2,0
  move_rel_xy(-7,4), // to -9,4
  line_rel_xy(5,0), // to -4,4
  move_rel_xy(11,-4), // to 7,0
  line_rel_xy(0,8), // to 7,8
  move_rel_xy(11,0), // to 18,8
  line_rel_xy(-2,-8), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-7), // to 28,-7
  move_rel_xy(2,7), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-4), // to 38,-4
  move_rel_xy(-2,0), // to 36,-4
  line_rel_xy(1,-3), // to 37,-7
  move_rel_xy(1,3), // to 38,-4
  line_rel_xy(-9,0), // to 29,-4
  move_rel_xy(-5,-3), // to 24,-7
  line_rel_xy(-9,0), // to 15,-7
  move_rel_xy(0,0), // to 15,-7
  line_rel_xy(1,7), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-4), // to 20,-4
  line_rel_xy(-4,0), // to 16,-4
  move_rel_xy(-5,4), // to 11,0
  line_rel_xy(-1,-7), // to 10,-7
  move_rel_xy(0,0), // to 10,-7
  line_rel_xy(-8,7), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-7), // to 2,-7
  move_rel_xy(-4,7), // to -2,0
  line_rel_xy(0,-7), // to -2,-7
  move_rel_xy(0,0), // to -2,-7
  line_rel_xy(-9,7), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-7), // to -10,-7
  move_rel_xy(-6,7), // to -16,0
  line_rel_xy(1,-7), // to -15,-7
  move_rel_xy(0,0), // to -15,-7
  line_rel_xy(-9,0), // to -24,-7
  move_rel_xy(0,0), // to -24,-7
  line_rel_xy(-2,7), // to -26,0
  move_rel_xy(-1,-4), // to -27,-4
  line_rel_xy(-4,0), // to -31,-4
  move_rel_xy(2,0), // to -29,-4
  line_rel_xy(1,-3), // to -28,-7
  move_rel_xy(0,0), // to -28,-7
  line_rel_xy(-9,0), // to -37,-7
  move_rel_xy(0,0), // to -37,-7
  line_rel_xy(-3,7), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard210[] = {
  move_rel_xy(-44,-10), // to -44,-10
  line_rel_xy(-18,24), // to -62,14
  move_rel_xy(106,-24), // to 44,-10
  line_rel_xy(-88,0), // to -44,-10
  move_rel_xy(106,24), // to 62,14
  line_rel_xy(-18,-24), // to 44,-10
  move_rel_xy(-106,24), // to -62,14
  line_rel_xy(124,0), // to 62,14
  move_rel_xy(-102,-22), // to -40,-8
  line_rel_xy(-12,18), // to -52,10
  move_rel_xy(92,-18), // to 40,-8
  line_rel_xy(-80,0), // to -40,-8
  move_rel_xy(92,18), // to 52,10
  line_rel_xy(-12,-18), // to 40,-8
  move_rel_xy(-92,18), // to -52,10
  line_rel_xy(104,0), // to 52,10
  move_rel_xy(-83,-3), // to -31,7
  line_rel_xy(15,0), // to -16,7
  move_rel_xy(-7,0), // to -23,7
  line_rel_xy(1,-7), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,7), // to -7,7
  move_rel_xy(0,0), // to -7,7
  line_rel_xy(5,-7), // to -2,0
  move_rel_xy(-7,4), // to -9,4
  line_rel_xy(5,0), // to -4,4
  move_rel_xy(11,-4), // to 7,0
  line_rel_xy(0,7), // to 7,7
  move_rel_xy(11,0), // to 18,7
  line_rel_xy(-2,-7), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-6), // to 28,-6
  move_rel_xy(2,6), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-3), // to 38,-3
  move_rel_xy(-2,0), // to 36,-3
  line_rel_xy(1,-3), // to 37,-6
  move_rel_xy(1,3), // to 38,-3
  line_rel_xy(-9,0), // to 29,-3
  move_rel_xy(-5,-3), // to 24,-6
  line_rel_xy(-9,0), // to 15,-6
  move_rel_xy(0,0), // to 15,-6
  line_rel_xy(1,6), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-3), // to 20,-3
  line_rel_xy(-4,0), // to 16,-3
  move_rel_xy(-5,3), // to 11,0
  line_rel_xy(-1,-6), // to 10,-6
  move_rel_xy(0,0), // to 10,-6
  line_rel_xy(-8,6), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-6), // to 2,-6
  move_rel_xy(-4,6), // to -2,0
  line_rel_xy(0,-6), // to -2,-6
  move_rel_xy(0,0), // to -2,-6
  line_rel_xy(-9,6), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-6), // to -10,-6
  move_rel_xy(-6,6), // to -16,0
  line_rel_xy(1,-6), // to -15,-6
  move_rel_xy(0,0), // to -15,-6
  line_rel_xy(-9,0), // to -24,-6
  move_rel_xy(0,0), // to -24,-6
  line_rel_xy(-2,6), // to -26,0
  move_rel_xy(-1,-4), // to -27,-4
  line_rel_xy(-4,0), // to -31,-4
  move_rel_xy(2,0), // to -29,-4
  line_rel_xy(1,-2), // to -28,-6
  move_rel_xy(0,0), // to -28,-6
  line_rel_xy(-9,0), // to -37,-6
  move_rel_xy(0,0), // to -37,-6
  line_rel_xy(-3,6), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard208[] = {
  move_rel_xy(-44,-9), // to -44,-9
  line_rel_xy(-19,21), // to -63,12
  move_rel_xy(107,-21), // to 44,-9
  line_rel_xy(-88,0), // to -44,-9
  move_rel_xy(107,21), // to 63,12
  line_rel_xy(-19,-21), // to 44,-9
  move_rel_xy(-107,21), // to -63,12
  line_rel_xy(126,0), // to 63,12
  move_rel_xy(-103,-19), // to -40,-7
  line_rel_xy(-12,16), // to -52,9
  move_rel_xy(92,-16), // to 40,-7
  line_rel_xy(-80,0), // to -40,-7
  move_rel_xy(92,16), // to 52,9
  line_rel_xy(-12,-16), // to 40,-7
  move_rel_xy(-92,16), // to -52,9
  line_rel_xy(104,0), // to 52,9
  move_rel_xy(-83,-3), // to -31,6
  line_rel_xy(15,0), // to -16,6
  move_rel_xy(-8,0), // to -24,6
  line_rel_xy(2,-6), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,6), // to -7,6
  move_rel_xy(0,0), // to -7,6
  line_rel_xy(5,-6), // to -2,0
  move_rel_xy(-7,3), // to -9,3
  line_rel_xy(5,0), // to -4,3
  move_rel_xy(11,-3), // to 7,0
  line_rel_xy(0,6), // to 7,6
  move_rel_xy(11,0), // to 18,6
  line_rel_xy(-2,-6), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-5), // to 28,-5
  move_rel_xy(2,5), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-3), // to 38,-3
  move_rel_xy(-2,0), // to 36,-3
  line_rel_xy(1,-2), // to 37,-5
  move_rel_xy(1,2), // to 38,-3
  line_rel_xy(-9,0), // to 29,-3
  move_rel_xy(-6,-2), // to 23,-5
  line_rel_xy(-8,0), // to 15,-5
  move_rel_xy(0,0), // to 15,-5
  line_rel_xy(1,5), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-3), // to 20,-3
  line_rel_xy(-5,0), // to 15,-3
  move_rel_xy(-4,3), // to 11,0
  line_rel_xy(-1,-5), // to 10,-5
  move_rel_xy(0,0), // to 10,-5
  line_rel_xy(-8,5), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-5), // to 2,-5
  move_rel_xy(-4,5), // to -2,0
  line_rel_xy(0,-5), // to -2,-5
  move_rel_xy(0,0), // to -2,-5
  line_rel_xy(-9,5), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-5), // to -10,-5
  move_rel_xy(-6,5), // to -16,0
  line_rel_xy(1,-5), // to -15,-5
  move_rel_xy(0,0), // to -15,-5
  line_rel_xy(-8,0), // to -23,-5
  move_rel_xy(0,0), // to -23,-5
  line_rel_xy(-3,5), // to -26,0
  move_rel_xy(0,-3), // to -26,-3
  line_rel_xy(-5,0), // to -31,-3
  move_rel_xy(2,0), // to -29,-3
  line_rel_xy(1,-2), // to -28,-5
  move_rel_xy(0,0), // to -28,-5
  line_rel_xy(-9,0), // to -37,-5
  move_rel_xy(0,0), // to -37,-5
  line_rel_xy(-3,5), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard206[] = {
  move_rel_xy(-44,-7), // to -44,-7
  line_rel_xy(-19,18), // to -63,11
  move_rel_xy(107,-18), // to 44,-7
  line_rel_xy(-88,0), // to -44,-7
  move_rel_xy(107,18), // to 63,11
  line_rel_xy(-19,-18), // to 44,-7
  move_rel_xy(-107,18), // to -63,11
  line_rel_xy(126,0), // to 63,11
  move_rel_xy(-103,-17), // to -40,-6
  line_rel_xy(-13,14), // to -53,8
  move_rel_xy(93,-14), // to 40,-6
  line_rel_xy(-80,0), // to -40,-6
  move_rel_xy(93,14), // to 53,8
  line_rel_xy(-13,-14), // to 40,-6
  move_rel_xy(-93,14), // to -53,8
  line_rel_xy(106,0), // to 53,8
  move_rel_xy(-84,-2), // to -31,6
  line_rel_xy(15,0), // to -16,6
  move_rel_xy(-8,0), // to -24,6
  line_rel_xy(2,-6), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,6), // to -7,6
  move_rel_xy(0,0), // to -7,6
  line_rel_xy(5,-6), // to -2,0
  move_rel_xy(-8,3), // to -10,3
  line_rel_xy(5,0), // to -5,3
  move_rel_xy(12,-3), // to 7,0
  line_rel_xy(0,6), // to 7,6
  move_rel_xy(11,0), // to 18,6
  line_rel_xy(-2,-6), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-5), // to 28,-5
  move_rel_xy(2,5), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-3), // to 38,-3
  move_rel_xy(-2,0), // to 36,-3
  line_rel_xy(1,-2), // to 37,-5
  move_rel_xy(1,2), // to 38,-3
  line_rel_xy(-9,0), // to 29,-3
  move_rel_xy(-6,-2), // to 23,-5
  line_rel_xy(-8,0), // to 15,-5
  move_rel_xy(0,0), // to 15,-5
  line_rel_xy(1,5), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-3), // to 20,-3
  line_rel_xy(-5,0), // to 15,-3
  move_rel_xy(-4,3), // to 11,0
  line_rel_xy(-1,-5), // to 10,-5
  move_rel_xy(0,0), // to 10,-5
  line_rel_xy(-8,5), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-5), // to 2,-5
  move_rel_xy(-4,5), // to -2,0
  line_rel_xy(0,-5), // to -2,-5
  move_rel_xy(0,0), // to -2,-5
  line_rel_xy(-9,5), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-5), // to -10,-5
  move_rel_xy(-6,5), // to -16,0
  line_rel_xy(1,-5), // to -15,-5
  move_rel_xy(0,0), // to -15,-5
  line_rel_xy(-8,0), // to -23,-5
  move_rel_xy(0,0), // to -23,-5
  line_rel_xy(-3,5), // to -26,0
  move_rel_xy(0,-3), // to -26,-3
  line_rel_xy(-5,0), // to -31,-3
  move_rel_xy(2,0), // to -29,-3
  line_rel_xy(1,-2), // to -28,-5
  move_rel_xy(0,0), // to -28,-5
  line_rel_xy(-9,0), // to -37,-5
  move_rel_xy(0,0), // to -37,-5
  line_rel_xy(-3,5), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard204[] = {
  move_rel_xy(-44,-6), // to -44,-6
  line_rel_xy(-19,15), // to -63,9
  move_rel_xy(107,-15), // to 44,-6
  line_rel_xy(-88,0), // to -44,-6
  move_rel_xy(107,15), // to 63,9
  line_rel_xy(-19,-15), // to 44,-6
  move_rel_xy(-107,15), // to -63,9
  line_rel_xy(126,0), // to 63,9
  move_rel_xy(-103,-14), // to -40,-5
  line_rel_xy(-13,12), // to -53,7
  move_rel_xy(93,-12), // to 40,-5
  line_rel_xy(-80,0), // to -40,-5
  move_rel_xy(93,12), // to 53,7
  line_rel_xy(-13,-12), // to 40,-5
  move_rel_xy(-93,12), // to -53,7
  line_rel_xy(106,0), // to 53,7
  move_rel_xy(-84,-2), // to -31,5
  line_rel_xy(15,0), // to -16,5
  move_rel_xy(-8,0), // to -24,5
  line_rel_xy(2,-5), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,5), // to -7,5
  move_rel_xy(0,0), // to -7,5
  line_rel_xy(5,-5), // to -2,0
  move_rel_xy(-8,2), // to -10,2
  line_rel_xy(5,0), // to -5,2
  move_rel_xy(12,-2), // to 7,0
  line_rel_xy(0,5), // to 7,5
  move_rel_xy(11,0), // to 18,5
  line_rel_xy(-2,-5), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-4), // to 28,-4
  move_rel_xy(2,4), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-2), // to 38,-2
  move_rel_xy(-2,0), // to 36,-2
  line_rel_xy(1,-2), // to 37,-4
  move_rel_xy(1,2), // to 38,-2
  line_rel_xy(-9,0), // to 29,-2
  move_rel_xy(-6,-2), // to 23,-4
  line_rel_xy(-8,0), // to 15,-4
  move_rel_xy(0,0), // to 15,-4
  line_rel_xy(1,4), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-2), // to 20,-2
  line_rel_xy(-5,0), // to 15,-2
  move_rel_xy(-4,2), // to 11,0
  line_rel_xy(-1,-4), // to 10,-4
  move_rel_xy(0,0), // to 10,-4
  line_rel_xy(-8,4), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-4), // to 2,-4
  move_rel_xy(-4,4), // to -2,0
  line_rel_xy(0,-4), // to -2,-4
  move_rel_xy(0,0), // to -2,-4
  line_rel_xy(-9,4), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-4), // to -10,-4
  move_rel_xy(-6,4), // to -16,0
  line_rel_xy(1,-4), // to -15,-4
  move_rel_xy(0,0), // to -15,-4
  line_rel_xy(-8,0), // to -23,-4
  move_rel_xy(0,0), // to -23,-4
  line_rel_xy(-3,4), // to -26,0
  move_rel_xy(0,-3), // to -26,-3
  line_rel_xy(-5,0), // to -31,-3
  move_rel_xy(2,0), // to -29,-3
  line_rel_xy(1,-1), // to -28,-4
  move_rel_xy(0,0), // to -28,-4
  line_rel_xy(-9,0), // to -37,-4
  move_rel_xy(0,0), // to -37,-4
  line_rel_xy(-3,4), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard202[] = {
  move_rel_xy(-44,-5), // to -44,-5
  line_rel_xy(-19,13), // to -63,8
  move_rel_xy(107,-13), // to 44,-5
  line_rel_xy(-88,0), // to -44,-5
  move_rel_xy(107,13), // to 63,8
  line_rel_xy(-19,-13), // to 44,-5
  move_rel_xy(-107,13), // to -63,8
  line_rel_xy(126,0), // to 63,8
  move_rel_xy(-103,-12), // to -40,-4
  line_rel_xy(-13,10), // to -53,6
  move_rel_xy(93,-10), // to 40,-4
  line_rel_xy(-80,0), // to -40,-4
  move_rel_xy(93,10), // to 53,6
  line_rel_xy(-13,-10), // to 40,-4
  move_rel_xy(-93,10), // to -53,6
  line_rel_xy(106,0), // to 53,6
  move_rel_xy(-84,-2), // to -31,4
  line_rel_xy(15,0), // to -16,4
  move_rel_xy(-8,0), // to -24,4
  line_rel_xy(2,-4), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,4), // to -7,4
  move_rel_xy(0,0), // to -7,4
  line_rel_xy(5,-4), // to -2,0
  move_rel_xy(-8,2), // to -10,2
  line_rel_xy(5,0), // to -5,2
  move_rel_xy(12,-2), // to 7,0
  line_rel_xy(0,4), // to 7,4
  move_rel_xy(11,0), // to 18,4
  line_rel_xy(-2,-4), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-3), // to 28,-3
  move_rel_xy(2,3), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-2), // to 38,-2
  move_rel_xy(-2,0), // to 36,-2
  line_rel_xy(0,-1), // to 36,-3
  move_rel_xy(2,1), // to 38,-2
  line_rel_xy(-9,0), // to 29,-2
  move_rel_xy(-6,-1), // to 23,-3
  line_rel_xy(-8,0), // to 15,-3
  move_rel_xy(0,0), // to 15,-3
  line_rel_xy(1,3), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-2), // to 20,-2
  line_rel_xy(-5,0), // to 15,-2
  move_rel_xy(-4,2), // to 11,0
  line_rel_xy(-1,-3), // to 10,-3
  move_rel_xy(0,0), // to 10,-3
  line_rel_xy(-8,3), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-3), // to 2,-3
  move_rel_xy(-4,3), // to -2,0
  line_rel_xy(0,-3), // to -2,-3
  move_rel_xy(0,0), // to -2,-3
  line_rel_xy(-9,3), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-3), // to -10,-3
  move_rel_xy(-6,3), // to -16,0
  line_rel_xy(1,-3), // to -15,-3
  move_rel_xy(0,0), // to -15,-3
  line_rel_xy(-8,0), // to -23,-3
  move_rel_xy(0,0), // to -23,-3
  line_rel_xy(-3,3), // to -26,0
  move_rel_xy(0,-2), // to -26,-2
  line_rel_xy(-5,0), // to -31,-2
  move_rel_xy(2,0), // to -29,-2
  line_rel_xy(1,-1), // to -28,-3
  move_rel_xy(0,0), // to -28,-3
  line_rel_xy(-8,0), // to -36,-3
  move_rel_xy(0,0), // to -36,-3
  line_rel_xy(-4,3), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard200[] = {
  move_rel_xy(-44,-4), // to -44,-4
  line_rel_xy(-19,10), // to -63,6
  move_rel_xy(107,-10), // to 44,-4
  line_rel_xy(-88,0), // to -44,-4
  move_rel_xy(107,10), // to 63,6
  line_rel_xy(-19,-10), // to 44,-4
  move_rel_xy(-107,10), // to -63,6
  line_rel_xy(126,0), // to 63,6
  move_rel_xy(-103,-9), // to -40,-3
  line_rel_xy(-13,7), // to -53,4
  move_rel_xy(93,-7), // to 40,-3
  line_rel_xy(-80,0), // to -40,-3
  move_rel_xy(93,7), // to 53,4
  line_rel_xy(-13,-7), // to 40,-3
  move_rel_xy(-93,7), // to -53,4
  line_rel_xy(106,0), // to 53,4
  move_rel_xy(-84,-1), // to -31,3
  line_rel_xy(15,0), // to -16,3
  move_rel_xy(-8,0), // to -24,3
  line_rel_xy(2,-3), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,3), // to -7,3
  move_rel_xy(0,0), // to -7,3
  line_rel_xy(5,-3), // to -2,0
  move_rel_xy(-8,1), // to -10,1
  line_rel_xy(5,0), // to -5,1
  move_rel_xy(12,-1), // to 7,0
  line_rel_xy(0,3), // to 7,3
  move_rel_xy(11,0), // to 18,3
  line_rel_xy(-2,-3), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-2), // to 28,-2
  move_rel_xy(2,2), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-1), // to 38,-1
  move_rel_xy(-2,0), // to 36,-1
  line_rel_xy(0,-1), // to 36,-2
  move_rel_xy(2,1), // to 38,-1
  line_rel_xy(-9,0), // to 29,-1
  move_rel_xy(-6,-1), // to 23,-2
  line_rel_xy(-8,0), // to 15,-2
  move_rel_xy(0,0), // to 15,-2
  line_rel_xy(1,2), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-1), // to 20,-1
  line_rel_xy(-5,0), // to 15,-1
  move_rel_xy(-4,1), // to 11,0
  line_rel_xy(-1,-2), // to 10,-2
  move_rel_xy(0,0), // to 10,-2
  line_rel_xy(-8,2), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-2), // to 2,-2
  move_rel_xy(-4,2), // to -2,0
  line_rel_xy(0,-2), // to -2,-2
  line_rel_xy(-9,2), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-2), // to -10,-2
  move_rel_xy(-6,2), // to -16,0
  line_rel_xy(1,-2), // to -15,-2
  move_rel_xy(0,0), // to -15,-2
  line_rel_xy(-8,0), // to -23,-2
  move_rel_xy(0,0), // to -23,-2
  line_rel_xy(-3,2), // to -26,0
  move_rel_xy(0,-1), // to -26,-1
  line_rel_xy(-5,0), // to -31,-1
  move_rel_xy(2,0), // to -29,-1
  line_rel_xy(1,-1), // to -28,-2
  move_rel_xy(0,0), // to -28,-2
  line_rel_xy(-8,0), // to -36,-2
  move_rel_xy(0,0), // to -36,-2
  line_rel_xy(-4,2), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard198[] = {
  move_rel_xy(-44,-3), // to -44,-3
  line_rel_xy(-19,7), // to -63,4
  move_rel_xy(107,-7), // to 44,-3
  line_rel_xy(-88,0), // to -44,-3
  move_rel_xy(107,7), // to 63,4
  line_rel_xy(-19,-7), // to 44,-3
  move_rel_xy(-107,7), // to -63,4
  line_rel_xy(126,0), // to 63,4
  move_rel_xy(-103,-6), // to -40,-2
  line_rel_xy(-13,5), // to -53,3
  move_rel_xy(93,-5), // to 40,-2
  line_rel_xy(-80,0), // to -40,-2
  move_rel_xy(93,5), // to 53,3
  line_rel_xy(-13,-5), // to 40,-2
  move_rel_xy(-93,5), // to -53,3
  line_rel_xy(106,0), // to 53,3
  move_rel_xy(-84,-1), // to -31,2
  line_rel_xy(15,0), // to -16,2
  move_rel_xy(-8,0), // to -24,2
  line_rel_xy(2,-2), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,2), // to -7,2
  move_rel_xy(0,0), // to -7,2
  line_rel_xy(5,-2), // to -2,0
  move_rel_xy(-8,1), // to -10,1
  line_rel_xy(5,0), // to -5,1
  move_rel_xy(12,-1), // to 7,0
  line_rel_xy(0,2), // to 7,2
  move_rel_xy(11,0), // to 18,2
  line_rel_xy(-2,-2), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-2), // to 28,-2
  move_rel_xy(2,2), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,-1), // to 38,-1
  move_rel_xy(-2,0), // to 36,-1
  line_rel_xy(0,-1), // to 36,-2
  move_rel_xy(2,1), // to 38,-1
  line_rel_xy(-9,0), // to 29,-1
  move_rel_xy(-6,-1), // to 23,-2
  line_rel_xy(-8,0), // to 15,-2
  move_rel_xy(0,0), // to 15,-2
  line_rel_xy(1,2), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,-1), // to 20,-1
  line_rel_xy(-5,0), // to 15,-1
  move_rel_xy(-4,1), // to 11,0
  line_rel_xy(-1,-2), // to 10,-2
  move_rel_xy(0,0), // to 10,-2
  line_rel_xy(-8,2), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-2), // to 2,-2
  move_rel_xy(-4,2), // to -2,0
  line_rel_xy(0,-2), // to -2,-2
  line_rel_xy(-9,2), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-2), // to -10,-2
  move_rel_xy(-6,2), // to -16,0
  line_rel_xy(1,-2), // to -15,-2
  move_rel_xy(0,0), // to -15,-2
  line_rel_xy(-8,0), // to -23,-2
  move_rel_xy(0,0), // to -23,-2
  line_rel_xy(-3,2), // to -26,0
  move_rel_xy(0,-1), // to -26,-1
  line_rel_xy(-5,0), // to -31,-1
  move_rel_xy(2,0), // to -29,-1
  line_rel_xy(1,-1), // to -28,-2
  move_rel_xy(0,0), // to -28,-2
  line_rel_xy(-8,0), // to -36,-2
  move_rel_xy(0,0), // to -36,-2
  line_rel_xy(-4,2), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard196[] = {
  move_rel_xy(-44,-2), // to -44,-2
  line_rel_xy(-19,5), // to -63,3
  move_rel_xy(107,-5), // to 44,-2
  line_rel_xy(-88,0), // to -44,-2
  move_rel_xy(107,5), // to 63,3
  line_rel_xy(-19,-5), // to 44,-2
  move_rel_xy(-107,5), // to -63,3
  line_rel_xy(126,0), // to 63,3
  move_rel_xy(-103,-4), // to -40,-1
  line_rel_xy(-13,3), // to -53,2
  move_rel_xy(93,-3), // to 40,-1
  line_rel_xy(-80,0), // to -40,-1
  move_rel_xy(93,3), // to 53,2
  line_rel_xy(-13,-3), // to 40,-1
  move_rel_xy(-93,3), // to -53,2
  line_rel_xy(106,0), // to 53,2
  move_rel_xy(-84,-1), // to -31,1
  line_rel_xy(15,0), // to -16,1
  move_rel_xy(-8,0), // to -24,1
  line_rel_xy(2,-1), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,1), // to -7,1
  move_rel_xy(0,0), // to -7,1
  line_rel_xy(5,-1), // to -2,0
  move_rel_xy(-8,0), // to -10,0
  line_rel_xy(5,0), // to -5,0
  move_rel_xy(12,0), // to 7,0
  line_rel_xy(0,1), // to 7,1
  move_rel_xy(11,0), // to 18,1
  line_rel_xy(-2,-1), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,-1), // to 28,-1
  move_rel_xy(2,1), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,0), // to 38,0
  move_rel_xy(-2,0), // to 36,0
  line_rel_xy(0,-1), // to 36,-1
  move_rel_xy(2,1), // to 38,0
  line_rel_xy(-9,0), // to 29,0
  move_rel_xy(-6,-1), // to 23,-1
  line_rel_xy(-8,0), // to 15,-1
  move_rel_xy(0,0), // to 15,-1
  line_rel_xy(1,1), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,0), // to 20,0
  line_rel_xy(-5,0), // to 15,0
  move_rel_xy(-4,0), // to 11,0
  line_rel_xy(-1,-1), // to 10,-1
  move_rel_xy(0,0), // to 10,-1
  line_rel_xy(-8,1), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,-1), // to 2,-1
  move_rel_xy(-4,1), // to -2,0
  line_rel_xy(0,-1), // to -2,-1
  move_rel_xy(0,0), // to -2,-1
  line_rel_xy(-9,1), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,-1), // to -10,-1
  move_rel_xy(-6,1), // to -16,0
  line_rel_xy(1,-1), // to -15,-1
  move_rel_xy(0,0), // to -15,-1
  line_rel_xy(-8,0), // to -23,-1
  move_rel_xy(0,0), // to -23,-1
  line_rel_xy(-3,1), // to -26,0
  move_rel_xy(0,0), // to -26,0
  line_rel_xy(-5,0), // to -31,0
  move_rel_xy(2,0), // to -29,0
  line_rel_xy(1,-1), // to -28,-1
  move_rel_xy(0,0), // to -28,-1
  line_rel_xy(-8,0), // to -36,-1
  move_rel_xy(0,0), // to -36,-1
  line_rel_xy(-4,1), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard194[] = {
  move_rel_xy(-44,0), // to -44,0
  line_rel_xy(-19,1), // to -63,1
  move_rel_xy(107,-1), // to 44,0
  line_rel_xy(-88,0), // to -44,0
  move_rel_xy(107,1), // to 63,1
  line_rel_xy(-19,-1), // to 44,0
  move_rel_xy(-107,1), // to -63,1
  line_rel_xy(126,0), // to 63,1
  move_rel_xy(-103,-1), // to -40,0
  line_rel_xy(-13,1), // to -53,1
  move_rel_xy(93,-1), // to 40,0
  line_rel_xy(-80,0), // to -40,0
  move_rel_xy(93,1), // to 53,1
  line_rel_xy(-13,-1), // to 40,0
  move_rel_xy(-93,1), // to -53,1
  line_rel_xy(106,0), // to 53,1
  move_rel_xy(-84,-1), // to -31,0
  line_rel_xy(15,0), // to -16,0
  move_rel_xy(-8,0), // to -24,0
  line_rel_xy(2,0), // to -22,0
  move_rel_xy(10,0), // to -12,0
  line_rel_xy(5,0), // to -7,0
  move_rel_xy(0,0), // to -7,0
  line_rel_xy(5,0), // to -2,0
  move_rel_xy(-8,0), // to -10,0
  line_rel_xy(5,0), // to -5,0
  move_rel_xy(12,0), // to 7,0
  line_rel_xy(0,0), // to 7,0
  move_rel_xy(11,0), // to 18,0
  line_rel_xy(-2,0), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(4,0), // to 30,0
  line_rel_xy(-2,0), // to 28,0
  move_rel_xy(2,0), // to 30,0
  line_rel_xy(10,0), // to 40,0
  move_rel_xy(0,0), // to 40,0
  line_rel_xy(-2,0), // to 38,0
  move_rel_xy(-2,0), // to 36,0
  line_rel_xy(0,0), // to 36,0
  move_rel_xy(2,0), // to 38,0
  line_rel_xy(-9,0), // to 29,0
  move_rel_xy(-6,0), // to 23,0
  line_rel_xy(-8,0), // to 15,0
  move_rel_xy(0,0), // to 15,0
  line_rel_xy(1,0), // to 16,0
  move_rel_xy(0,0), // to 16,0
  line_rel_xy(10,0), // to 26,0
  move_rel_xy(-6,0), // to 20,0
  line_rel_xy(-5,0), // to 15,0
  move_rel_xy(-4,0), // to 11,0
  line_rel_xy(-1,0), // to 10,0
  move_rel_xy(0,0), // to 10,0
  line_rel_xy(-8,0), // to 2,0
  move_rel_xy(0,0), // to 2,0
  line_rel_xy(0,0), // to 2,0
  move_rel_xy(-4,0), // to -2,0
  line_rel_xy(0,0), // to -2,0
  move_rel_xy(0,0), // to -2,0
  line_rel_xy(-9,0), // to -11,0
  move_rel_xy(0,0), // to -11,0
  line_rel_xy(1,0), // to -10,0
  move_rel_xy(-6,0), // to -16,0
  line_rel_xy(1,0), // to -15,0
  move_rel_xy(0,0), // to -15,0
  line_rel_xy(-8,0), // to -23,0
  move_rel_xy(0,0), // to -23,0
  line_rel_xy(-3,0), // to -26,0
  move_rel_xy(0,0), // to -26,0
  line_rel_xy(-5,0), // to -31,0
  move_rel_xy(2,0), // to -29,0
  line_rel_xy(1,0), // to -28,0
  move_rel_xy(0,0), // to -28,0
  line_rel_xy(-8,0), // to -36,0
  move_rel_xy(0,0), // to -36,0
  line_rel_xy(-4,0), // to -40,0
  move_rel_xy(0,0), // to -40,0
  line_rel_xy(10,0), // to -30,0
  1
};


const int8 placard192[] = {
  move_rel_xy(-44,0), // to -44,0
  line_rel_xy(-19,0), // to -63,0
  move_rel_xy(107,0), // to 44,0
  line_rel_xy(-88,0), // to -44,0
  move_rel_xy(107,0), // to 63,0
  line_rel_xy(-19,0), // to 44,0
  move_rel_xy(-107,0), // to -63,0
  line_rel_xy(126,0), // to 63,0
  move_rel_xy(-103,0), // to -40,0
  line_rel_xy(-13,0), // to -53,0
  move_rel_xy(93,0), // to 40,0
  line_rel_xy(-80,0), // to -40,0
  move_rel_xy(93,0), // to 53,0
  line_rel_xy(-13,0), // to 40,0
  move_rel_xy(-93,0), // to -53,0
  line_rel_xy(106,0), // to 53,0
  1
};


const int8 placard190[] = {
  move_rel_xy(-44,0), // to -44,0
  line_rel_xy(-19,-1), // to -63,-1
  move_rel_xy(107,1), // to 44,0
  line_rel_xy(-88,0), // to -44,0
  move_rel_xy(107,-1), // to 63,-1
  line_rel_xy(-19,1), // to 44,0
  move_rel_xy(-107,-1), // to -63,-1
  line_rel_xy(126,0), // to 63,-1
  move_rel_xy(-103,1), // to -40,0
  line_rel_xy(-13,-1), // to -53,-1
  move_rel_xy(93,1), // to 40,0
  line_rel_xy(-80,0), // to -40,0
  move_rel_xy(93,-1), // to 53,-1
  line_rel_xy(-13,1), // to 40,0
  move_rel_xy(-93,-1), // to -53,-1
  line_rel_xy(106,0), // to 53,-1
  1
};


const int8 placard188[] = {
  move_rel_xy(-44,2), // to -44,2
  line_rel_xy(-19,-5), // to -63,-3
  move_rel_xy(107,5), // to 44,2
  line_rel_xy(-88,0), // to -44,2
  move_rel_xy(107,-5), // to 63,-3
  line_rel_xy(-19,5), // to 44,2
  move_rel_xy(-107,-5), // to -63,-3
  line_rel_xy(126,0), // to 63,-3
  move_rel_xy(-103,4), // to -40,1
  line_rel_xy(-13,-3), // to -53,-2
  move_rel_xy(93,3), // to 40,1
  line_rel_xy(-80,0), // to -40,1
  move_rel_xy(93,-3), // to 53,-2
  line_rel_xy(-13,3), // to 40,1
  move_rel_xy(-93,-3), // to -53,-2
  line_rel_xy(106,0), // to 53,-2
  1
};


const int8 placard186[] = {
  move_rel_xy(-44,3), // to -44,3
  line_rel_xy(-19,-7), // to -63,-4
  move_rel_xy(107,7), // to 44,3
  line_rel_xy(-88,0), // to -44,3
  move_rel_xy(107,-7), // to 63,-4
  line_rel_xy(-19,7), // to 44,3
  move_rel_xy(-107,-7), // to -63,-4
  line_rel_xy(126,0), // to 63,-4
  move_rel_xy(-103,6), // to -40,2
  line_rel_xy(-13,-5), // to -53,-3
  move_rel_xy(93,5), // to 40,2
  line_rel_xy(-80,0), // to -40,2
  move_rel_xy(93,-5), // to 53,-3
  line_rel_xy(-13,5), // to 40,2
  move_rel_xy(-93,-5), // to -53,-3
  line_rel_xy(106,0), // to 53,-3
  1
};


const int8 placard184[] = {
  move_rel_xy(-44,4), // to -44,4
  line_rel_xy(-19,-10), // to -63,-6
  move_rel_xy(107,10), // to 44,4
  line_rel_xy(-88,0), // to -44,4
  move_rel_xy(107,-10), // to 63,-6
  line_rel_xy(-19,10), // to 44,4
  move_rel_xy(-107,-10), // to -63,-6
  line_rel_xy(126,0), // to 63,-6
  move_rel_xy(-103,9), // to -40,3
  line_rel_xy(-13,-7), // to -53,-4
  move_rel_xy(93,7), // to 40,3
  line_rel_xy(-80,0), // to -40,3
  move_rel_xy(93,-7), // to 53,-4
  line_rel_xy(-13,7), // to 40,3
  move_rel_xy(-93,-7), // to -53,-4
  line_rel_xy(106,0), // to 53,-4
  1
};


const int8 placard182[] = {
  move_rel_xy(-44,5), // to -44,5
  line_rel_xy(-19,-13), // to -63,-8
  move_rel_xy(107,13), // to 44,5
  line_rel_xy(-88,0), // to -44,5
  move_rel_xy(107,-13), // to 63,-8
  line_rel_xy(-19,13), // to 44,5
  move_rel_xy(-107,-13), // to -63,-8
  line_rel_xy(126,0), // to 63,-8
  move_rel_xy(-103,12), // to -40,4
  line_rel_xy(-13,-10), // to -53,-6
  move_rel_xy(93,10), // to 40,4
  line_rel_xy(-80,0), // to -40,4
  move_rel_xy(93,-10), // to 53,-6
  line_rel_xy(-13,10), // to 40,4
  move_rel_xy(-93,-10), // to -53,-6
  line_rel_xy(106,0), // to 53,-6
  1
};


const int8 placard180[] = {
  move_rel_xy(-44,6), // to -44,6
  line_rel_xy(-19,-15), // to -63,-9
  move_rel_xy(107,15), // to 44,6
  line_rel_xy(-88,0), // to -44,6
  move_rel_xy(107,-15), // to 63,-9
  line_rel_xy(-19,15), // to 44,6
  move_rel_xy(-107,-15), // to -63,-9
  line_rel_xy(126,0), // to 63,-9
  move_rel_xy(-103,14), // to -40,5
  line_rel_xy(-13,-12), // to -53,-7
  move_rel_xy(93,12), // to 40,5
  line_rel_xy(-80,0), // to -40,5
  move_rel_xy(93,-12), // to 53,-7
  line_rel_xy(-13,12), // to 40,5
  move_rel_xy(-93,-12), // to -53,-7
  line_rel_xy(106,0), // to 53,-7
  1
};


const int8 placard178[] = {
  move_rel_xy(-44,7), // to -44,7
  line_rel_xy(-19,-18), // to -63,-11
  move_rel_xy(107,18), // to 44,7
  line_rel_xy(-88,0), // to -44,7
  move_rel_xy(107,-18), // to 63,-11
  line_rel_xy(-19,18), // to 44,7
  move_rel_xy(-107,-18), // to -63,-11
  line_rel_xy(126,0), // to 63,-11
  move_rel_xy(-103,17), // to -40,6
  line_rel_xy(-13,-14), // to -53,-8
  move_rel_xy(93,14), // to 40,6
  line_rel_xy(-80,0), // to -40,6
  move_rel_xy(93,-14), // to 53,-8
  line_rel_xy(-13,14), // to 40,6
  move_rel_xy(-93,-14), // to -53,-8
  line_rel_xy(106,0), // to 53,-8
  1
};


const int8 placard176[] = {
  move_rel_xy(-44,9), // to -44,9
  line_rel_xy(-19,-21), // to -63,-12
  move_rel_xy(107,21), // to 44,9
  line_rel_xy(-88,0), // to -44,9
  move_rel_xy(107,-21), // to 63,-12
  line_rel_xy(-19,21), // to 44,9
  move_rel_xy(-107,-21), // to -63,-12
  line_rel_xy(126,0), // to 63,-12
  move_rel_xy(-103,19), // to -40,7
  line_rel_xy(-12,-16), // to -52,-9
  move_rel_xy(92,16), // to 40,7
  line_rel_xy(-80,0), // to -40,7
  move_rel_xy(92,-16), // to 52,-9
  line_rel_xy(-12,16), // to 40,7
  move_rel_xy(-92,-16), // to -52,-9
  line_rel_xy(104,0), // to 52,-9
  1
};


const int8 placard174[] = {
  move_rel_xy(-44,10), // to -44,10
  line_rel_xy(-18,-24), // to -62,-14
  move_rel_xy(106,24), // to 44,10
  line_rel_xy(-88,0), // to -44,10
  move_rel_xy(106,-24), // to 62,-14
  line_rel_xy(-18,24), // to 44,10
  move_rel_xy(-106,-24), // to -62,-14
  line_rel_xy(124,0), // to 62,-14
  move_rel_xy(-102,22), // to -40,8
  line_rel_xy(-12,-18), // to -52,-10
  move_rel_xy(92,18), // to 40,8
  line_rel_xy(-80,0), // to -40,8
  move_rel_xy(92,-18), // to 52,-10
  line_rel_xy(-12,18), // to 40,8
  move_rel_xy(-92,-18), // to -52,-10
  line_rel_xy(104,0), // to 52,-10
  1
};


const int8 placard172[] = {
  move_rel_xy(-45,11), // to -45,11
  line_rel_xy(-17,-26), // to -62,-15
  move_rel_xy(107,26), // to 45,11
  line_rel_xy(-90,0), // to -45,11
  move_rel_xy(107,-26), // to 62,-15
  line_rel_xy(-17,26), // to 45,11
  move_rel_xy(-107,-26), // to -62,-15
  line_rel_xy(124,0), // to 62,-15
  move_rel_xy(-102,24), // to -40,9
  line_rel_xy(-12,-20), // to -52,-11
  move_rel_xy(92,20), // to 40,9
  line_rel_xy(-80,0), // to -40,9
  move_rel_xy(92,-20), // to 52,-11
  line_rel_xy(-12,20), // to 40,9
  move_rel_xy(-92,-20), // to -52,-11
  line_rel_xy(104,0), // to 52,-11
  1
};


const int8 placard170[] = {
  move_rel_xy(-45,12), // to -45,12
  line_rel_xy(-17,-28), // to -62,-16
  move_rel_xy(107,28), // to 45,12
  line_rel_xy(-90,0), // to -45,12
  move_rel_xy(107,-28), // to 62,-16
  line_rel_xy(-17,28), // to 45,12
  move_rel_xy(-107,-28), // to -62,-16
  line_rel_xy(124,0), // to 62,-16
  move_rel_xy(-102,25), // to -40,9
  line_rel_xy(-12,-21), // to -52,-12
  move_rel_xy(92,21), // to 40,9
  line_rel_xy(-80,0), // to -40,9
  move_rel_xy(92,-21), // to 52,-12
  line_rel_xy(-12,21), // to 40,9
  move_rel_xy(-92,-21), // to -52,-12
  line_rel_xy(104,0), // to 52,-12
  1
};


const int8 placard168[] = {
  move_rel_xy(-45,13), // to -45,13
  line_rel_xy(-16,-31), // to -61,-18
  move_rel_xy(106,31), // to 45,13
  line_rel_xy(-90,0), // to -45,13
  move_rel_xy(106,-31), // to 61,-18
  line_rel_xy(-16,31), // to 45,13
  move_rel_xy(-106,-31), // to -61,-18
  line_rel_xy(122,0), // to 61,-18
  move_rel_xy(-102,28), // to -41,10
  line_rel_xy(-11,-23), // to -52,-13
  move_rel_xy(93,23), // to 41,10
  line_rel_xy(-82,0), // to -41,10
  move_rel_xy(93,-23), // to 52,-13
  line_rel_xy(-11,23), // to 41,10
  move_rel_xy(-93,-23), // to -52,-13
  line_rel_xy(104,0), // to 52,-13
  1
};


const int8 placard166[] = {
  move_rel_xy(-45,14), // to -45,14
  line_rel_xy(-16,-33), // to -61,-19
  move_rel_xy(106,33), // to 45,14
  line_rel_xy(-90,0), // to -45,14
  move_rel_xy(106,-33), // to 61,-19
  line_rel_xy(-16,33), // to 45,14
  move_rel_xy(-106,-33), // to -61,-19
  line_rel_xy(122,0), // to 61,-19
  move_rel_xy(-102,30), // to -41,11
  line_rel_xy(-10,-25), // to -51,-14
  move_rel_xy(92,25), // to 41,11
  line_rel_xy(-82,0), // to -41,11
  move_rel_xy(92,-25), // to 51,-14
  line_rel_xy(-10,25), // to 41,11
  move_rel_xy(-92,-25), // to -51,-14
  line_rel_xy(102,0), // to 51,-14
  1
};


const int8 placard164[] = {
  move_rel_xy(-45,15), // to -45,15
  line_rel_xy(-15,-35), // to -60,-20
  move_rel_xy(105,35), // to 45,15
  line_rel_xy(-90,0), // to -45,15
  move_rel_xy(105,-35), // to 60,-20
  line_rel_xy(-15,35), // to 45,15
  move_rel_xy(-105,-35), // to -60,-20
  line_rel_xy(120,0), // to 60,-20
  move_rel_xy(-101,32), // to -41,12
  line_rel_xy(-10,-27), // to -51,-15
  move_rel_xy(92,27), // to 41,12
  line_rel_xy(-82,0), // to -41,12
  move_rel_xy(92,-27), // to 51,-15
  line_rel_xy(-10,27), // to 41,12
  move_rel_xy(-92,-27), // to -51,-15
  line_rel_xy(102,0), // to 51,-15
  1
};


const int8 placard162[] = {
  move_rel_xy(-46,16), // to -46,16
  line_rel_xy(-14,-37), // to -60,-21
  move_rel_xy(106,37), // to 46,16
  line_rel_xy(-92,0), // to -46,16
  move_rel_xy(106,-37), // to 60,-21
  line_rel_xy(-14,37), // to 46,16
  move_rel_xy(-106,-37), // to -60,-21
  line_rel_xy(120,0), // to 60,-21
  move_rel_xy(-101,34), // to -41,13
  line_rel_xy(-10,-29), // to -51,-16
  move_rel_xy(92,29), // to 41,13
  line_rel_xy(-82,0), // to -41,13
  move_rel_xy(92,-29), // to 51,-16
  line_rel_xy(-10,29), // to 41,13
  move_rel_xy(-92,-29), // to -51,-16
  line_rel_xy(102,0), // to 51,-16
  1
};


const int8 placard160[] = {
  move_rel_xy(-46,17), // to -46,17
  line_rel_xy(-13,-39), // to -59,-22
  move_rel_xy(105,39), // to 46,17
  line_rel_xy(-92,0), // to -46,17
  move_rel_xy(105,-39), // to 59,-22
  line_rel_xy(-13,39), // to 46,17
  move_rel_xy(-105,-39), // to -59,-22
  line_rel_xy(118,0), // to 59,-22
  move_rel_xy(-100,35), // to -41,13
  line_rel_xy(-9,-29), // to -50,-16
  move_rel_xy(91,29), // to 41,13
  line_rel_xy(-82,0), // to -41,13
  move_rel_xy(91,-29), // to 50,-16
  line_rel_xy(-9,29), // to 41,13
  move_rel_xy(-91,-29), // to -50,-16
  line_rel_xy(100,0), // to 50,-16
  1
};


const int8 placard158[] = {
  move_rel_xy(-46,18), // to -46,18
  line_rel_xy(-13,-41), // to -59,-23
  move_rel_xy(105,41), // to 46,18
  line_rel_xy(-92,0), // to -46,18
  move_rel_xy(105,-41), // to 59,-23
  line_rel_xy(-13,41), // to 46,18
  move_rel_xy(-105,-41), // to -59,-23
  line_rel_xy(118,0), // to 59,-23
  move_rel_xy(-100,37), // to -41,14
  line_rel_xy(-9,-31), // to -50,-17
  move_rel_xy(91,31), // to 41,14
  line_rel_xy(-82,0), // to -41,14
  move_rel_xy(91,-31), // to 50,-17
  line_rel_xy(-9,31), // to 41,14
  move_rel_xy(-91,-31), // to -50,-17
  line_rel_xy(100,0), // to 50,-17
  1
};


const int8 placard156[] = {
  move_rel_xy(-46,19), // to -46,19
  line_rel_xy(-13,-43), // to -59,-24
  move_rel_xy(105,43), // to 46,19
  line_rel_xy(-92,0), // to -46,19
  move_rel_xy(105,-43), // to 59,-24
  line_rel_xy(-13,43), // to 46,19
  move_rel_xy(-105,-43), // to -59,-24
  line_rel_xy(118,0), // to 59,-24
  move_rel_xy(-101,39), // to -42,15
  line_rel_xy(-8,-33), // to -50,-18
  move_rel_xy(92,33), // to 42,15
  line_rel_xy(-84,0), // to -42,15
  move_rel_xy(92,-33), // to 50,-18
  line_rel_xy(-8,33), // to 42,15
  move_rel_xy(-92,-33), // to -50,-18
  line_rel_xy(100,0), // to 50,-18
  1
};


const int8 placard154[] = {
  move_rel_xy(-47,20), // to -47,20
  line_rel_xy(-11,-45), // to -58,-25
  move_rel_xy(105,45), // to 47,20
  line_rel_xy(-94,0), // to -47,20
  move_rel_xy(105,-45), // to 58,-25
  line_rel_xy(-11,45), // to 47,20
  move_rel_xy(-105,-45), // to -58,-25
  line_rel_xy(116,0), // to 58,-25
  move_rel_xy(-100,41), // to -42,16
  line_rel_xy(-7,-35), // to -49,-19
  move_rel_xy(91,35), // to 42,16
  line_rel_xy(-84,0), // to -42,16
  move_rel_xy(91,-35), // to 49,-19
  line_rel_xy(-7,35), // to 42,16
  move_rel_xy(-91,-35), // to -49,-19
  line_rel_xy(98,0), // to 49,-19
  1
};


const int8 placard152[] = {
  move_rel_xy(-47,21), // to -47,21
  line_rel_xy(-11,-47), // to -58,-26
  move_rel_xy(105,47), // to 47,21
  line_rel_xy(-94,0), // to -47,21
  move_rel_xy(105,-47), // to 58,-26
  line_rel_xy(-11,47), // to 47,21
  move_rel_xy(-105,-47), // to -58,-26
  line_rel_xy(116,0), // to 58,-26
  move_rel_xy(-100,42), // to -42,16
  line_rel_xy(-7,-35), // to -49,-19
  move_rel_xy(91,35), // to 42,16
  line_rel_xy(-84,0), // to -42,16
  move_rel_xy(91,-35), // to 49,-19
  line_rel_xy(-7,35), // to 42,16
  move_rel_xy(-91,-35), // to -49,-19
  line_rel_xy(98,0), // to 49,-19
  1
};


const int8 placard150[] = {
  move_rel_xy(-47,22), // to -47,22
  line_rel_xy(-10,-48), // to -57,-26
  move_rel_xy(104,48), // to 47,22
  line_rel_xy(-94,0), // to -47,22
  move_rel_xy(104,-48), // to 57,-26
  line_rel_xy(-10,48), // to 47,22
  move_rel_xy(-104,-48), // to -57,-26
  line_rel_xy(114,0), // to 57,-26
  move_rel_xy(-99,43), // to -42,17
  line_rel_xy(-7,-36), // to -49,-19
  move_rel_xy(91,36), // to 42,17
  line_rel_xy(-84,0), // to -42,17
  move_rel_xy(91,-36), // to 49,-19
  line_rel_xy(-7,36), // to 42,17
  move_rel_xy(-91,-36), // to -49,-19
  line_rel_xy(98,0), // to 49,-19
  1
};


const int8 placard148[] = {
  move_rel_xy(-48,22), // to -48,22
  line_rel_xy(-9,-49), // to -57,-27
  move_rel_xy(105,49), // to 48,22
  line_rel_xy(-96,0), // to -48,22
  move_rel_xy(105,-49), // to 57,-27
  line_rel_xy(-9,49), // to 48,22
  move_rel_xy(-105,-49), // to -57,-27
  line_rel_xy(114,0), // to 57,-27
  move_rel_xy(-100,44), // to -43,17
  line_rel_xy(-6,-37), // to -49,-20
  move_rel_xy(92,37), // to 43,17
  line_rel_xy(-86,0), // to -43,17
  move_rel_xy(92,-37), // to 49,-20
  line_rel_xy(-6,37), // to 43,17
  move_rel_xy(-92,-37), // to -49,-20
  line_rel_xy(98,0), // to 49,-20
  1
};


const int8 placard146[] = {
  move_rel_xy(-48,23), // to -48,23
  line_rel_xy(-8,-50), // to -56,-27
  move_rel_xy(104,50), // to 48,23
  line_rel_xy(-96,0), // to -48,23
  move_rel_xy(104,-50), // to 56,-27
  line_rel_xy(-8,50), // to 48,23
  move_rel_xy(-104,-50), // to -56,-27
  line_rel_xy(112,0), // to 56,-27
  move_rel_xy(-99,45), // to -43,18
  line_rel_xy(-5,-38), // to -48,-20
  move_rel_xy(91,38), // to 43,18
  line_rel_xy(-86,0), // to -43,18
  move_rel_xy(91,-38), // to 48,-20
  line_rel_xy(-5,38), // to 43,18
  move_rel_xy(-91,-38), // to -48,-20
  line_rel_xy(96,0), // to 48,-20
  1
};


const int8 placard144[] = {
  move_rel_xy(-49,24), // to -49,24
  line_rel_xy(-7,-51), // to -56,-27
  move_rel_xy(105,51), // to 49,24
  line_rel_xy(-98,0), // to -49,24
  move_rel_xy(105,-51), // to 56,-27
  line_rel_xy(-7,51), // to 49,24
  move_rel_xy(-105,-51), // to -56,-27
  line_rel_xy(112,0), // to 56,-27
  move_rel_xy(-99,46), // to -43,19
  line_rel_xy(-5,-40), // to -48,-21
  move_rel_xy(91,40), // to 43,19
  line_rel_xy(-86,0), // to -43,19
  move_rel_xy(91,-40), // to 48,-21
  line_rel_xy(-5,40), // to 43,19
  move_rel_xy(-91,-40), // to -48,-21
  line_rel_xy(96,0), // to 48,-21
  1
};


const int8 placard142[] = {
  move_rel_xy(-49,24), // to -49,24
  line_rel_xy(-6,-52), // to -55,-28
  move_rel_xy(104,52), // to 49,24
  line_rel_xy(-98,0), // to -49,24
  move_rel_xy(104,-52), // to 55,-28
  line_rel_xy(-6,52), // to 49,24
  move_rel_xy(-104,-52), // to -55,-28
  line_rel_xy(110,0), // to 55,-28
  move_rel_xy(-98,47), // to -43,19
  line_rel_xy(-5,-40), // to -48,-21
  move_rel_xy(91,40), // to 43,19
  line_rel_xy(-86,0), // to -43,19
  move_rel_xy(91,-40), // to 48,-21
  line_rel_xy(-5,40), // to 43,19
  move_rel_xy(-91,-40), // to -48,-21
  line_rel_xy(96,0), // to 48,-21
  1
};


const int8 placard140[] = {
  move_rel_xy(-49,25), // to -49,25
  line_rel_xy(-6,-53), // to -55,-28
  move_rel_xy(104,53), // to 49,25
  line_rel_xy(-98,0), // to -49,25
  move_rel_xy(104,-53), // to 55,-28
  line_rel_xy(-6,53), // to 49,25
  move_rel_xy(-104,-53), // to -55,-28
  line_rel_xy(110,0), // to 55,-28
  move_rel_xy(-99,47), // to -44,19
  line_rel_xy(-3,-40), // to -47,-21
  move_rel_xy(91,40), // to 44,19
  line_rel_xy(-88,0), // to -44,19
  move_rel_xy(91,-40), // to 47,-21
  line_rel_xy(-3,40), // to 44,19
  move_rel_xy(-91,-40), // to -47,-21
  line_rel_xy(94,0), // to 47,-21
  1
};


const int8 placard138[] = {
  move_rel_xy(-49,26), // to -49,26
  line_rel_xy(-5,-54), // to -54,-28
  move_rel_xy(103,54), // to 49,26
  line_rel_xy(-98,0), // to -49,26
  move_rel_xy(103,-54), // to 54,-28
  line_rel_xy(-5,54), // to 49,26
  move_rel_xy(-103,-54), // to -54,-28
  line_rel_xy(108,0), // to 54,-28
  move_rel_xy(-98,48), // to -44,20
  line_rel_xy(-3,-41), // to -47,-21
  move_rel_xy(91,41), // to 44,20
  line_rel_xy(-88,0), // to -44,20
  move_rel_xy(91,-41), // to 47,-21
  line_rel_xy(-3,41), // to 44,20
  move_rel_xy(-91,-41), // to -47,-21
  line_rel_xy(94,0), // to 47,-21
  1
};


const int8 placard136[] = {
  move_rel_xy(-50,26), // to -50,26
  line_rel_xy(-4,-54), // to -54,-28
  move_rel_xy(104,54), // to 50,26
  line_rel_xy(-100,0), // to -50,26
  move_rel_xy(104,-54), // to 54,-28
  line_rel_xy(-4,54), // to 50,26
  move_rel_xy(-104,-54), // to -54,-28
  line_rel_xy(108,0), // to 54,-28
  move_rel_xy(-98,48), // to -44,20
  line_rel_xy(-3,-41), // to -47,-21
  move_rel_xy(91,41), // to 44,20
  line_rel_xy(-88,0), // to -44,20
  move_rel_xy(91,-41), // to 47,-21
  line_rel_xy(-3,41), // to 44,20
  move_rel_xy(-91,-41), // to -47,-21
  line_rel_xy(94,0), // to 47,-21
  1
};


const int8 placard134[] = {
  move_rel_xy(-50,26), // to -50,26
  line_rel_xy(-3,-54), // to -53,-28
  move_rel_xy(103,54), // to 50,26
  line_rel_xy(-100,0), // to -50,26
  move_rel_xy(103,-54), // to 53,-28
  line_rel_xy(-3,54), // to 50,26
  move_rel_xy(-103,-54), // to -53,-28
  line_rel_xy(106,0), // to 53,-28
  move_rel_xy(-97,48), // to -44,20
  line_rel_xy(-2,-41), // to -46,-21
  move_rel_xy(90,41), // to 44,20
  line_rel_xy(-88,0), // to -44,20
  move_rel_xy(90,-41), // to 46,-21
  line_rel_xy(-2,41), // to 44,20
  move_rel_xy(-90,-41), // to -46,-21
  line_rel_xy(92,0), // to 46,-21
  1
};


const int8 placard132[] = {
  move_rel_xy(-51,27), // to -51,27
  line_rel_xy(-2,-55), // to -53,-28
  move_rel_xy(104,55), // to 51,27
  line_rel_xy(-102,0), // to -51,27
  move_rel_xy(104,-55), // to 53,-28
  line_rel_xy(-2,55), // to 51,27
  move_rel_xy(-104,-55), // to -53,-28
  line_rel_xy(106,0), // to 53,-28
  move_rel_xy(-98,49), // to -45,21
  line_rel_xy(-1,-42), // to -46,-21
  move_rel_xy(91,42), // to 45,21
  line_rel_xy(-90,0), // to -45,21
  move_rel_xy(91,-42), // to 46,-21
  line_rel_xy(-1,42), // to 45,21
  move_rel_xy(-91,-42), // to -46,-21
  line_rel_xy(92,0), // to 46,-21
  1
};


const int8 placard130[] = {
  move_rel_xy(-51,27), // to -51,27
  line_rel_xy(-1,-55), // to -52,-28
  move_rel_xy(103,55), // to 51,27
  line_rel_xy(-102,0), // to -51,27
  move_rel_xy(103,-55), // to 52,-28
  line_rel_xy(-1,55), // to 51,27
  move_rel_xy(-103,-55), // to -52,-28
  line_rel_xy(104,0), // to 52,-28
  move_rel_xy(-97,49), // to -45,21
  line_rel_xy(-1,-42), // to -46,-21
  move_rel_xy(91,42), // to 45,21
  line_rel_xy(-90,0), // to -45,21
  move_rel_xy(91,-42), // to 46,-21
  line_rel_xy(-1,42), // to 45,21
  move_rel_xy(-91,-42), // to -46,-21
  line_rel_xy(92,0), // to 46,-21
  1
};


const int8 placard128[] = {
  move_rel_xy(-52,28), // to -52,28
  line_rel_xy(0,-56), // to -52,-28
  move_rel_xy(104,56), // to 52,28
  line_rel_xy(-104,0), // to -52,28
  move_rel_xy(104,-56), // to 52,-28
  line_rel_xy(0,56), // to 52,28
  move_rel_xy(-104,-56), // to -52,-28
  line_rel_xy(104,0), // to 52,-28
  move_rel_xy(-98,49), // to -46,21
  line_rel_xy(0,-42), // to -46,-21
  move_rel_xy(92,42), // to 46,21
  line_rel_xy(-92,0), // to -46,21
  move_rel_xy(92,-42), // to 46,-21
  line_rel_xy(0,42), // to 46,21
  move_rel_xy(-92,-42), // to -46,-21
  line_rel_xy(92,0), // to 46,-21
  1
};


const int8 placard126[] = {
  move_rel_xy(-52,28), // to -52,28
  line_rel_xy(1,-55), // to -51,-27
  move_rel_xy(103,55), // to 52,28
  line_rel_xy(-104,0), // to -52,28
  move_rel_xy(103,-55), // to 51,-27
  line_rel_xy(1,55), // to 52,28
  move_rel_xy(-103,-55), // to -51,-27
  line_rel_xy(102,0), // to 51,-27
  move_rel_xy(-97,48), // to -46,21
  line_rel_xy(1,-42), // to -45,-21
  move_rel_xy(91,42), // to 46,21
  line_rel_xy(-92,0), // to -46,21
  move_rel_xy(91,-42), // to 45,-21
  line_rel_xy(1,42), // to 46,21
  move_rel_xy(-91,-42), // to -45,-21
  line_rel_xy(90,0), // to 45,-21
  1
};


const int8 placard124[] = {
  move_rel_xy(-53,28), // to -53,28
  line_rel_xy(2,-55), // to -51,-27
  move_rel_xy(104,55), // to 53,28
  line_rel_xy(-106,0), // to -53,28
  move_rel_xy(104,-55), // to 51,-27
  line_rel_xy(2,55), // to 53,28
  move_rel_xy(-104,-55), // to -51,-27
  line_rel_xy(102,0), // to 51,-27
  move_rel_xy(-97,48), // to -46,21
  line_rel_xy(1,-42), // to -45,-21
  move_rel_xy(91,42), // to 46,21
  line_rel_xy(-92,0), // to -46,21
  move_rel_xy(91,-42), // to 45,-21
  line_rel_xy(1,42), // to 46,21
  move_rel_xy(-91,-42), // to -45,-21
  line_rel_xy(90,0), // to 45,-21
  1
};


const int8 placard122[] = {
  move_rel_xy(-53,28), // to -53,28
  line_rel_xy(3,-54), // to -50,-26
  move_rel_xy(103,54), // to 53,28
  line_rel_xy(-106,0), // to -53,28
  move_rel_xy(103,-54), // to 50,-26
  line_rel_xy(3,54), // to 53,28
  move_rel_xy(-103,-54), // to -50,-26
  line_rel_xy(100,0), // to 50,-26
  move_rel_xy(-96,47), // to -46,21
  line_rel_xy(2,-41), // to -44,-20
  move_rel_xy(90,41), // to 46,21
  line_rel_xy(-92,0), // to -46,21
  move_rel_xy(90,-41), // to 44,-20
  line_rel_xy(2,41), // to 46,21
  move_rel_xy(-90,-41), // to -44,-20
  line_rel_xy(88,0), // to 44,-20
  1
};


const int8 placard120[] = {
  move_rel_xy(-54,28), // to -54,28
  line_rel_xy(4,-54), // to -50,-26
  move_rel_xy(104,54), // to 54,28
  line_rel_xy(-108,0), // to -54,28
  move_rel_xy(104,-54), // to 50,-26
  line_rel_xy(4,54), // to 54,28
  move_rel_xy(-104,-54), // to -50,-26
  line_rel_xy(100,0), // to 50,-26
  move_rel_xy(-97,47), // to -47,21
  line_rel_xy(3,-41), // to -44,-20
  move_rel_xy(91,41), // to 47,21
  line_rel_xy(-94,0), // to -47,21
  move_rel_xy(91,-41), // to 44,-20
  line_rel_xy(3,41), // to 47,21
  move_rel_xy(-91,-41), // to -44,-20
  line_rel_xy(88,0), // to 44,-20
  1
};


const int8 placard118[] = {
  move_rel_xy(-54,28), // to -54,28
  line_rel_xy(5,-54), // to -49,-26
  move_rel_xy(103,54), // to 54,28
  line_rel_xy(-108,0), // to -54,28
  move_rel_xy(103,-54), // to 49,-26
  line_rel_xy(5,54), // to 54,28
  move_rel_xy(-103,-54), // to -49,-26
  line_rel_xy(98,0), // to 49,-26
  move_rel_xy(-96,47), // to -47,21
  line_rel_xy(3,-41), // to -44,-20
  move_rel_xy(91,41), // to 47,21
  line_rel_xy(-94,0), // to -47,21
  move_rel_xy(91,-41), // to 44,-20
  line_rel_xy(3,41), // to 47,21
  move_rel_xy(-91,-41), // to -44,-20
  line_rel_xy(88,0), // to 44,-20
  1
};


const int8 placard116[] = {
  move_rel_xy(-55,28), // to -55,28
  line_rel_xy(6,-53), // to -49,-25
  move_rel_xy(104,53), // to 55,28
  line_rel_xy(-110,0), // to -55,28
  move_rel_xy(104,-53), // to 49,-25
  line_rel_xy(6,53), // to 55,28
  move_rel_xy(-104,-53), // to -49,-25
  line_rel_xy(98,0), // to 49,-25
  move_rel_xy(-96,46), // to -47,21
  line_rel_xy(3,-40), // to -44,-19
  move_rel_xy(91,40), // to 47,21
  line_rel_xy(-94,0), // to -47,21
  move_rel_xy(91,-40), // to 44,-19
  line_rel_xy(3,40), // to 47,21
  move_rel_xy(-91,-40), // to -44,-19
  line_rel_xy(88,0), // to 44,-19
  1
};


const int8 placard114[] = {
  move_rel_xy(-55,28), // to -55,28
  line_rel_xy(6,-52), // to -49,-24
  move_rel_xy(104,52), // to 55,28
  line_rel_xy(-110,0), // to -55,28
  move_rel_xy(104,-52), // to 49,-24
  line_rel_xy(6,52), // to 55,28
  move_rel_xy(-104,-52), // to -49,-24
  line_rel_xy(98,0), // to 49,-24
  move_rel_xy(-97,45), // to -48,21
  line_rel_xy(5,-40), // to -43,-19
  move_rel_xy(91,40), // to 48,21
  line_rel_xy(-96,0), // to -48,21
  move_rel_xy(91,-40), // to 43,-19
  line_rel_xy(5,40), // to 48,21
  move_rel_xy(-91,-40), // to -43,-19
  line_rel_xy(86,0), // to 43,-19
  1
};


const int8 placard112[] = {
  move_rel_xy(-56,27), // to -56,27
  line_rel_xy(7,-51), // to -49,-24
  move_rel_xy(105,51), // to 56,27
  line_rel_xy(-112,0), // to -56,27
  move_rel_xy(105,-51), // to 49,-24
  line_rel_xy(7,51), // to 56,27
  move_rel_xy(-105,-51), // to -49,-24
  line_rel_xy(98,0), // to 49,-24
  move_rel_xy(-97,45), // to -48,21
  line_rel_xy(5,-40), // to -43,-19
  move_rel_xy(91,40), // to 48,21
  line_rel_xy(-96,0), // to -48,21
  move_rel_xy(91,-40), // to 43,-19
  line_rel_xy(5,40), // to 48,21
  move_rel_xy(-91,-40), // to -43,-19
  line_rel_xy(86,0), // to 43,-19
  1
};


const int8 placard110[] = {
  move_rel_xy(-56,27), // to -56,27
  line_rel_xy(8,-50), // to -48,-23
  move_rel_xy(104,50), // to 56,27
  line_rel_xy(-112,0), // to -56,27
  move_rel_xy(104,-50), // to 48,-23
  line_rel_xy(8,50), // to 56,27
  move_rel_xy(-104,-50), // to -48,-23
  line_rel_xy(96,0), // to 48,-23
  move_rel_xy(-96,43), // to -48,20
  line_rel_xy(5,-38), // to -43,-18
  move_rel_xy(91,38), // to 48,20
  line_rel_xy(-96,0), // to -48,20
  move_rel_xy(91,-38), // to 43,-18
  line_rel_xy(5,38), // to 48,20
  move_rel_xy(-91,-38), // to -43,-18
  line_rel_xy(86,0), // to 43,-18
  1
};


const int8 placard108[] = {
  move_rel_xy(-57,27), // to -57,27
  line_rel_xy(9,-49), // to -48,-22
  move_rel_xy(105,49), // to 57,27
  line_rel_xy(-114,0), // to -57,27
  move_rel_xy(105,-49), // to 48,-22
  line_rel_xy(9,49), // to 57,27
  move_rel_xy(-105,-49), // to -48,-22
  line_rel_xy(96,0), // to 48,-22
  move_rel_xy(-97,42), // to -49,20
  line_rel_xy(6,-37), // to -43,-17
  move_rel_xy(92,37), // to 49,20
  line_rel_xy(-98,0), // to -49,20
  move_rel_xy(92,-37), // to 43,-17
  line_rel_xy(6,37), // to 49,20
  move_rel_xy(-92,-37), // to -43,-17
  line_rel_xy(86,0), // to 43,-17
  1
};


const int8 placard106[] = {
  move_rel_xy(-57,26), // to -57,26
  line_rel_xy(10,-48), // to -47,-22
  move_rel_xy(104,48), // to 57,26
  line_rel_xy(-114,0), // to -57,26
  move_rel_xy(104,-48), // to 47,-22
  line_rel_xy(10,48), // to 57,26
  move_rel_xy(-104,-48), // to -47,-22
  line_rel_xy(94,0), // to 47,-22
  move_rel_xy(-96,41), // to -49,19
  line_rel_xy(7,-36), // to -42,-17
  move_rel_xy(91,36), // to 49,19
  line_rel_xy(-98,0), // to -49,19
  move_rel_xy(91,-36), // to 42,-17
  line_rel_xy(7,36), // to 49,19
  move_rel_xy(-91,-36), // to -42,-17
  line_rel_xy(84,0), // to 42,-17
  1
};


const int8 placard104[] = {
  move_rel_xy(-58,26), // to -58,26
  line_rel_xy(11,-47), // to -47,-21
  move_rel_xy(105,47), // to 58,26
  line_rel_xy(-116,0), // to -58,26
  move_rel_xy(105,-47), // to 47,-21
  line_rel_xy(11,47), // to 58,26
  move_rel_xy(-105,-47), // to -47,-21
  line_rel_xy(94,0), // to 47,-21
  move_rel_xy(-96,40), // to -49,19
  line_rel_xy(7,-35), // to -42,-16
  move_rel_xy(91,35), // to 49,19
  line_rel_xy(-98,0), // to -49,19
  move_rel_xy(91,-35), // to 42,-16
  line_rel_xy(7,35), // to 49,19
  move_rel_xy(-91,-35), // to -42,-16
  line_rel_xy(84,0), // to 42,-16
  1
};


const int8 placard102[] = {
  move_rel_xy(-58,25), // to -58,25
  line_rel_xy(11,-45), // to -47,-20
  move_rel_xy(105,45), // to 58,25
  line_rel_xy(-116,0), // to -58,25
  move_rel_xy(105,-45), // to 47,-20
  line_rel_xy(11,45), // to 58,25
  move_rel_xy(-105,-45), // to -47,-20
  line_rel_xy(94,0), // to 47,-20
  move_rel_xy(-96,39), // to -49,19
  line_rel_xy(7,-35), // to -42,-16
  move_rel_xy(91,35), // to 49,19
  line_rel_xy(-98,0), // to -49,19
  move_rel_xy(91,-35), // to 42,-16
  line_rel_xy(7,35), // to 49,19
  move_rel_xy(-91,-35), // to -42,-16
  line_rel_xy(84,0), // to 42,-16
  1
};


const int8 placard100[] = {
  move_rel_xy(-59,24), // to -59,24
  line_rel_xy(13,-43), // to -46,-19
  move_rel_xy(105,43), // to 59,24
  line_rel_xy(-118,0), // to -59,24
  move_rel_xy(105,-43), // to 46,-19
  line_rel_xy(13,43), // to 59,24
  move_rel_xy(-105,-43), // to -46,-19
  line_rel_xy(92,0), // to 46,-19
  move_rel_xy(-96,37), // to -50,18
  line_rel_xy(8,-33), // to -42,-15
  move_rel_xy(92,33), // to 50,18
  line_rel_xy(-100,0), // to -50,18
  move_rel_xy(92,-33), // to 42,-15
  line_rel_xy(8,33), // to 50,18
  move_rel_xy(-92,-33), // to -42,-15
  line_rel_xy(84,0), // to 42,-15
  1
};


const int8 placard98[] = {
  move_rel_xy(-59,23), // to -59,23
  line_rel_xy(13,-41), // to -46,-18
  move_rel_xy(105,41), // to 59,23
  line_rel_xy(-118,0), // to -59,23
  move_rel_xy(105,-41), // to 46,-18
  line_rel_xy(13,41), // to 59,23
  move_rel_xy(-105,-41), // to -46,-18
  line_rel_xy(92,0), // to 46,-18
  move_rel_xy(-96,35), // to -50,17
  line_rel_xy(9,-31), // to -41,-14
  move_rel_xy(91,31), // to 50,17
  line_rel_xy(-100,0), // to -50,17
  move_rel_xy(91,-31), // to 41,-14
  line_rel_xy(9,31), // to 50,17
  move_rel_xy(-91,-31), // to -41,-14
  line_rel_xy(82,0), // to 41,-14
  1
};


const int8 placard96[] = {
  move_rel_xy(-59,22), // to -59,22
  line_rel_xy(13,-39), // to -46,-17
  move_rel_xy(105,39), // to 59,22
  line_rel_xy(-118,0), // to -59,22
  move_rel_xy(105,-39), // to 46,-17
  line_rel_xy(13,39), // to 59,22
  move_rel_xy(-105,-39), // to -46,-17
  line_rel_xy(92,0), // to 46,-17
  move_rel_xy(-96,33), // to -50,16
  line_rel_xy(9,-29), // to -41,-13
  move_rel_xy(91,29), // to 50,16
  line_rel_xy(-100,0), // to -50,16
  move_rel_xy(91,-29), // to 41,-13
  line_rel_xy(9,29), // to 50,16
  move_rel_xy(-91,-29), // to -41,-13
  line_rel_xy(82,0), // to 41,-13
  1
};


const int8 placard94[] = {
  move_rel_xy(-60,21), // to -60,21
  line_rel_xy(14,-37), // to -46,-16
  move_rel_xy(106,37), // to 60,21
  line_rel_xy(-120,0), // to -60,21
  move_rel_xy(106,-37), // to 46,-16
  line_rel_xy(14,37), // to 60,21
  move_rel_xy(-106,-37), // to -46,-16
  line_rel_xy(92,0), // to 46,-16
  move_rel_xy(-97,32), // to -51,16
  line_rel_xy(10,-29), // to -41,-13
  move_rel_xy(92,29), // to 51,16
  line_rel_xy(-102,0), // to -51,16
  move_rel_xy(92,-29), // to 41,-13
  line_rel_xy(10,29), // to 51,16
  move_rel_xy(-92,-29), // to -41,-13
  line_rel_xy(82,0), // to 41,-13
  1
};


const int8 placard92[] = {
  move_rel_xy(-60,20), // to -60,20
  line_rel_xy(15,-35), // to -45,-15
  move_rel_xy(105,35), // to 60,20
  line_rel_xy(-120,0), // to -60,20
  move_rel_xy(105,-35), // to 45,-15
  line_rel_xy(15,35), // to 60,20
  move_rel_xy(-105,-35), // to -45,-15
  line_rel_xy(90,0), // to 45,-15
  move_rel_xy(-96,30), // to -51,15
  line_rel_xy(10,-27), // to -41,-12
  move_rel_xy(92,27), // to 51,15
  line_rel_xy(-102,0), // to -51,15
  move_rel_xy(92,-27), // to 41,-12
  line_rel_xy(10,27), // to 51,15
  move_rel_xy(-92,-27), // to -41,-12
  line_rel_xy(82,0), // to 41,-12
  1
};


const int8 placard90[] = {
  move_rel_xy(-61,19), // to -61,19
  line_rel_xy(16,-33), // to -45,-14
  move_rel_xy(106,33), // to 61,19
  line_rel_xy(-122,0), // to -61,19
  move_rel_xy(106,-33), // to 45,-14
  line_rel_xy(16,33), // to 61,19
  move_rel_xy(-106,-33), // to -45,-14
  line_rel_xy(90,0), // to 45,-14
  move_rel_xy(-96,28), // to -51,14
  line_rel_xy(10,-25), // to -41,-11
  move_rel_xy(92,25), // to 51,14
  line_rel_xy(-102,0), // to -51,14
  move_rel_xy(92,-25), // to 41,-11
  line_rel_xy(10,25), // to 51,14
  move_rel_xy(-92,-25), // to -41,-11
  line_rel_xy(82,0), // to 41,-11
  1
};


const int8 placard88[] = {
  move_rel_xy(-61,18), // to -61,18
  line_rel_xy(16,-31), // to -45,-13
  move_rel_xy(106,31), // to 61,18
  line_rel_xy(-122,0), // to -61,18
  move_rel_xy(106,-31), // to 45,-13
  line_rel_xy(16,31), // to 61,18
  move_rel_xy(-106,-31), // to -45,-13
  line_rel_xy(90,0), // to 45,-13
  move_rel_xy(-97,26), // to -52,13
  line_rel_xy(11,-23), // to -41,-10
  move_rel_xy(93,23), // to 52,13
  line_rel_xy(-104,0), // to -52,13
  move_rel_xy(93,-23), // to 41,-10
  line_rel_xy(11,23), // to 52,13
  move_rel_xy(-93,-23), // to -41,-10
  line_rel_xy(82,0), // to 41,-10
  1
};


const int8 placard86[] = {
  move_rel_xy(-62,16), // to -62,16
  line_rel_xy(17,-28), // to -45,-12
  move_rel_xy(107,28), // to 62,16
  line_rel_xy(-124,0), // to -62,16
  move_rel_xy(107,-28), // to 45,-12
  line_rel_xy(17,28), // to 62,16
  move_rel_xy(-107,-28), // to -45,-12
  line_rel_xy(90,0), // to 45,-12
  move_rel_xy(-97,24), // to -52,12
  line_rel_xy(12,-21), // to -40,-9
  move_rel_xy(92,21), // to 52,12
  line_rel_xy(-104,0), // to -52,12
  move_rel_xy(92,-21), // to 40,-9
  line_rel_xy(12,21), // to 52,12
  move_rel_xy(-92,-21), // to -40,-9
  line_rel_xy(80,0), // to 40,-9
  1
};


const int8 placard84[] = {
  move_rel_xy(-62,15), // to -62,15
  line_rel_xy(17,-26), // to -45,-11
  move_rel_xy(107,26), // to 62,15
  line_rel_xy(-124,0), // to -62,15
  move_rel_xy(107,-26), // to 45,-11
  line_rel_xy(17,26), // to 62,15
  move_rel_xy(-107,-26), // to -45,-11
  line_rel_xy(90,0), // to 45,-11
  move_rel_xy(-97,22), // to -52,11
  line_rel_xy(12,-20), // to -40,-9
  move_rel_xy(92,20), // to 52,11
  line_rel_xy(-104,0), // to -52,11
  move_rel_xy(92,-20), // to 40,-9
  line_rel_xy(12,20), // to 52,11
  move_rel_xy(-92,-20), // to -40,-9
  line_rel_xy(80,0), // to 40,-9
  1
};


const int8 placard82[] = {
  move_rel_xy(-62,14), // to -62,14
  line_rel_xy(18,-24), // to -44,-10
  move_rel_xy(106,24), // to 62,14
  line_rel_xy(-124,0), // to -62,14
  move_rel_xy(106,-24), // to 44,-10
  line_rel_xy(18,24), // to 62,14
  move_rel_xy(-106,-24), // to -44,-10
  line_rel_xy(88,0), // to 44,-10
  move_rel_xy(-96,20), // to -52,10
  line_rel_xy(12,-18), // to -40,-8
  move_rel_xy(92,18), // to 52,10
  line_rel_xy(-104,0), // to -52,10
  move_rel_xy(92,-18), // to 40,-8
  line_rel_xy(12,18), // to 52,10
  move_rel_xy(-92,-18), // to -40,-8
  line_rel_xy(80,0), // to 40,-8
  1
};


const int8 placard80[] = {
  move_rel_xy(-63,12), // to -63,12
  line_rel_xy(19,-21), // to -44,-9
  move_rel_xy(107,21), // to 63,12
  line_rel_xy(-126,0), // to -63,12
  move_rel_xy(107,-21), // to 44,-9
  line_rel_xy(19,21), // to 63,12
  move_rel_xy(-107,-21), // to -44,-9
  line_rel_xy(88,0), // to 44,-9
  move_rel_xy(-96,18), // to -52,9
  line_rel_xy(12,-16), // to -40,-7
  move_rel_xy(92,16), // to 52,9
  line_rel_xy(-104,0), // to -52,9
  move_rel_xy(92,-16), // to 40,-7
  line_rel_xy(12,16), // to 52,9
  move_rel_xy(-92,-16), // to -40,-7
  line_rel_xy(80,0), // to 40,-7
  1
};


const int8 placard78[] = {
  move_rel_xy(-63,11), // to -63,11
  line_rel_xy(19,-18), // to -44,-7
  move_rel_xy(107,18), // to 63,11
  line_rel_xy(-126,0), // to -63,11
  move_rel_xy(107,-18), // to 44,-7
  line_rel_xy(19,18), // to 63,11
  move_rel_xy(-107,-18), // to -44,-7
  line_rel_xy(88,0), // to 44,-7
  move_rel_xy(-97,15), // to -53,8
  line_rel_xy(13,-14), // to -40,-6
  move_rel_xy(93,14), // to 53,8
  line_rel_xy(-106,0), // to -53,8
  move_rel_xy(93,-14), // to 40,-6
  line_rel_xy(13,14), // to 53,8
  move_rel_xy(-93,-14), // to -40,-6
  line_rel_xy(80,0), // to 40,-6
  1
};


const int8 placard76[] = {
  move_rel_xy(-63,9), // to -63,9
  line_rel_xy(19,-15), // to -44,-6
  move_rel_xy(107,15), // to 63,9
  line_rel_xy(-126,0), // to -63,9
  move_rel_xy(107,-15), // to 44,-6
  line_rel_xy(19,15), // to 63,9
  move_rel_xy(-107,-15), // to -44,-6
  line_rel_xy(88,0), // to 44,-6
  move_rel_xy(-97,13), // to -53,7
  line_rel_xy(13,-12), // to -40,-5
  move_rel_xy(93,12), // to 53,7
  line_rel_xy(-106,0), // to -53,7
  move_rel_xy(93,-12), // to 40,-5
  line_rel_xy(13,12), // to 53,7
  move_rel_xy(-93,-12), // to -40,-5
  line_rel_xy(80,0), // to 40,-5
  1
};


const int8 placard74[] = {
  move_rel_xy(-63,8), // to -63,8
  line_rel_xy(19,-13), // to -44,-5
  move_rel_xy(107,13), // to 63,8
  line_rel_xy(-126,0), // to -63,8
  move_rel_xy(107,-13), // to 44,-5
  line_rel_xy(19,13), // to 63,8
  move_rel_xy(-107,-13), // to -44,-5
  line_rel_xy(88,0), // to 44,-5
  move_rel_xy(-97,11), // to -53,6
  line_rel_xy(13,-10), // to -40,-4
  move_rel_xy(93,10), // to 53,6
  line_rel_xy(-106,0), // to -53,6
  move_rel_xy(93,-10), // to 40,-4
  line_rel_xy(13,10), // to 53,6
  move_rel_xy(-93,-10), // to -40,-4
  line_rel_xy(80,0), // to 40,-4
  1
};


const int8 placard72[] = {
  move_rel_xy(-63,6), // to -63,6
  line_rel_xy(19,-10), // to -44,-4
  move_rel_xy(107,10), // to 63,6
  line_rel_xy(-126,0), // to -63,6
  move_rel_xy(107,-10), // to 44,-4
  line_rel_xy(19,10), // to 63,6
  move_rel_xy(-107,-10), // to -44,-4
  line_rel_xy(88,0), // to 44,-4
  move_rel_xy(-97,8), // to -53,4
  line_rel_xy(13,-7), // to -40,-3
  move_rel_xy(93,7), // to 53,4
  line_rel_xy(-106,0), // to -53,4
  move_rel_xy(93,-7), // to 40,-3
  line_rel_xy(13,7), // to 53,4
  move_rel_xy(-93,-7), // to -40,-3
  line_rel_xy(80,0), // to 40,-3
  1
};


const int8 placard70[] = {
  move_rel_xy(-63,4), // to -63,4
  line_rel_xy(19,-7), // to -44,-3
  move_rel_xy(107,7), // to 63,4
  line_rel_xy(-126,0), // to -63,4
  move_rel_xy(107,-7), // to 44,-3
  line_rel_xy(19,7), // to 63,4
  move_rel_xy(-107,-7), // to -44,-3
  line_rel_xy(88,0), // to 44,-3
  move_rel_xy(-97,6), // to -53,3
  line_rel_xy(13,-5), // to -40,-2
  move_rel_xy(93,5), // to 53,3
  line_rel_xy(-106,0), // to -53,3
  move_rel_xy(93,-5), // to 40,-2
  line_rel_xy(13,5), // to 53,3
  move_rel_xy(-93,-5), // to -40,-2
  line_rel_xy(80,0), // to 40,-2
  1
};


const int8 placard68[] = {
  move_rel_xy(-63,3), // to -63,3
  line_rel_xy(19,-5), // to -44,-2
  move_rel_xy(107,5), // to 63,3
  line_rel_xy(-126,0), // to -63,3
  move_rel_xy(107,-5), // to 44,-2
  line_rel_xy(19,5), // to 63,3
  move_rel_xy(-107,-5), // to -44,-2
  line_rel_xy(88,0), // to 44,-2
  move_rel_xy(-97,4), // to -53,2
  line_rel_xy(13,-3), // to -40,-1
  move_rel_xy(93,3), // to 53,2
  line_rel_xy(-106,0), // to -53,2
  move_rel_xy(93,-3), // to 40,-1
  line_rel_xy(13,3), // to 53,2
  move_rel_xy(-93,-3), // to -40,-1
  line_rel_xy(80,0), // to 40,-1
  1
};


const int8 placard66[] = {
  move_rel_xy(-63,1), // to -63,1
  line_rel_xy(19,-1), // to -44,0
  move_rel_xy(107,1), // to 63,1
  line_rel_xy(-126,0), // to -63,1
  move_rel_xy(107,-1), // to 44,0
  line_rel_xy(19,1), // to 63,1
  move_rel_xy(-107,-1), // to -44,0
  line_rel_xy(88,0), // to 44,0
  move_rel_xy(-97,1), // to -53,1
  line_rel_xy(13,-1), // to -40,0
  move_rel_xy(93,1), // to 53,1
  line_rel_xy(-106,0), // to -53,1
  move_rel_xy(93,-1), // to 40,0
  line_rel_xy(13,1), // to 53,1
  move_rel_xy(-93,-1), // to -40,0
  line_rel_xy(80,0), // to 40,0
  1
};

const int8 *placard[256] = {
  placard64,
  placard64,
  placard66,
  placard66,
  placard68,
  placard68,
  placard70,
  placard70,
  placard72,
  placard72,
  placard74,
  placard74,
  placard76,
  placard76,
  placard78,
  placard78,
  placard80,
  placard80,
  placard82,
  placard82,
  placard84,
  placard84,
  placard86,
  placard86,
  placard88,
  placard88,
  placard90,
  placard90,
  placard92,
  placard92,
  placard94,
  placard94,
  placard96,
  placard96,
  placard98,
  placard98,
  placard100,
  placard100,
  placard102,
  placard102,
  placard104,
  placard104,
  placard106,
  placard106,
  placard108,
  placard108,
  placard110,
  placard110,
  placard112,
  placard112,
  placard114,
  placard114,
  placard116,
  placard116,
  placard118,
  placard118,
  placard120,
  placard120,
  placard122,
  placard122,
  placard124,
  placard124,
  placard126,
  placard126,
  placard128,
  placard128,
  placard130,
  placard130,
  placard132,
  placard132,
  placard134,
  placard134,
  placard136,
  placard136,
  placard138,
  placard138,
  placard140,
  placard140,
  placard142,
  placard142,
  placard144,
  placard144,
  placard146,
  placard146,
  placard148,
  placard148,
  placard150,
  placard150,
  placard152,
  placard152,
  placard154,
  placard154,
  placard156,
  placard156,
  placard158,
  placard158,
  placard160,
  placard160,
  placard162,
  placard162,
  placard164,
  placard164,
  placard166,
  placard166,
  placard168,
  placard168,
  placard170,
  placard170,
  placard172,
  placard172,
  placard174,
  placard174,
  placard176,
  placard176,
  placard178,
  placard178,
  placard180,
  placard180,
  placard182,
  placard182,
  placard184,
  placard184,
  placard186,
  placard186,
  placard188,
  placard188,
  placard190,
  placard190,
  placard192,
  placard192,
  placard194,
  placard194,
  placard196,
  placard196,
  placard198,
  placard198,
  placard200,
  placard200,
  placard202,
  placard202,
  placard204,
  placard204,
  placard206,
  placard206,
  placard208,
  placard208,
  placard210,
  placard210,
  placard212,
  placard212,
  placard214,
  placard214,
  placard216,
  placard216,
  placard218,
  placard218,
  placard220,
  placard220,
  placard222,
  placard222,
  placard224,
  placard224,
  placard226,
  placard226,
  placard228,
  placard228,
  placard230,
  placard230,
  placard232,
  placard232,
  placard234,
  placard234,
  placard236,
  placard236,
  placard238,
  placard238,
  placard240,
  placard240,
  placard242,
  placard242,
  placard244,
  placard244,
  placard246,
  placard246,
  placard248,
  placard248,
  placard250,
  placard250,
  placard252,
  placard252,
  placard254,
  placard254,
  placard0,
  placard0,
  placard2,
  placard2,
  placard4,
  placard4,
  placard6,
  placard6,
  placard8,
  placard8,
  placard10,
  placard10,
  placard12,
  placard12,
  placard14,
  placard14,
  placard16,
  placard16,
  placard18,
  placard18,
  placard20,
  placard20,
  placard22,
  placard22,
  placard24,
  placard24,
  placard26,
  placard26,
  placard28,
  placard28,
  placard30,
  placard30,
  placard32,
  placard32,
  placard34,
  placard34,
  placard36,
  placard36,
  placard38,
  placard38,
  placard40,
  placard40,
  placard42,
  placard42,
  placard44,
  placard44,
  placard46,
  placard46,
  placard48,
  placard48,
  placard50,
  placard50,
  placard52,
  placard52,
  placard54,
  placard54,
  placard56,
  placard56,
  placard58,
  placard58,
  placard60,
  placard60,
  placard62,
  placard62,
};


static void drawtgintro(uint8 scale, uint8 bright) {
  position_and_scale_and_intensity(0,0, (uint8)((int16)scale*(int16)2/(int16)5), bright);
  Draw_VLp((int8 *)placard[((uint8)intro_rot+128)&255]);
  intro_rot -= 2;
}

static const int8 *digitlist[10] = {
  N0, N1, N2, N3, N4, N5, N6, N7, N8, N9
};


static inline void show_digit(int8 digit)
{
  Draw_VLp((int8 *)digitlist[digit]);
}
static void SHOW_NUM(int16 num, int8 absx, int8 absy, uint16 scale) { // left-aligned
  int8 digit, zeroes;

  // If scale is 0, this draws a number starting at the current position, which is at the origin
  // of the previous number offset by the number width.

  if (scale) position_and_scale(absx, absy, 0x20);

  // This replaces code that used divide by 10 and modulo 10.  Much faster.

  // handles full 16 bit range of -32768:32767  -  Uses negative numbers to avoid the issue of negating -32768

  if (num >= 0) num = -num; else SHOW_MINUS();   // TO DO: add a font character for '-'.
  digit = 0;
  zeroes = 1; // CLRing is shorter
  // max 11 add/subtracts...
  if (num <= -20000) { num += 20000; digit += 2; zeroes = 0; }
  if (num <= -10000) { num += 10000; digit += 1; zeroes = 0; }
  if (!zeroes) show_digit(digit);
  digit = 0;
  if (num <= -8000) { num += 8000; digit += 8; zeroes = 0; } else if (num <= -4000) { num += 4000; digit += 4; zeroes = 0; }
  if (num <= -2000) { num += 2000; digit += 2; zeroes = 0; }
  if (num <= -1000) { num += 1000; digit += 1; zeroes = 0; }
  if (!zeroes) show_digit(digit);
  digit = 0;
  if (num <= -800) { num += 800; digit += 8; zeroes = 0; } else if (num <= -400) { num += 400; digit += 4; zeroes = 0; }
  if (num <= -200) { num += 200; digit += 2; zeroes = 0; }
  if (num <= -100) { num += 100; digit += 1; zeroes = 0; }
  if (!zeroes) show_digit(digit);
  digit = 0;
  if (num <= -80) { num += 80; digit += 8; zeroes = 0; } else if (num <= -40) { num += 40; digit += 4; zeroes = 0; }
  if (num <= -20) { num += 20; digit += 2; zeroes = 0; }
  if (num <= -10) { num += 10; digit += 1; zeroes = 0; }
  if (!zeroes) show_digit(digit);
  show_digit((int8)-num);
}

static void Draw_lastscore(void)
{
  debugstr("Draw_lastscore");
  position_and_scale(-100,127,32);
  SHOW_SCORE();
  SHOW_NUM(LastScore, -98,113, 256);
}


static void Draw_highscore(void)
{
  debugstr("Draw_highscore");
  position_and_scale(40,127,32);
  SHOW_HIGH_SCORE();
  SHOW_NUM(HighScore, 52,113, 256);
}

static void Draw_insertcoin(void) // Not yet used
{
  debugstr("Draw_insertcoin");
  position_and_scale_and_intensity(-36,-80,32, global_flashing_intensity<<1);
  SHOW_INSERT_COIN();
  Intensity_a(127);
}

static void Draw_start(void)
{
  debugstr("Draw_start");
  position_and_scale_and_intensity(-34,-80,32, global_flashing_intensity<<1);
  SHOW_PRESS_START();
  Intensity_a(127);
}

/* Shields on the vectrex are sideways wrt the 'real' tailgunner */
static void Draw_shields(uint8 scale)
{
  debugstr("draw_shields");
  // TO DO: Draw with a random dot patterns (and do the static hissing white noise!)
  position_and_scale(0, 0, scale);
  Draw_VLp((int8 *)shieldvec); // not a big overhead, maybe 3000 cycles?  but could be lowered a lot
}

static inline void Draw_crosshair(int8 absx, int8 absy)
{
  debugstr("Draw_crosshair");

  position_and_scale(absx, absy, 0x18);
  Draw_VLp((int8 *)crosshair);
}
static void Draw_credits(void)
{
  debugstr("Draw_credits");
  position_and_scale_and_intensity(-39,-30,48,0x5F);
  SHOW_CREDITS();
  if (Credits > 9U) {
    SHOW_NUM(9, 0,0,0); // display any more than 9 as 9. (This is what many arcade machines did in real life)
  } else {
    SHOW_NUM(Credits, 0,0,0);
  }
}

static void Draw_ships_remaining(void)
{
  SHOW_NUM(10, 90,120, 64);
}

static void Draw_shields_remaining(void)
{
  SHOW_NUM(80, -5,127, 128);
}

static void Draw_score(void)
{
  SHOW_NUM(Score, -100,120, 64);
}


static int8 XJoy, YJoy, button1, button2, button3, button4;

static void poll_joystick(void)
{
  joybit();
  if (pot0 < -10) {
    // Left
    XJoy = -1;
  } else if (pot0 > 10) {
        // Right
        XJoy = 1;
  } else {
    XJoy = 0;
  }
  if (pot1 < -10) {
        // Down
        YJoy = -1;
  } else if (pot1 > 10) {
    // Up
        YJoy = 1;
  } else {
    YJoy = 0;
  }
  // TO DO: Read_Btns_Mask  in: A  out: A  alters: B,X
  //        so only need to push b,x, clr a (do this after making output from current source exactly match on Vide and linux)
  asm("pshs x,y,u,dp");
  asm("lda  #0");
  asm("jsr  0HF1B4 ; read_btns_mask":::"a","b","d");
  asm("puls dp,u,y,x");
  button1 = joystick1_button1;
  button2 = joystick1_button2;
  button3 = joystick1_button3;
  button4 = joystick1_button4;
}

static int8 crosshair_x, crosshair_y;

void follow_crosshair()
{
XJoy+=XJoy;XJoy+=XJoy;YJoy+=YJoy;YJoy+=YJoy;
  // constrain joysticks but carefully avoid integer overflow
  if ((crosshair_x >= 0) && (XJoy > 0) && (crosshair_x >= 127-XJoy)) /* ignore */;
  else if ((crosshair_x < 0) && (XJoy < 0) && (crosshair_x < -127-XJoy)) /* ignore */;
  else crosshair_x += XJoy;

  if ((crosshair_y >= 0) && (YJoy > 0) && (crosshair_y >= 127-YJoy)) /* ignore */;
  else if ((crosshair_y < 0) && (YJoy < 0) && (crosshair_y < -127-YJoy)) /* ignore */;
  else crosshair_y += YJoy;

  Draw_crosshair(crosshair_x, crosshair_y);
}


static void init_hardware(void)
{
// To do: make consistent with Jaakko's code...

        // setup joystick read function to read only joystick 1
        epot0 = 1;
        epot1 = 3;
        epot2 = 0;
        epot3 = 0;
}

static uint16 rseed;
static inline uint16 urandom16(void)
{
  // VECTREX HAS A BUILT-IN RANDOM THAT WE CAN USE!
  // (though it doesn't seem very good - this may be better and faster)
  return (rseed = (rseed * 2053U) + 13849U);
}

// Slow. Need to recode where this is used, to use 8 bits and masking.  Temporary.
static inline uint16 irand(uint16 max) {
  // returns int 0..max-1
  return (uint16)(urandom16() % max); // probably not very random, but this is a video game, not crypto
}

static inline int16 pickrandom(int16 low, int16 high)
{
  // We'll just assume that high > low...
  return (int16)irand((uint16)(high-low+1))+low;  // pick a random integer between low and high inclusive.
}


static int8 stardots[8]; // fill with randoms ONCE - could move this into ROM...

static int8 rotated3[8]; // rotate stardots into place
static int8 rotated2[8];
static int8 rotated1[8];
static int8 rotated0[8];

static int8 *rotated[4] = {
  rotated0,
  rotated1,
  rotated2,
  rotated3
};

static uint8 starfield_scale;

#define STAR_SPEED 4U /* must be power of 2 */

static inline void init_stars(void)
{
  starfield_scale = (uint8)0xFF;

  // origin at 0,0
  stardots[0] = -60;                        stardots[1] = (int8)pickrandom(-45,45);  // LEFT
  stardots[2] = 60;                         stardots[3] = (int8)pickrandom(-45,45);  // RIGHT
  stardots[4] = (int8)pickrandom(-45,45);   stardots[5] = 60;                        // TOP
  stardots[6] = (int8)pickrandom(-45,45);   stardots[7] = -60;                       // BOT

  stardots[6] -= stardots[4]; stardots[7] -= stardots[5]; // abs to rel
  stardots[4] -= stardots[2]; stardots[5] -= stardots[3];
  stardots[2] -= stardots[0]; stardots[3] -= stardots[1];

  rotate_vl((uint8)(pickrandom(0,15)), 4U, stardots, rotated0);
  rotate_vl((uint8)(pickrandom(16,31)), 4U, stardots, rotated1);
  rotate_vl((uint8)(pickrandom(32,47)), 4U, stardots, rotated2);
  rotate_vl((uint8)(pickrandom(48,63)), 4U, stardots, rotated3);
}

// about 5K cycles.  just a placeholder.
static void stars(uint8 speed) // speed must be a power of 2
{
  uint8 shifted_scale;
  int8 i;

  debugstr("stars");
  // Faster algorithm than my original Bresenham-based code; also does approximate fading with distance.
  // TO DO!  speed/distance of receding stars should reduce as
  //         the approach the center (same power law as perspective
  //         of a line of fenceposts - screen distance between each
  //         is the previous distance * X where X is < 1.0 )

  shifted_scale = starfield_scale-(uint8)0xBF;
  for (i = 0; i < 4; i++) {
    if ((uint8)shifted_scale > (uint8)0x20) { // disappear here
      Reset0Ref();
      //Intensity_a(127);
      Intensity_a((shifted_scale>>1)-0x10);
      SET_DRAW_SCALE(shifted_scale);
      dots(4, rotated[i]);
    } else {
      if (((uint8)shifted_scale & (uint8)0x3F) == 0U) {
        // pull in new ring of stars
        rotate_vl((uint8)(pickrandom(0,63)), 4U, stardots, rotated[i]);
      }
    }
    shifted_scale += 0x40;
  }
  starfield_scale -= speed; // must be power of 2
}

static int8 last_button1;

static boolean firing;
static uint16 missile_scale;
static int8 missile_x, missile_y;

static const int8 paired_missiles[] = {
  0,   0,-127,
  -1,  -5,-5,                 // left to right pointing
  -1,  5,30, -1,  5,-30,
  -1,  -5,5,
  0,   0,127,    0, 0,127, // (large move in two parts)
  -1,  5,5,
  -1,  -5,-30, -1,  -5,30,   // right to left pointing
  -1,  5,-5,
  1
};

#define MAX_BRIGHTNESS 127 // Careful! 255 doesn't work!
void Draw_missiles(void)
{
// NOT WORKING. NOTHING DRAWS.
   /* DEBUG */ //SHOW_NUM((int16)missile_scale,0,80,127);
   /* DEBUG */ //SHOW_NUM((int16)MAX_BRIGHTNESS,0,60,127);
   position_and_scale_and_intensity(missile_x,missile_y, (uint8)missile_scale, MAX_BRIGHTNESS);
   Draw_VLp((int8 *)paired_missiles);
// This hack to draw both left and right missiles in one call doesn't
// look as nice as I hoped it would on the screen.  I think I am going
// to have to go back to individual left and right missiles, and
// also orient them toward the crosshair using trig, then rotate
// them using the built-in bios procedure.
}

int main(void) {
  uint8 init, time = 0;
  vec2 sp;
  int8 Shots_fired;
  uint8 placard_scale, placard_brightness;

  // init ship
  ship_A.mesh = (Mesh*)&model1_mesh;
  ship_B.mesh = (Mesh*)&model2_mesh;
  ship_C.mesh = (Mesh*)&model3_mesh;
  ship_D.mesh = (Mesh*)&model4_mesh;

  ship_A.wave = (AttackWave*)&model1_wave;
  ship_B.wave = (AttackWave*)&model2_wave;
  ship_C.wave = (AttackWave*)&model3_wave;
  ship_D.wave = (AttackWave*)&model1_wave;

  Object3d* ships[] = { &ship_A, &ship_B, &ship_C, &ship_D };

#define MAX_SHIPS (uint8)(sizeof(ships) / sizeof(Object3d*))

  // I think all the static data could safely be initialised to 0 in a block
  // by the startup code.  (Possibly excepting the two arrays containing pointers
  // to const arrays).  I don't believe I have any statics that require initialisation
  // to any non-0 values.
  missile_scale = rseed = 
    (uint16)(Debug = Score = HighScore = LastScore = frame_number =
      (int16)(State = last_button1 = crosshair_x = crosshair_y = XJoy = YJoy = firing = Shots_fired =
        (int8)(Credits = global_flashing_intensity = init = time = 0)));

  button1 = button2 = button3 = button4 = 0;
  init_hardware();
  init_stars();
  Score = 72; HighScore = 2047; LastScore = 132; // only for demo.

  //if (Credits == 0) {
    placard_scale = (uint8)((int16)(0xFF-160));
    placard_brightness = 127;//(uint8)((int16)(((int16)MAX_BRIGHTNESS+(int16)MAX_BRIGHTNESS-160)));
    intro_rot = 128;
  //}
State=TUMBLING;

  while (1) {
    stars(STAR_SPEED); // about 5K cycles.  Needs work.
    Intensity_a(127);

    if ((frame_number & 16) == 0) {
      global_flashing_intensity += 4; // 16 frames of getting brighter
    } else {
      global_flashing_intensity -= 4; // then 16 frames of getting darker
    }
    frame_number++; // wraps.

    Wait_Recal();
    //Joy_Digital();
    poll_joystick();
    Read_Btns();

    //SHOW_NUM(State, 0,80, 127);
    debugstr("main loop");
    // approaching banner:

    if (State >= PLAYING) {
      Draw_score();
      Draw_shields_remaining();
      Draw_ships_remaining();
    } else if (State < COINED) {
      //Draw_highscore();
      Draw_insertcoin();
    } else if (State == COINED) {
      //Draw_highscore();
      Draw_start();
    }
    //Draw_credits();  // triggers gcc 6809 bug - usually to do with arithmetic on constants...
    //if (Credits == 0) Draw_insertcoin(); else Draw_start();

    if (State == PLAYING) follow_crosshair();

    if (State == TUMBLING) {
      placard_scale += 1;
      if (placard_scale >= 254) {
        placard_scale = (uint8)((int16)(0xFF-160));
        //placard_brightness = (uint8)((int16)(((int16)MAX_BRIGHTNESS+(int16)MAX_BRIGHTNESS-160)));
        intro_rot = 128;
        State = PREGAME;
      } else drawtgintro(placard_scale, placard_brightness>>1);
    }

    if (button1 && !last_button1) { // Add Coin ;-)
                                    // Changes display only if not in play mode
                                    // If in play mode, no visible change
                                    // Credits display maxes out at 9 but internally goes up to 255.
      Credits += 1;
      if (State < COINED) State = COINED;
    }
    last_button1 = button1;

    if (button2 && (State == COINED)) {
      State = PLAYING;
    } 

    if (State == PLAYING && button3) {  // Shields
      if (pickrandom(0,31)) Draw_shields(0xF0);
    }

    if (State == PLAYING && button4 && !firing && !button3) {  // Fire. One at a time and not when shields up.
      firing = 1;    // firing position is higher than on original game for a reason :-)
      Shots_fired += 1;
      missile_x = 0; missile_y = 0;  // we treat the missile as being in the center of the ship
                                     // but *draw* missiles to the left and right of the center...
      missile_scale = 0x7f; // start from left and right edges
    }

    if (firing) {
      missile_scale -= 1U;
      if (missile_scale <= 4U) {
         firing = 0; // check for hit here
      } else {
        int16 m, mx,my, delta_y;

        mx = (int16)crosshair_x - (int16)missile_x ;  // re-center on the missile.
        // not sure why it converges on Y so fast.  Ought to start at foot of screem
        my = (int16)crosshair_y - (int16)missile_y ;  // offsets may now be outside -128:127 range

        delta_y = (((my) << 5L) - my)>>5L;
        // if (delta_y > 8L) delta_y = 8L; else if (delta_y < -8L) delta_y = -8L;

        missile_x = (int8)(((((mx) << 5L) - mx)>>5L) + (int16)missile_x);  // move 15/16ths of the distance to crosshair
        missile_y = (int8)((int16)delta_y + (int16)missile_y);  // add original offset back in

        m = (int16)missile_scale<<3L;   // 7/8ths
        m -= (int16)missile_scale;
        missile_scale = (uint8)((int16)m>>3L);
      }
      // stop RHS from going off-screen - these would not be needed if we used individual missiles
      if (((int16)missile_x + (int16)missile_scale) > 127L) missile_x = (int8)(127L-(int16)missile_scale);
      // stop LHS from going off-screen
      if (((int16)missile_x - (int16)missile_scale) < -127L) missile_x = (int8)(-127L+(int16)missile_scale);

      Draw_missiles();
    }

    if (State != TUMBLING) {
    //numships = 3;
    uint8 n = 3;//numShips;

    while (n--) {
      if (!init /* || b1 || b2 || b3 */) {
        ships[n]->position.x = 0;
        ships[n]->position.y = 0;
        ships[n]->position.z = 500 + (int8)Random_3();

        ships[n]->angularVelocity.x = (int8)Random_3() >> 5;
        ships[n]->angularVelocity.y = (int8)Random_3() >> 5;
        ships[n]->angularVelocity.z = (int8)Random_3() >> 5;

        ships[n]->angles.x = (int8)Random_3();
        ships[n]->angles.y = (int8)Random_3();
        ships[n]->angles.z = (int8)Random_3();

        time = 0;
      }

#ifdef USE_PRECALCULATED
      // use precalculated rotation, drawscale and screen position
      //
      uint8 frame = time;
      if (frame >= ships[n]->wave->numFrames)
        frame = ships[n]->wave->numFrames - 1;

      ships[n]->angles.x = (int8)ships[n]->wave->rx[frame]; 
      ships[n]->angles.y = (int8)ships[n]->wave->ry[frame];
      ships[n]->angles.z = (int8)ships[n]->wave->rz[frame];

      rotateMatrixEuler(&ships[n]->rotation, &ships[n]->angles);

      uint8 scale = ships[n]->wave->sc[frame];

      sp.x = ships[n]->wave->sx[frame];
      sp.y = ships[n]->wave->sy[frame];
#else
      // get object screen position, draw scale and rotation matrix
      //
      //if (!b4) {
        ships[n]->angles.x += ships[n]->angularVelocity.x; 
        ships[n]->angles.y += ships[n]->angularVelocity.y;
        ships[n]->angles.z += ships[n]->angularVelocity.z;
      //}
      rotateMatrixEuler(&ships[n]->rotation, &ships[n]->angles);

      ships[n]->position.x -= (int8)(ships[n]->rotation.Z.x >> 8) >> 3;
      ships[n]->position.y -= (int8)(ships[n]->rotation.Z.y >> 8) >> 3;
      ships[n]->position.z -= (int8)(ships[n]->rotation.Z.z >> 8) >> 3;

      uint8 scale = transformPosition(&ships[n]->position, &sp);
#endif

      Reset0Ref(); // (temp.  ship frozen on edge of screen was moving up and down along with the cursor!)

      if (scale) {
        // transform vertices, set brightness and draw object
        //
        mulMatrix(&ships[n]->rotation, ships[n]->mesh->vertices, ships[n]->mesh->numVertices, screenPoints);

        BEGIN_DRAW
          SET_BRIGHTNESS(64+32)

          SET_DRAW_SCALE(camDrawScale)
          MOVE_VECTOR(sp.x, sp.y)
          WAIT_DRAW_FINISH
    
          SET_DRAW_SCALE(scale)
#ifdef USE_ASM_OPTIMIZATIONS
          drawLineStripIndexed_asm(ships[n]->mesh->lineStrips, scale, screenPoints);
#else
          drawLineStrips(ships[n]->mesh->lineStrips, /*scale,*/ screenPoints);
#endif
          WAIT_DRAW_FINISH
        END_DRAW
      }
    } // loop over ships
    } // test State != TUMBLING

    init = 1;
    time++;
  }

  return 0;
  (void) SHOW_MINUS;
  (void) SHOW_SCORE;
  (void) SHOW_HIGH_SCORE;
  (void) SHOW_CREDITS;
  (void) SHOW_INSERT_COIN;
  (void) SHOW_PRESS_START;
  (void) SHOW_N0;
  (void) SHOW_N1;
  (void) SHOW_N2;
  (void) SHOW_N3;
  (void) SHOW_N4;
  (void) SHOW_N5;
  (void) SHOW_N6;
  (void) SHOW_N7;
  (void) SHOW_N8;
  (void) SHOW_N9;
  (void) stars;
  (void) Draw_shields_remaining;
  (void) Draw_ships_remaining;
  (void) Draw_credits;
  (void) Draw_shields;
  (void) Draw_start;
  (void) Draw_insertcoin;
  (void) Draw_highscore;
  (void) Draw_lastscore;
  (void) drawtgintro;
  (void) frame_number;
}

// This is really a very dirty way of including some assembly code in a C program for the 6809!  Sorry!
// The actual code is by Jaakko Huovinen.

#ifdef USE_ASM_OPTIMIZATIONS

void rotateMatrixEuler_asm(mat16* R, vec8* euler) {
   //asm("    .globl    _rotateMatrixEuler_asm");
   asm("WORK_BUFFER_BASE = 0x80");

  asm("	.macro	WAIT_AND_DRAW, label, brightness");

  asm("	ldb		#0x40");
  asm("	label:");
  asm("	bitb		_VIA_int_flags");
  asm("	beq		label");
  asm("	ldd		*x_");

  asm("	stb		_VIA_port_a");
  asm("	clr		_VIA_port_b");
  asm("	inc		_VIA_port_b");
  asm("	sta		_VIA_port_a");
  asm("	ldb		*scale_");
  asm("	stb		_VIA_t1_cnt_lo");
  asm("	lda		#brightness");
  asm("	sta		_VIA_shift_reg	");
  asm("	clr		_VIA_t1_cnt_hi");
  asm("	.endm");

   asm("    .macro    muls8s8    A_, B_, Aneg_, Bpos, Bposs, exit");

   asm("    lda    *A_");
   asm("    bmi    Aneg_");
   asm("    ldb    *B_");
   asm("    mul");
   asm("    bge    Bpos");
   asm("    suba   *A_");
   asm("    Bpos:");
   asm("    bra    exit");
   asm("    ");
   asm("    Aneg_:");
   asm("    ldb    *B_");
   asm("    mul");
   asm("    bge    Bposs");
   asm("    suba   *A_");
   asm("    Bposs:");
   asm("    suba   *B_");
   asm("    exit:");
   asm("    .endm");


//;void rotateMatrixEuler(mat16* R, vec8* euler) {
//;
//;    int8 cx, sx, cy, sy, cz, sz;
//;    const int8* s = &sinTable[0];
//;
//;    cx = s[(uint8)euler->z + 64]; 
//;    sx = s[(uint8)euler->z];
//;    cy = s[(uint8)euler->y + 64]; 
//;    sy = s[(uint8)euler->y];
//;    cz = s[(uint8)euler->x + 64]; 
//;    sz = s[(uint8)euler->x];
//;
//;    R->X.x = ((int16)cx * cy) << 1;
//;    R->Y.x = ((int16)sx * cy) << 1;
//;    R->Z.x = ((int16)-sy) << 8;
//;
//;    R->X.y = (((((int16)cx * sy) >> 8) * sz) << 2) - (((int16)sx * cz) << 1);
//;    R->Y.y = (((((int16)sx * sy) >> 8) * sz) << 2) + (((int16)cx * cz) << 1);
//;    R->Z.y = ((int16)cy * sz) << 1;
//;
//;    R->X.z = (((((int16)cx * sy) >> 8) * cz) << 2) + (((int16)sx * sz) << 1);
//;    R->Y.z = (((((int16)sx * sy) >> 8) * cz) << 2) - (((int16)cx * sz) << 1);
//;    R->Z.z = ((int16)cy * cz) << 1;


//;	registers on entry:
//;	X			*R
//;
//;	stack on entry:
//;	S 			return address
//;	S + 2 		*euler

  asm("WORK_BUFFER_BASE = 0x80");

  asm("cx_ = (WORK_BUFFER_BASE + 0)");
  asm("sx_ = (cx_ + 1)");
  asm("cy_ = (sx_ + 1)");
  asm("sy_ = (cy_ + 1)");
  asm("cz_ = (sy_ + 1)");
  asm("sz_ = (cz_ + 1)");
  asm("tmp_ = (sz_ + 1)");
  asm("cxsy_ = (tmp_ + 2)");
  asm("sxsy_ = (cxsy_ + 1)");

  //asm("_rotateMatrixEuler_asm:");

   asm("    pshs   y, u, dp			; save DP");
   asm("    lda    #(>_workBuffer)");
   asm("    tfr    a, dp		; DP = &workBuffer (HI)");

//;    int8 cx, sx, cy, sy, cz, sz;
//;    const int8* s = &sinTable[0];
//;
   asm("    ldy    2+5, s            ; Y = *euler");
   asm("    ldu    #_sinTable+128    ; U = &sinTable[128]");

//;    cx = s[(uint8)euler->z + 64]; 
//;    sx = s[(uint8)euler->z];
//;    cy = s[(uint8)euler->y + 64]; 
//;    sy = s[(uint8)euler->y];
//;    cz = s[(uint8)euler->x + 64]; 
//;    sz = s[(uint8)euler->x];

   asm("    lda    0, y");
   asm("    ldb    0, y");
   asm("    adda   #64");
   asm("    lda    a, u");
   asm("    ldb    b, u");
   asm("    std    *cz_");

   asm("    lda    1, y");
   asm("    ldb    1, y");
   asm("    adda   #64");
   asm("    lda    a, u");
   asm("    ldb    b, u");
   asm("    std    *cy_");

   asm("    lda    2, y");
   asm("    ldb    2, y");
   asm("    adda   #64");
   asm("    lda    a, u");
   asm("    ldb    b, u");
   asm("    std    *cx_");

//;    R->X.x = ((int16)cx * cy) << 1;

   asm("    muls8s8    cx_, cy_, rme0, rme1, rme2, rme3");
   asm("    aslb");
   asm("    rola");
   asm("    std    0, x");

//;    R->Y.x = ((int16)sx * cy) << 1;

   asm("    muls8s8    sx_, cy_, rme4, rme5, rme6, rme7");
   asm("    aslb");
   asm("    rola");
   asm("    std    6, x");

//;    R->Z.x = ((int16)-sy) << 8;

   asm("    lda    *sy_");
   asm("    nega");
   asm("    clrb");
   asm("    std    12, x");

//;    R->X.y = (((((int16)cx * sy) >> 8) * sz) << 2) - (((int16)sx * cz) << 1);

   asm("    muls8s8    sx_, cz_, rme16, rme17, rme18, rme19");
   asm("    aslb");
   asm("    rola");
   asm("    std    *tmp_");
   asm("    muls8s8    cx_, sy_, rme8, rme9, rme10, rme11");
   asm("    sta    *cxsy_");
   asm("    muls8s8    cxsy_, sz_, rme12, rme13, rme14, rme15");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    subd   *tmp_");
   asm("    std    2, x");

//;    R->Y.y = (((((int16)sx * sy) >> 8) * sz) << 2) + (((int16)cx * cz) << 1);

   asm("    muls8s8    sx_, sy_, rme20, rme21, rme22, rme23");
   asm("    sta    *sxsy_");
   asm("    muls8s8    sxsy_, sz_, rme24, rme25, rme26, rme27");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    std    *tmp_");
   asm("    muls8s8    cx_, cz_, rme28, rme29, rme30, rme31");
   asm("    aslb");
   asm("    rola");
   asm("    addd   *tmp_");
   asm("    std    8, x");

//;    R->Z.y = ((int16)cy * sz) << 1;

   asm("    muls8s8    cy_, sz_, rme32, rme33, rme34, rme35");
   asm("    aslb");
   asm("    rola");
   asm("    std    14, x");

//;    R->X.z = (((((int16)cx * sy) >> 8) * cz) << 2) + (((int16)sx * sz) << 1);

   asm("    muls8s8    cxsy_, cz_, rme36, rme37, rme38, rme39");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    std    *tmp_");
   asm("    muls8s8    sx_, sz_, rme40, rme41, rme42, rme43");
   asm("    aslb");
   asm("    rola");
   asm("    addd   *tmp_");
   asm("    std    4, x");

//;    R->Y.z = (((((int16)sx * sy) >> 8) * cz) << 2) - (((int16)cx * sz) << 1);

   asm("    muls8s8    cx_, sz_, rme44, rme45, rme46, rme47");
   asm("    aslb");
   asm("    rola");
   asm("    std    *tmp_");
   asm("    muls8s8    sxsy_, cz_, rme48, rme49, rme50, rme51");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    subd   *tmp_");
   asm("    std    10, x");

//;    R->Z.z = ((int16)cy * cz) << 1;

   asm("    muls8s8    cy_, cz_, rme52, rme53, rme54, rme55");
   asm("    aslb");
   asm("    rola");
   asm("    std    16, x");

   asm("    puls    y, u, dp");

   asm("    rts");
  (void)R; (void)euler;
}

void mulMatrix_asm(mat16* R, vec8* v, uint8 size, int8* sp) {
   //asm("    .globl    _mulMatrix_asm");

//;void mulMatrix(mat16* R, vec8* v, uint8 size, int8* sp) {
//;
//;    int8 x, y;//, z;
//;
//;    while (size--) {
//;        x = (int8)(((R->X.x >> 7) * v->x) >> 7);
//;        x += (int8)(((R->Y.x >> 7) * v->y) >> 7);
//;        x += (int8)(((R->Z.x >> 7) * v->z) >> 7);
//;
//;        y = (int8)(((R->X.y >> 7) * v->x) >> 7);
//;        y += (int8)(((R->Y.y >> 7) * v->y) >> 7);
//;        y += (int8)(((R->Z.y >> 7) * v->z) >> 7);
//;
//;        *sp++ = x;
//;        *sp++ = y;
//;        v++;
//;    }
//;}

//;    registers on entry:
//;    X			*R
//;    B            size
//;
//;	stack on entry:
//;	S 			return address
//;	S + 2 		*v
//;	S + 4 		*sp

  asm("WORK_BUFFER_BASE = 0x80");

  asm("x_ = (WORK_BUFFER_BASE + 0)");
  asm("y_ = (x_ + 1)");
  asm("z_ = (y_ + 1)");
  asm("Xx_ = (z_ + 1)");
  asm("Yx_ = (Xx_ + 1)");
  asm("Zx_ = (Yx_ + 1)");
  asm("Xy_ = (Zx_ + 1)");
  asm("Yy_ = (Xy_ + 1)");
  asm("Zy_ = (Yy_ + 1)");
  asm("size_ = (Zy_ + 1)");
  asm("result_ = (size_ + 1)");


  //asm("_mulMatrix_asm:");

   asm("    pshs   u, y, dp			; save DP");
   asm("    lda    #(>_workBuffer)");
   asm("    tfr    a, dp		; DP = &workBuffer (HI)");

   asm("    stb    *size_");
   asm("    ldy    7, s        ; Y = *v");
   asm("    ldu    2+7, s      ; U = *sp");

   asm("    ldd    0, x");
   asm("    sta    *Xx_");
   asm("    ldd    6, x");
   asm("    sta    *Yx_");
   asm("    ldd    12, x");
   asm("    sta    *Zx_");

   asm("    ldd    2, x");
   asm("    sta    *Xy_");
   asm("    ldd    8, x");
   asm("    sta    *Yy_");
   asm("    ldd    14, x");
   asm("    sta    *Zy_");

//;    while (size--) {

  asm("mulMatrix_loop:");
   asm("    ");
   asm("    ldd    , y++");
   asm("    std    *x_");
   asm("    lda    , y+");
   asm("    sta    *z_");

//;        x = (int8)(((R->X.x >> 7) * v->x) >> 7);

   asm("    muls8s8    Xx_, x_, muma0, muma1, muma2, muma3");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    sta    *result_");
   asm("    ");
//;        x += (int8)(((R->Y.x >> 7) * v->y) >> 7);

   asm("    muls8s8    Yx_, y_, muma4, muma5, muma6, muma7");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    adda   *result_");
   asm("    sta    *result_");


//;        x += (int8)(((R->Z.x >> 7) * v->z) >> 7);

   asm("    muls8s8    Zx_, z_, muma8, muma9, muma10, muma11");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    adda   *result_");
   asm("    sta    , u+");

//;        y = (int8)(((R->X.y >> 7) * v->x) >> 7);

   asm("    muls8s8    Xy_, x_, muma12, muma13, muma14, muma15");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    sta    *result_");

//;        y += (int8)(((R->Y.y >> 7) * v->y) >> 7);

   asm("    muls8s8    Yy_, y_, muma16, muma17, muma18, muma19");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    adda   *result_");
   asm("    sta    *result_");

//;        y += (int8)(((R->Z.y >> 7) * v->z) >> 7);

   asm("    muls8s8    Zy_, z_, muma20, muma21, muma22, muma23");
   asm("    aslb");
   asm("    rola");
   asm("    aslb");
   asm("    rola");
   asm("    adda   *result_");
   asm("    sta    , u+");

//;
//;        *sp++ = x;
//;        *sp++ = y;
//;        v++;
//;    }

   asm("    dec    *size_");
   asm("    lbne    mulMatrix_loop");

   asm("    puls    u, y, dp");
   asm("    rts");
  (void)R; (void)v; (void)size; (void)sp;
}


void drawLineStripIndexed_asm(int8* lengthIndex, uint8 drawScale, int8 *screenPointBuffer) {
   //asm("    .globl    _drawLineStripIndexed_asm");

//;void drawLineStripIndexed(uint8* lengthIndex, uint8 drawScale, int8 *screenPointBuffer) {
//;
//;	int8 x, y, xp, yp;
//;	int16 vx, vy;
//;	uint8 length, index, scale;
//;	xp = 0;
//;	yp = 0;
//;
//;#define WAIT_AND_DRAW_OVERFLOW(brightness) 
//;		scale = drawScale;			
//;		index = *lengthIndex++;			
//;		x = screenPointBuffer[index];		
//;		y = screenPointBuffer[index + 1];	
//;		vx = (int16)x - (int16)xp;	
//;		vy = (int16)y - (int16)yp;	
//;		if (OVERFLOW_8(vx) || OVERFLOW_8(vy)) {	
//;			vx >>= 1;							
//;			vy >>= 1;							
//;			if (drawScale < 127) {				
//;        			scale = drawScale << 1;		
//;			} else {							
//;	    			WAIT_DRAW_FINISH			
//;				dp_VIA_shift_reg = brightness;	
//;       			DRAW_VECTOR_SCALE((int8)vx, (int8)vy, scale)	
//;			}											
//;		} 												
//;		xp = x;											
//;		yp = y;											
//;	    	WAIT_DRAW_FINISH									
//;		dp_VIA_shift_reg = brightness;						
//;       	DRAW_VECTOR_SCALE((int8)vx, (int8)vy, scale)			
//;
//;	while (*lengthIndex) {
//;		length = *lengthIndex++;
//;
//;		// move to the first vertex
//;	    	WAIT_AND_DRAW_OVERFLOW(0x00)
//;
//;		while (--length) {
//;			// draw to next vertex
//;	    		WAIT_AND_DRAW_OVERFLOW(0xff)
//;		}
//;	}
//;    	//WAIT_DRAW_FINISH
//;}

//;	input params:
//;	X			*lengthIndex
//;	B			drawScale
//;
//;	stack:
//;	S 			return address
//;	S + 2		*screenPointBuffer

  asm("x_			= WORK_BUFFER_BASE");
  asm("y_			= (x_ + 1)");
  asm("xp_			= (y_ + 1)");
  asm("yp_			= (xp_ + 1)");
  asm("scale_		= (yp_ + 1)");
  asm("drawScale_	= (scale_ + 1)");
  asm("length_		= (drawScale_ + 1)");


  asm("	.macro	WAIT_AND_DRAW_OVERFLOW, brightness, overflow_x, overflow_y, checkDoubleScale, l2, l3, waitAndDraw, storeScale");

//;		scale = drawScale;			
//;		index = *lengthIndex++;			
//;		x = screenPointBuffer[index];		
//;		y = screenPointBuffer[index + 1];	
//;		vx = (int16)x - (int16)xp;	
//;		vy = (int16)y - (int16)yp;	

  asm("	lda		*drawScale_");
  asm("	sta		*scale_");
  asm("	lda		, x+");
  asm("	ldd		a, y");
  asm("	tfr		d, u");
  asm("	suba		*xp_");
  asm("	bvs		overflow_x");
  asm("	subb		*yp_");
  asm("	bvs		overflow_y");
  asm("	std		*x_");
  asm("	bra		waitAndDraw");
  asm("	");
//;		if (OVERFLOW_8(vx) || OVERFLOW_8(vy)) {	
//;			vx >>= 1;							
//;			vy >>= 1;							

  asm("	overflow_y:");
  asm("	asra			");
  asm("	asrb						");
  asm("	eorb		#0x80");
  asm("	bra		checkDoubleScale");

  asm("	overflow_x:");
  asm("	asra						");
  asm("	eora		#0x80");
  asm("	subb		*yp_");
  asm("	asrb						");
  asm("	bvc		checkDoubleScale");
  asm("	eorb		#0x80");

//;			if (drawScale < 127) {				
//;        			scale = drawScale << 1;		

  asm("	checkDoubleScale:");
  asm("	std		*x_");
  asm("	lsl		*scale_");
  asm("	bcc		waitAndDraw");

//;			} else {							
//;	    			WAIT_DRAW_FINISH				
//;				dp_VIA_shift_reg = brightness;	
//;       			DRAW_VECTOR_SCALE((int8)vx, (int8)vy, scale)	
//;			}											
//;		} 

  asm("	ror		*scale_");
  asm("	WAIT_AND_DRAW, l3, brightness");

//;		xp = x;							
//;		yp = y;							
//;	    	WAIT_DRAW_FINISH									
//;		dp_VIA_shift_reg = brightness;						
//;       	DRAW_VECTOR_SCALE((int8)vx, (int8)vy, scale)			

  asm("	waitAndDraw:");
  asm("	stu		*xp_");
  asm("	WAIT_AND_DRAW, l2, brightness");

  asm("	.endm");

  //asm("_drawLineStripIndexed_asm:");

  asm("	pshs		dp			; save DP");
  asm("	lda		#(>_workBuffer)");
  asm("	tfr		a, dp		; DP = &workBuffer(hi)");

  asm("	stb		*drawScale_");
  asm("	ldy		3, s				; Y = *screenPointBuffer");

//;	xp = 0;
//;	yp = 0;

  asm("	clra");
  asm("	sta		*xp_");
  asm("	sta		*yp_");

//;	while (*lengthIndex) {
//;		length = *lengthIndex++;
//;
  asm("	lda		, x+");

  asm("drawLineStripIndexed_outer_loop:");

  asm("	sta		*length_");

//;		// move to the first vertex
//;	    	WAIT_AND_DRAW_OVERFLOW(0x00)
//;
  asm("	WAIT_AND_DRAW_OVERFLOW, 0x00, dlsi0, dlsi1, dlsi2, dlsi3, dlsi4, dlsi5, dlsi6");
  asm("	");
//;		while (--length) {
//;			// draw to next vertex
//;	    		WAIT_AND_DRAW_OVERFLOW(0xff)
//;		}
  asm("	dec		*length_");
  asm("	beq		drawLineStripIndexed_inner_loop_exit");

  asm("drawLineStripIndexed_inner_loop:");

  asm("	WAIT_AND_DRAW_OVERFLOW, 0xff, dlsi7, dlsi8, dlsi9, dlsi10, dlsi11, dlsi12, dlsi13");
  asm("	dec		*length_");
  asm("	bne		drawLineStripIndexed_inner_loop");

//;	}
  asm("drawLineStripIndexed_inner_loop_exit:");

  asm("	lda		, x+");
  asm("	lbne		drawLineStripIndexed_outer_loop");

  asm("drawLineStripIndexed_exit:");

  asm("	puls		dp");
  asm("	rts");
  (void)lengthIndex; (void)drawScale; (void)screenPointBuffer;
}


uint8 transformPosition_asm(vec16* p, vec2* sp) {
   //asm("    .globl    _transformPosition_asm");

//;uint8 transformPosition(vec16* p, vec2* sp) {
//;    int16 x, y, z;
//;    int8 s = 6;
//;    
//;    x = p->x;
//;    y = p->y;
//;    z = p->z;
//;
//;    if ((z < 0) || (ABS16(x) > z) || (ABS16(y) > z)) {
//;        return 0;
//;    }
//;    z <<= 1;
//;
//;    while (z > 0) {
//;        s--;
//;        x <<= 1;
//;        y <<= 1;
//;        z <<= 1;
//;    }
//;    uint8 div = ZDivTable[(uint8)(z >> 8) - 128];
//;    sp->x = (int8)(((x >> 7) * div) >> 8);
//;    sp->y = (int8)(((y >> 7) * div) >> 8);
//;
//;    // calculate object drawscale
//;    uint16 drawScale = ((uint16)camDrawScale * div) >> (8 + s /*- obj->mesh.scale*/);
//;    if (drawScale > 255)
//;        return 0;
//;
//;    return (uint8)drawScale;
//;}

//;	registers on entry:
//;	X			*p
//;
//;	stack on entry:
//;	S 			return address
//;	S + 2 		*sp

  asm("WORK_BUFFER_BASE = 0x80");

  asm("x_ = (WORK_BUFFER_BASE + 0)");
  asm("y_ = (x_ + 2)");
  asm("z_ = (y_ + 2)");
  asm("absX_ = (z_ + 2)");
  asm("absY_ = (absX_ + 2)");
  asm("s_ = (absY_ + 2)");
  asm("div_ = (s_ + 1)");

  //asm("_transformPosition_asm:");
//;    int8 s = 6;
//;
//;    x = p->x;
//;    y = p->y;
//;    z = p->z;
//;
//;    if ((z < 0) || (ABS16(x) > z) || (ABS16(y) > z)) {
//;        return 0;
//;    }
//;    z <<= 1;

   asm("    lda    4, x");
   asm("    bge    transformPosition_abs");
   asm("    clrb");
   asm("    rts");

  asm("transformPosition_abs:");

   asm("    pshs   y, u, dp			; save DP");
   asm("    lda    #(>_workBuffer)");
   asm("    tfr    a, dp		; DP = &workBuffer (HI)");

   asm("    lda    #6+8");
   asm("    sta    *s_");
   asm("    ldy    2+5, s    ; Y = *sp");

   asm("    ldd    0, x");
   asm("    std    *x_");
   asm("    bge    transformPosition_xp");
   asm("    nega");
   asm("    negb");
   asm("    sbca   #0			");
  asm("transformPosition_xp:");
   asm("    std    *absX_        ; abs(x)");

   asm("    ldd    2, x");
   asm("    std    *y_");
   asm("    bge    transformPosition_yp");
   asm("    nega");
   asm("    negb");
   asm("    sbca   #0			");
  asm("transformPosition_yp:");
   asm("    std    *absY_    ; abs(y)");

   asm("    ldd    4, x");
   asm("    std    *z_");

   asm("    cmpd   *absX_			");
   asm("    bmi   transformPosition_OOF		; (ABS16(x) > z)");

   asm("    cmpd   *absY_			");
   asm("    bmi   transformPosition_OOF		; (ABS16(y) > z)");

   asm("    aslb");
   asm("    rola");

//;    while (z > 0) {
//;        s--;
//;        x <<= 1;
//;        y <<= 1;
//;        z <<= 1;
//;    }

   asm("    bmi    transformPosition_division");
   asm("    ");
  asm("transformPosition_loop:");

  asm("	dec		*s_");
  asm("	asl		*(x_+1)");
  asm("	rol		*x_");
  asm("	asl		*(y_+1)");
  asm("	rol		*y_");
  asm("	aslb");
  asm("	rola");
  asm("	bvc		transformPosition_loop");

//;    uint8 div = ZDivTable[(uint8)(z >> 8) - 128];
//;    sp->x = (int8)(((x >> 7) * div) >> 8);
//;    sp->y = (int8)(((y >> 7) * div) >> 8);

  asm("transformPosition_division:");

  asm("	ldu		#_ZDivTable+128	; U = &ZDivTable[0]");
  asm("	ldb		a, u				; B = div = ZDivTable[(z >> 8) - 128]");
  asm("	stb		*div_");

  asm("	lda		*div_			; (x >> 7) * div");
  asm("	ldb		*x_");
  asm("	mul");
  asm("	bge		transformPosition_xpos");
  asm("	suba		*div_");

  asm("transformPosition_xpos:");
  asm("	aslb");
  asm("	rola");
  asm("	sta		0, y				; x = (int16)((y >> 7) * div);");

  asm("	lda		*div_			; (y >> 7) * div");
  asm("	ldb		*y_");
  asm("	mul");
  asm("	bge		transformPosition_ypos");
  asm("	suba		*div_");

  asm("transformPosition_ypos:");
  asm("	aslb");
  asm("	rola");
  asm("	sta		1, y");

//;    // calculate object drawscale
//;    uint16 drawScale = ((uint16)camDrawScale * div) >> (8 + s /*- obj->mesh.scale*/);
//;    if (drawScale > 255)
//;        return 0;
//;
//;    return (uint8)drawScale;

   asm("    lda    *div_");
   asm("    ldb    #160");
   asm("    mul");

  asm("transformPosition_shift:");
   asm("    lsra");
   asm("    rorb");
   asm("    dec    *s_");
   asm("    bne    transformPosition_shift");
#define TESTOPT1 1
#ifdef TESTOPT1
   asm("    tsta");
   asm("    beq    not_transformPosition_OOF");
  asm("transformPosition_OOF:");
   asm("    clrb");
  asm("not_transformPosition_OOF:");
   asm("    puls   y, u, dp, pc");
#else
   asm("    cmpd   #255");
   asm("    bgt    transformPosition_OOF");

   asm("    puls   y, u, dp");
   asm("    rts");

  asm("transformPosition_OOF:");

   asm("    clrb");
   asm("    puls   y, u, dp");

   asm("    rts");
#endif
  (void)p; (void)sp;
  return 0;
}

#endif // USE_ASM_OPTIMIZATIONS
