/* Builtin icons for the toolbar in photon */

static PgColor_t tb_palette[] = {
	PgRGB(0,0,0),
	PgRGB(128,0,0),
	PgRGB(128,128,0),
	PgRGB(128,128,128),
	PgRGB(192,192,192),
	PgRGB(255,0,0),
	PgRGB(255,255,0),
	PgRGB(255,255,255),
};

static uint8_t tb_close_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x14,0x44,0x44,0x44,0x14,0x44,0x44,
	0x44,0x41,0x51,0x00,0x00,0x01,0x51,0x04,0x44,
	0x44,0x15,0x55,0x14,0x44,0x15,0x55,0x13,0x44,
	0x44,0x41,0x55,0x51,0x41,0x55,0x51,0x03,0x44,
	0x44,0x40,0x15,0x55,0x15,0x55,0x17,0x03,0x44,
	0x44,0x40,0x41,0x55,0x55,0x51,0x47,0x03,0x44,
	0x44,0x40,0x44,0x15,0x55,0x14,0x47,0x03,0x44,
	0x44,0x40,0x41,0x55,0x55,0x51,0x47,0x03,0x44,
	0x44,0x40,0x15,0x55,0x15,0x55,0x17,0x03,0x44,
	0x44,0x41,0x55,0x51,0x41,0x55,0x51,0x03,0x44,
	0x44,0x15,0x55,0x14,0x44,0x15,0x55,0x13,0x44,
	0x44,0x41,0x51,0x44,0x44,0x41,0x55,0x51,0x44,
	0x44,0x40,0x14,0x44,0x44,0x44,0x15,0x13,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x41,0x03,0x44,
	0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x03,0x44,
	0x44,0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_close_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_close_data
};

static uint8_t tb_copy_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x40,0x00,0x00,0x00,0x00,0x04,0x44,0x44,0x44,
	0x40,0x77,0x77,0x77,0x77,0x03,0x44,0x44,0x44,
	0x40,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x44,
	0x40,0x77,0x77,0x07,0x77,0x77,0x77,0x70,0x44,
	0x40,0x70,0x00,0x07,0x00,0x00,0x00,0x70,0x34,
	0x40,0x77,0x77,0x07,0x77,0x77,0x77,0x70,0x34,
	0x40,0x70,0x00,0x07,0x00,0x00,0x00,0x70,0x34,
	0x40,0x77,0x77,0x07,0x77,0x77,0x77,0x70,0x34,
	0x40,0x70,0x07,0x07,0x00,0x00,0x00,0x70,0x34,
	0x40,0x77,0x77,0x07,0x77,0x77,0x77,0x70,0x34,
	0x40,0x00,0x00,0x07,0x00,0x77,0x77,0x70,0x34,
	0x44,0x33,0x33,0x07,0x77,0x77,0x77,0x70,0x34,
	0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x34,
	0x44,0x44,0x44,0x44,0x33,0x33,0x33,0x33,0x34,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_copy_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_copy_data
};

static uint8_t tb_ctags_data[] = {
	0x44,0x44,0x40,0x04,0x00,0x00,0x04,0x44,0x44,
	0x44,0x44,0x07,0x70,0x77,0x77,0x70,0x44,0x44,
	0x44,0x44,0x07,0x77,0x77,0x77,0x77,0x04,0x44,
	0x44,0x44,0x07,0x70,0x77,0x77,0x00,0x70,0x44,
	0x44,0x44,0x40,0x04,0x00,0x00,0x34,0x00,0x44,
	0x44,0x42,0x24,0x42,0x40,0x00,0x42,0x40,0x44,
	0x44,0x23,0x66,0x66,0x60,0x00,0x36,0x66,0x03,
	0x42,0x36,0x66,0x66,0x60,0x00,0x36,0x66,0x03,
	0x23,0x64,0x34,0x66,0x60,0x00,0x36,0x66,0x03,
	0x26,0x63,0x03,0x66,0x60,0x00,0x36,0x66,0x03,
	0x36,0x64,0x34,0x66,0x60,0x00,0x36,0x66,0x03,
	0x30,0x66,0x66,0x66,0x60,0x00,0x36,0x66,0x03,
	0x43,0x06,0x66,0x66,0x60,0x00,0x36,0x66,0x03,
	0x44,0x30,0x00,0x00,0x00,0x00,0x30,0x00,0x03,
	0x44,0x43,0x33,0x33,0x30,0x00,0x33,0x33,0x33,
	0x44,0x44,0x44,0x44,0x40,0x00,0x34,0x44,0x44,
	0x44,0x44,0x44,0x44,0x40,0x00,0x34,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x33,0x34,0x44,0x44,
};

static PhImage_t tb_ctags_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_ctags_data
};

static uint8_t tb_cut_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x40,0x44,0x44,0x40,0x34,0x44,0x44,
	0x44,0x44,0x40,0x34,0x44,0x40,0x34,0x44,0x44,
	0x44,0x44,0x44,0x04,0x44,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x03,0x44,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x40,0x34,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x30,0x34,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x00,0x34,0x44,0x44,0x44,
	0x44,0x44,0x43,0x03,0x44,0x03,0x44,0x44,0x44,
	0x44,0x44,0x00,0x03,0x44,0x00,0x04,0x44,0x44,
	0x44,0x40,0x33,0x03,0x44,0x03,0x40,0x44,0x44,
	0x44,0x40,0x44,0x03,0x44,0x03,0x40,0x34,0x44,
	0x44,0x40,0x44,0x03,0x44,0x03,0x40,0x34,0x44,
	0x44,0x44,0x00,0x33,0x44,0x40,0x03,0x44,0x44,
	0x44,0x44,0x33,0x44,0x44,0x43,0x34,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_cut_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_cut_data
};

static uint8_t tb_find_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x40,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,
	0x40,0x77,0x77,0x77,0x70,0x04,0x44,0x44,0x44,
	0x40,0x77,0x77,0x77,0x70,0x40,0x44,0x44,0x44,
	0x40,0x77,0x77,0x77,0x70,0x00,0x04,0x44,0x44,
	0x40,0x77,0x77,0x77,0x77,0x77,0x04,0x44,0x44,
	0x40,0x77,0x77,0x77,0x70,0x00,0x04,0x44,0x44,
	0x40,0x77,0x77,0x77,0x04,0x44,0x40,0x44,0x44,
	0x40,0x77,0x77,0x70,0x47,0x74,0x44,0x04,0x44,
	0x40,0x77,0x77,0x70,0x47,0x44,0x44,0x04,0x44,
	0x40,0x77,0x77,0x70,0x44,0x44,0x44,0x04,0x44,
	0x40,0x77,0x77,0x70,0x44,0x47,0x44,0x04,0x44,
	0x40,0x77,0x77,0x77,0x04,0x44,0x40,0x44,0x44,
	0x40,0x77,0x77,0x77,0x70,0x00,0x04,0x00,0x44,
	0x40,0x77,0x77,0x77,0x77,0x77,0x04,0x00,0x04,
	0x40,0x00,0x00,0x00,0x00,0x00,0x04,0x40,0x04,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_find_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_find_data
};

static uint8_t tb_find_help_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x00,0x00,0x03,0x44,0x44,0x44,0x44,
	0x44,0x40,0x04,0x43,0x00,0x34,0x44,0x44,0x44,
	0x44,0x00,0x34,0x44,0x00,0x04,0x44,0x44,0x44,
	0x44,0x00,0x34,0x44,0x00,0x00,0x44,0x44,0x44,
	0x44,0x30,0x04,0x40,0x47,0x74,0x04,0x44,0x44,
	0x44,0x44,0x44,0x04,0x44,0x74,0x40,0x44,0x44,
	0x44,0x44,0x44,0x07,0x77,0x74,0x70,0x44,0x44,
	0x44,0x44,0x40,0x04,0x77,0x44,0x40,0x44,0x44,
	0x44,0x44,0x40,0x00,0x47,0x74,0x03,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x00,0x30,0x04,0x44,
	0x44,0x44,0x40,0x03,0x44,0x44,0x40,0x00,0x44,
	0x44,0x44,0x40,0x03,0x44,0x44,0x44,0x00,0x44,
	0x44,0x44,0x40,0x03,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x33,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_find_help_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_find_help_data
};

static uint8_t tb_find_next_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x00,0x00,0x00,0x00,0x04,0x44,0x44,0x44,
	0x44,0x07,0x77,0x77,0x77,0x00,0x44,0x44,0x44,
	0x44,0x07,0x77,0x77,0x77,0x04,0x04,0x44,0x44,
	0x44,0x07,0x17,0x77,0x77,0x00,0x00,0x44,0x44,
	0x44,0x77,0x11,0x77,0x77,0x77,0x70,0x44,0x44,
	0x11,0x11,0x15,0x17,0x77,0x00,0x00,0x44,0x44,
	0x15,0x55,0x55,0x51,0x70,0x44,0x44,0x04,0x44,
	0x15,0x55,0x55,0x55,0x14,0x77,0x44,0x40,0x44,
	0x15,0x55,0x55,0x51,0x04,0x74,0x44,0x40,0x44,
	0x11,0x11,0x15,0x17,0x04,0x44,0x44,0x40,0x44,
	0x44,0x77,0x11,0x77,0x04,0x44,0x74,0x40,0x44,
	0x44,0x07,0x17,0x77,0x70,0x44,0x44,0x04,0x44,
	0x44,0x07,0x77,0x77,0x77,0x00,0x00,0x40,0x04,
	0x44,0x07,0x77,0x77,0x77,0x77,0x70,0x40,0x00,
	0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x00,
	0x44,0x44,0x43,0x33,0x33,0x33,0x33,0x34,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_find_next_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_find_next_data
};

static uint8_t tb_find_prev_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x00,0x00,0x00,0x00,0x04,0x44,0x44,0x44,
	0x44,0x07,0x77,0x77,0x77,0x00,0x44,0x44,0x44,
	0x44,0x07,0x77,0x77,0x77,0x04,0x04,0x44,0x44,
	0x44,0x47,0x17,0x77,0x77,0x00,0x00,0x44,0x44,
	0x44,0x71,0x17,0x77,0x77,0x77,0x70,0x44,0x44,
	0x44,0x15,0x11,0x11,0x17,0x00,0x00,0x44,0x44,
	0x41,0x55,0x55,0x55,0x10,0x44,0x44,0x04,0x44,
	0x15,0x55,0x55,0x55,0x04,0x77,0x44,0x40,0x44,
	0x41,0x55,0x55,0x55,0x04,0x74,0x44,0x40,0x44,
	0x44,0x15,0x11,0x11,0x04,0x44,0x44,0x40,0x44,
	0x44,0x71,0x17,0x77,0x04,0x44,0x74,0x40,0x44,
	0x44,0x47,0x17,0x77,0x70,0x44,0x44,0x04,0x44,
	0x44,0x07,0x77,0x77,0x77,0x00,0x00,0x40,0x04,
	0x44,0x07,0x77,0x77,0x77,0x77,0x70,0x40,0x00,
	0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x00,
	0x44,0x44,0x43,0x33,0x33,0x33,0x33,0x34,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_find_prev_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_find_prev_data
};

static uint8_t tb_help_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x00,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x40,0x04,0x43,0x00,0x34,0x44,0x44,
	0x44,0x44,0x00,0x34,0x44,0x00,0x04,0x44,0x44,
	0x44,0x44,0x00,0x34,0x44,0x00,0x04,0x44,0x44,
	0x44,0x44,0x30,0x04,0x43,0x00,0x34,0x44,0x44,
	0x44,0x44,0x44,0x44,0x40,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x33,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_help_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_help_data
};

static uint8_t tb_jump_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x42,0x22,0x22,0x22,0x22,0x22,0x22,0x24,
	0x44,0x23,0x66,0x66,0x66,0x66,0x66,0x66,0x03,
	0x42,0x36,0x66,0x66,0x66,0x66,0x66,0x66,0x03,
	0x23,0x64,0x34,0x66,0x66,0x66,0x66,0x66,0x03,
	0x26,0x63,0x03,0x66,0x66,0x66,0x66,0x66,0x03,
	0x36,0x64,0x34,0x66,0x66,0x66,0x66,0x66,0x03,
	0x30,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x03,
	0x43,0x06,0x66,0x66,0x66,0x66,0x66,0x66,0x03,
	0x44,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
	0x44,0x43,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_jump_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_jump_data
};

static uint8_t tb_load_session_data[] = {
	0x44,0x44,0x44,0x44,0x11,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x15,0x55,0x51,0x44,0x44,0x44,
	0x44,0x44,0x41,0x11,0x55,0x11,0x14,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x11,0x14,0x44,0x44,0x44,
	0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x44,
	0x44,0x07,0x77,0x77,0x77,0x77,0x74,0x43,0x04,
	0x40,0x77,0x77,0x77,0x77,0x77,0x77,0x33,0x04,
	0x40,0x74,0x44,0x44,0x44,0x44,0x55,0x33,0x04,
	0x40,0x74,0x44,0x44,0x44,0x44,0x44,0x33,0x04,
	0x40,0x70,0x00,0x00,0x00,0x00,0x04,0x33,0x03,
	0x40,0x77,0x77,0x77,0x77,0x77,0x74,0x33,0x03,
	0x40,0x43,0x33,0x33,0x33,0x33,0x33,0x30,0x34,
	0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x44,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x34,0x44,
};

static PhImage_t tb_load_session_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_load_session_data
};

static uint8_t tb_macro_data[] = {
	0x44,0x44,0x43,0x00,0x34,0x44,0x44,0x44,0x44,
	0x44,0x44,0x30,0x77,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x07,0x77,0x70,0x34,0x44,0x44,0x44,
	0x44,0x43,0x07,0x77,0x70,0x34,0x44,0x44,0x44,
	0x44,0x44,0x30,0x77,0x03,0x44,0x44,0x44,0x44,
	0x44,0x44,0x40,0x00,0x00,0x34,0x44,0x44,0x44,
	0x44,0x40,0x00,0x00,0x70,0x34,0x44,0x44,0x44,
	0x44,0x30,0x77,0x77,0x77,0x04,0x44,0x44,0x44,
	0x44,0x00,0x77,0x77,0x77,0x00,0x44,0x44,0x44,
	0x44,0x43,0x00,0x00,0x77,0x30,0x44,0x44,0x44,
	0x44,0x44,0x30,0x00,0x77,0x70,0x34,0x44,0x44,
	0x44,0x44,0x00,0x77,0x77,0x70,0x04,0x44,0x44,
	0x44,0x43,0x07,0x77,0x77,0x77,0x00,0x44,0x44,
	0x44,0x40,0x77,0x70,0x00,0x77,0x70,0x04,0x44,
	0x44,0x07,0x77,0x03,0x40,0x07,0x77,0x70,0x44,
	0x44,0x07,0x70,0x34,0x44,0x30,0x77,0x70,0x44,
	0x44,0x30,0x00,0x44,0x44,0x43,0x00,0x03,0x44,
	0x44,0x43,0x34,0x44,0x44,0x44,0x43,0x04,0x44,
};

static PhImage_t tb_macro_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_macro_data
};

static uint8_t tb_make_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x00,0x40,0x00,0x00,0x44,0x44,0x44,
	0x44,0x40,0x77,0x07,0x77,0x77,0x04,0x44,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x70,0x44,0x44,
	0x44,0x40,0x73,0x07,0x77,0x70,0x07,0x04,0x44,
	0x44,0x44,0x00,0x40,0x00,0x03,0x40,0x04,0x44,
	0x44,0x44,0x44,0x44,0x00,0x04,0x44,0x04,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x00,0x03,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x43,0x33,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_make_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_make_data
};

static uint8_t tb_maximize_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x70,0x00,0x00,0x00,0x00,0x00,0x44,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x44,0x44,
	0x44,0x70,0x44,0x74,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x47,0x74,0x04,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x40,0x00,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x00,0x00,0x04,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x00,0x00,0x04,0x70,0x34,0x44,
	0x44,0x70,0x44,0x40,0x00,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x04,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x77,0x77,0x77,0x77,0x70,0x34,0x44,
	0x44,0x70,0x00,0x00,0x00,0x00,0x00,0x34,0x44,
	0x44,0x44,0x43,0x33,0x33,0x33,0x33,0x34,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_maximize_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_maximize_data
};

static uint8_t tb_maxwidth_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
	0x70,0x44,0x44,0x44,0x44,0x44,0x44,0x47,0x04,
	0x70,0x44,0x74,0x40,0x44,0x04,0x44,0x47,0x03,
	0x70,0x47,0x74,0x00,0x44,0x00,0x44,0x47,0x03,
	0x70,0x44,0x40,0x00,0x44,0x00,0x04,0x47,0x03,
	0x70,0x44,0x44,0x00,0x44,0x00,0x44,0x47,0x03,
	0x70,0x44,0x44,0x40,0x44,0x04,0x44,0x47,0x03,
	0x70,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x03,
	0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
	0x44,0x43,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_maxwidth_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_maxwidth_data
};

static uint8_t tb_minimize_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x40,0x00,0x00,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x00,0x04,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x44,
	0x47,0x04,0x44,0x44,0x44,0x44,0x47,0x04,0x44,
	0x47,0x04,0x47,0x44,0x44,0x44,0x47,0x03,0x44,
	0x47,0x04,0x44,0x44,0x44,0x44,0x47,0x03,0x44,
	0x47,0x04,0x44,0x44,0x44,0x44,0x77,0x03,0x44,
	0x47,0x07,0x77,0x77,0x77,0x77,0x77,0x03,0x44,
	0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x44,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x33,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x40,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x00,0x04,0x44,0x44,0x44,0x44,
	0x44,0x44,0x40,0x00,0x00,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_minimize_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_minimize_data
};

static uint8_t tb_minwidth_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x47,0x00,0x00,0x00,0x44,0x44,0x44,
	0x44,0x44,0x47,0x04,0x44,0x70,0x44,0x44,0x44,
	0x40,0x44,0x47,0x04,0x74,0x70,0x34,0x44,0x04,
	0x40,0x04,0x47,0x04,0x44,0x70,0x34,0x40,0x04,
	0x40,0x00,0x47,0x04,0x44,0x70,0x34,0x00,0x04,
	0x40,0x04,0x47,0x04,0x44,0x70,0x34,0x40,0x04,
	0x40,0x44,0x47,0x04,0x44,0x70,0x34,0x44,0x04,
	0x44,0x44,0x47,0x07,0x77,0x70,0x34,0x44,0x44,
	0x44,0x44,0x47,0x00,0x00,0x00,0x34,0x44,0x44,
	0x44,0x44,0x44,0x44,0x33,0x33,0x34,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_minwidth_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_minwidth_data
};

static uint8_t tb_new_data[] = {
	0x44,0x44,0x44,0x44,0x43,0x44,0x37,0x34,0x44,
	0x44,0x44,0x44,0x44,0x47,0x34,0x37,0x34,0x73,
	0x44,0x44,0x44,0x44,0x44,0x73,0x07,0x07,0x37,
	0x40,0x00,0x00,0x00,0x00,0x07,0x77,0x70,0x33,
	0x40,0x44,0x44,0x44,0x44,0x77,0x77,0x77,0x77,
	0x40,0x44,0x74,0x44,0x44,0x07,0x07,0x70,0x33,
	0x40,0x47,0x74,0x44,0x43,0x47,0x07,0x07,0x44,
	0x40,0x44,0x44,0x44,0x34,0x47,0x07,0x33,0x74,
	0x40,0x44,0x44,0x44,0x44,0x47,0x07,0x34,0x37,
	0x40,0x44,0x44,0x44,0x44,0x47,0x03,0x44,0x43,
	0x40,0x44,0x44,0x44,0x44,0x47,0x03,0x44,0x44,
	0x40,0x44,0x44,0x44,0x44,0x47,0x03,0x44,0x44,
	0x40,0x44,0x44,0x44,0x44,0x47,0x03,0x44,0x44,
	0x40,0x44,0x44,0x44,0x44,0x47,0x03,0x44,0x44,
	0x40,0x44,0x44,0x44,0x44,0x47,0x03,0x44,0x44,
	0x40,0x77,0x77,0x77,0x77,0x77,0x03,0x44,0x44,
	0x40,0x00,0x00,0x00,0x00,0x00,0x03,0x44,0x44,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x44,0x44,
};

static PhImage_t tb_new_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_new_data
};

static uint8_t tb_new_session_data[] = {
	0x44,0x44,0x34,0x43,0x73,0x44,0x34,0x44,0x44,
	0x44,0x44,0x43,0x40,0x70,0x43,0x44,0x44,0x44,
	0x44,0x44,0x33,0x07,0x77,0x03,0x34,0x44,0x44,
	0x44,0x44,0x77,0x77,0x77,0x77,0x74,0x44,0x44,
	0x44,0x44,0x33,0x07,0x77,0x03,0x34,0x44,0x44,
	0x44,0x44,0x43,0x40,0x70,0x43,0x44,0x44,0x44,
	0x44,0x44,0x34,0x43,0x73,0x44,0x34,0x44,0x44,
	0x44,0x44,0x44,0x44,0x34,0x44,0x44,0x44,0x44,
	0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x44,
	0x44,0x07,0x77,0x77,0x77,0x77,0x74,0x43,0x04,
	0x40,0x77,0x77,0x77,0x77,0x77,0x77,0x33,0x04,
	0x40,0x74,0x44,0x44,0x44,0x44,0x55,0x33,0x04,
	0x40,0x74,0x44,0x44,0x44,0x44,0x44,0x33,0x04,
	0x40,0x70,0x00,0x00,0x00,0x00,0x04,0x33,0x03,
	0x40,0x77,0x77,0x77,0x77,0x77,0x74,0x33,0x03,
	0x40,0x43,0x33,0x33,0x33,0x33,0x33,0x30,0x34,
	0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x44,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x34,0x44,
};

static PhImage_t tb_new_session_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_new_session_data
};

static uint8_t tb_open_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x00,0x00,0x00,0x00,0x03,0x44,0x44,
	0x44,0x44,0x07,0x77,0x77,0x70,0x70,0x34,0x44,
	0x44,0x44,0x07,0x77,0x77,0x70,0x77,0x03,0x44,
	0x44,0x44,0x07,0x77,0x77,0x70,0x00,0x03,0x44,
	0x44,0x00,0x07,0x77,0x77,0x77,0x77,0x00,0x04,
	0x44,0x04,0x04,0x44,0x44,0x44,0x47,0x04,0x04,
	0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x03,
	0x07,0x77,0x77,0x77,0x77,0x77,0x70,0x03,0x03,
	0x40,0x74,0x44,0x44,0x44,0x44,0x43,0x03,0x03,
	0x40,0x74,0x44,0x44,0x44,0x44,0x44,0x03,0x03,
	0x44,0x07,0x44,0x44,0x44,0x44,0x44,0x30,0x03,
	0x44,0x07,0x44,0x44,0x44,0x44,0x44,0x40,0x03,
	0x44,0x40,0x73,0x33,0x33,0x33,0x33,0x33,0x03,
	0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
	0x44,0x44,0x43,0x33,0x33,0x33,0x33,0x33,0x33,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_open_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_open_data
};

static uint8_t tb_paste_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x40,0x00,0x04,0x44,0x44,0x44,0x44,
	0x44,0x44,0x40,0x00,0x04,0x44,0x44,0x44,0x44,
	0x44,0x00,0x04,0x44,0x40,0x00,0x34,0x44,0x44,
	0x40,0x43,0x00,0x00,0x00,0x33,0x03,0x44,0x44,
	0x40,0x43,0x33,0x33,0x33,0x33,0x03,0x44,0x44,
	0x40,0x43,0x34,0x00,0x00,0x00,0x00,0x00,0x44,
	0x40,0x43,0x34,0x07,0x77,0x77,0x77,0x70,0x44,
	0x40,0x43,0x34,0x07,0x00,0x00,0x00,0x70,0x34,
	0x40,0x43,0x34,0x07,0x77,0x77,0x77,0x70,0x34,
	0x40,0x43,0x34,0x07,0x77,0x77,0x77,0x70,0x34,
	0x40,0x43,0x34,0x07,0x00,0x00,0x00,0x70,0x34,
	0x40,0x43,0x34,0x07,0x77,0x77,0x77,0x70,0x34,
	0x44,0x00,0x00,0x07,0x00,0x77,0x77,0x70,0x34,
	0x44,0x43,0x33,0x07,0x77,0x77,0x77,0x70,0x34,
	0x44,0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x34,
	0x44,0x44,0x44,0x44,0x33,0x33,0x33,0x33,0x34,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_paste_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_paste_data
};

static uint8_t tb_print_data[] = {
	0x44,0x40,0x00,0x00,0x00,0x00,0x04,0x44,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x04,0x44,0x44,
	0x44,0x40,0x70,0x00,0x77,0x77,0x03,0x44,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x03,0x44,0x44,
	0x44,0x40,0x70,0x00,0x77,0x77,0x03,0x44,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x03,0x44,0x44,
	0x44,0x40,0x70,0x00,0x00,0x77,0x03,0x44,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x03,0x44,0x44,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,
	0x07,0x77,0x77,0x77,0x77,0x77,0x77,0x30,0x44,
	0x07,0x55,0x44,0x44,0x44,0x44,0x44,0x30,0x34,
	0x07,0x44,0x44,0x44,0x44,0x44,0x44,0x30,0x34,
	0x07,0x44,0x44,0x44,0x44,0x44,0x44,0x30,0x34,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,
	0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x03,0x34,
	0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x44,
	0x44,0x43,0x33,0x33,0x33,0x33,0x33,0x33,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_print_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_print_data
};

static uint8_t tb_redo_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x00,0x00,0x04,0x40,0x04,0x44,
	0x44,0x44,0x00,0x77,0x77,0x70,0x07,0x03,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x77,0x03,0x44,
	0x44,0x40,0x77,0x00,0x00,0x77,0x77,0x03,0x44,
	0x44,0x07,0x70,0x33,0x30,0x77,0x77,0x03,0x44,
	0x44,0x07,0x70,0x34,0x07,0x77,0x77,0x03,0x44,
	0x44,0x07,0x70,0x34,0x00,0x00,0x00,0x03,0x44,
	0x44,0x07,0x70,0x34,0x43,0x33,0x03,0x33,0x44,
	0x44,0x07,0x70,0x34,0x44,0x40,0x70,0x44,0x44,
	0x44,0x40,0x77,0x00,0x00,0x07,0x70,0x34,0x44,
	0x44,0x40,0x77,0x77,0x77,0x77,0x03,0x34,0x44,
	0x44,0x44,0x00,0x77,0x77,0x70,0x33,0x44,0x44,
	0x44,0x44,0x44,0x00,0x00,0x03,0x34,0x44,0x44,
	0x44,0x44,0x44,0x43,0x33,0x33,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_redo_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_redo_data
};

static uint8_t tb_replace_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x00,0x00,0x00,0x00,0x04,0x44,0x44,0x44,
	0x44,0x07,0x77,0x77,0x77,0x00,0x44,0x44,0x44,
	0x44,0x07,0x00,0x77,0x77,0x07,0x04,0x44,0x44,
	0x44,0x34,0x00,0x37,0x77,0x00,0x00,0x44,0x44,
	0x44,0x40,0x70,0x07,0x77,0x77,0x70,0x44,0x44,
	0x44,0x30,0x00,0x03,0x77,0x77,0x70,0x34,0x44,
	0x44,0x07,0x77,0x00,0x77,0x77,0x70,0x34,0x44,
	0x40,0x03,0x73,0x00,0x07,0x77,0x40,0x34,0x44,
	0x44,0x47,0x77,0x77,0x77,0x77,0x74,0x34,0x44,
	0x44,0x07,0x55,0x44,0x57,0x77,0x00,0x00,0x44,
	0x44,0x07,0x35,0x44,0x55,0x77,0x03,0x70,0x04,
	0x44,0x07,0x73,0x55,0x55,0x57,0x00,0x00,0x44,
	0x44,0x07,0x77,0x77,0x55,0x77,0x03,0x70,0x04,
	0x44,0x07,0x77,0x77,0x57,0x77,0x03,0x70,0x04,
	0x44,0x00,0x00,0x00,0x40,0x04,0x00,0x00,0x44,
	0x44,0x44,0x43,0x33,0x33,0x33,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_replace_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_replace_data
};

static uint8_t tb_save_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,
	0x44,0x04,0x07,0x77,0x77,0x77,0x70,0x40,0x44,
	0x44,0x04,0x07,0x77,0x77,0x77,0x70,0x00,0x34,
	0x44,0x04,0x07,0x77,0x77,0x77,0x70,0x40,0x34,
	0x44,0x04,0x07,0x77,0x77,0x77,0x70,0x40,0x34,
	0x44,0x04,0x07,0x77,0x77,0x77,0x70,0x40,0x34,
	0x44,0x04,0x07,0x77,0x77,0x77,0x70,0x40,0x34,
	0x44,0x04,0x40,0x00,0x00,0x00,0x04,0x40,0x34,
	0x44,0x04,0x44,0x44,0x44,0x44,0x44,0x40,0x34,
	0x44,0x04,0x40,0x00,0x00,0x00,0x00,0x40,0x34,
	0x44,0x04,0x40,0x00,0x00,0x04,0x40,0x40,0x34,
	0x44,0x04,0x40,0x00,0x00,0x04,0x40,0x40,0x34,
	0x44,0x04,0x40,0x00,0x00,0x04,0x40,0x40,0x34,
	0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x34,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x33,0x34,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_save_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_save_data
};

static uint8_t tb_save_all_data[] = {
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,
	0x04,0x07,0x77,0x77,0x77,0x70,0x70,0x44,0x44,
	0x04,0x07,0x77,0x77,0x77,0x70,0x00,0x34,0x44,
	0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
	0x04,0x00,0x40,0x77,0x77,0x77,0x77,0x07,0x04,
	0x04,0x00,0x40,0x77,0x77,0x77,0x77,0x00,0x03,
	0x04,0x00,0x40,0x77,0x77,0x77,0x77,0x04,0x03,
	0x04,0x40,0x40,0x77,0x77,0x77,0x77,0x04,0x03,
	0x04,0x40,0x40,0x77,0x77,0x77,0x77,0x04,0x03,
	0x04,0x40,0x40,0x77,0x77,0x77,0x77,0x04,0x03,
	0x04,0x40,0x44,0x00,0x00,0x00,0x00,0x44,0x03,
	0x04,0x40,0x44,0x44,0x44,0x44,0x44,0x44,0x03,
	0x04,0x40,0x44,0x00,0x00,0x00,0x00,0x04,0x03,
	0x40,0x00,0x44,0x00,0x00,0x00,0x77,0x04,0x03,
	0x44,0x30,0x44,0x00,0x00,0x00,0x77,0x04,0x03,
	0x44,0x40,0x44,0x00,0x00,0x00,0x77,0x04,0x03,
	0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
	0x44,0x44,0x43,0x33,0x33,0x33,0x33,0x33,0x34,
};

static PhImage_t tb_save_all_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_save_all_data
};

static uint8_t tb_save_session_data[] = {
	0x44,0x44,0x44,0x41,0x11,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x41,0x11,0x55,0x11,0x14,0x44,0x44,
	0x44,0x44,0x44,0x15,0x55,0x51,0x44,0x44,0x44,
	0x44,0x44,0x44,0x41,0x55,0x14,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x11,0x44,0x44,0x44,0x44,
	0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x44,
	0x44,0x07,0x77,0x77,0x77,0x77,0x74,0x43,0x04,
	0x40,0x77,0x77,0x77,0x77,0x77,0x77,0x33,0x04,
	0x40,0x74,0x44,0x44,0x44,0x44,0x55,0x33,0x04,
	0x40,0x74,0x44,0x44,0x44,0x44,0x44,0x33,0x04,
	0x40,0x70,0x00,0x00,0x00,0x00,0x04,0x33,0x03,
	0x40,0x77,0x77,0x77,0x77,0x77,0x74,0x33,0x03,
	0x40,0x43,0x33,0x33,0x33,0x33,0x33,0x30,0x34,
	0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x44,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x34,0x44,
};

static PhImage_t tb_save_session_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_save_session_data
};

static uint8_t tb_shell_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x40,0x00,0x40,0x00,0x44,0x44,0x44,
	0x44,0x44,0x03,0x43,0x33,0x43,0x04,0x44,0x44,
	0x44,0x40,0x47,0x43,0x03,0x47,0x40,0x44,0x44,
	0x44,0x40,0x34,0x74,0x34,0x74,0x30,0x44,0x44,
	0x44,0x03,0x44,0x44,0x04,0x44,0x43,0x04,0x44,
	0x40,0x34,0x03,0x74,0x34,0x73,0x04,0x30,0x44,
	0x40,0x44,0x43,0x74,0x04,0x73,0x44,0x40,0x44,
	0x40,0x47,0x40,0x37,0x37,0x30,0x47,0x40,0x34,
	0x40,0x34,0x74,0x04,0x04,0x04,0x74,0x30,0x34,
	0x44,0x03,0x74,0x34,0x44,0x34,0x73,0x03,0x44,
	0x44,0x40,0x34,0x44,0x74,0x44,0x30,0x34,0x44,
	0x44,0x44,0x04,0x47,0x77,0x44,0x03,0x44,0x44,
	0x44,0x44,0x00,0x34,0x44,0x30,0x03,0x44,0x44,
	0x44,0x40,0x34,0x44,0x44,0x44,0x30,0x34,0x44,
	0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x34,0x44,
	0x44,0x44,0x43,0x33,0x33,0x33,0x33,0x34,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_shell_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_shell_data
};

static uint8_t tb_split_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x70,0x00,0x00,0x00,0x00,0x00,0x44,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x44,0x44,
	0x44,0x70,0x44,0x74,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x47,0x74,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x77,0x77,0x77,0x77,0x70,0x34,0x44,
	0x44,0x70,0x00,0x00,0x00,0x00,0x00,0x34,0x44,
	0x44,0x70,0x33,0x33,0x33,0x33,0x70,0x34,0x44,
	0x44,0x70,0x44,0x74,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x47,0x74,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x44,0x44,0x44,0x44,0x70,0x34,0x44,
	0x44,0x70,0x77,0x77,0x77,0x77,0x70,0x34,0x44,
	0x44,0x70,0x00,0x00,0x00,0x00,0x00,0x34,0x44,
	0x44,0x44,0x43,0x33,0x33,0x33,0x33,0x34,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_split_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_split_data
};

static uint8_t tb_undo_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x00,0x44,0x00,0x00,0x04,0x44,0x44,0x44,
	0x44,0x07,0x00,0x77,0x77,0x70,0x04,0x44,0x44,
	0x44,0x07,0x77,0x77,0x77,0x77,0x70,0x44,0x44,
	0x44,0x07,0x77,0x70,0x00,0x07,0x70,0x34,0x44,
	0x44,0x07,0x77,0x70,0x33,0x30,0x77,0x04,0x44,
	0x44,0x07,0x77,0x77,0x04,0x40,0x77,0x03,0x44,
	0x44,0x00,0x00,0x00,0x03,0x40,0x77,0x03,0x44,
	0x44,0x43,0x03,0x33,0x33,0x40,0x77,0x03,0x44,
	0x44,0x40,0x70,0x44,0x44,0x40,0x77,0x03,0x44,
	0x44,0x40,0x77,0x00,0x00,0x07,0x70,0x33,0x44,
	0x44,0x44,0x07,0x77,0x77,0x77,0x70,0x34,0x44,
	0x44,0x44,0x40,0x77,0x77,0x70,0x03,0x34,0x44,
	0x44,0x44,0x44,0x00,0x00,0x03,0x33,0x44,0x44,
	0x44,0x44,0x44,0x43,0x33,0x33,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_undo_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_undo_data
};

static uint8_t tb_vsplit_data[] = {
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
	0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x44,
	0x47,0x04,0x47,0x47,0x03,0x44,0x74,0x70,0x34,
	0x47,0x04,0x77,0x47,0x03,0x47,0x74,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x04,0x44,0x47,0x03,0x44,0x44,0x70,0x34,
	0x47,0x07,0x77,0x77,0x07,0x77,0x77,0x70,0x34,
	0x47,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x34,
	0x44,0x44,0x33,0x33,0x33,0x33,0x33,0x33,0x34,
	0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
};

static PhImage_t tb_vsplit_phi = {
	Pg_IMAGE_PALETTE_NIBBLE,
	0,
	9,
	{ 18,18 },
	420393992,
	8,
	NULL,
	PgGrey(0xc0),
	0,
	Ph_USE_TRANSPARENCY,
	0,
	0,
	NULL,
	0,
	NULL,
	tb_palette,
	tb_vsplit_data
};
