static const char *const kLoLIngamePakFilesFMTowns[11] = {
	"VOC.PAK",
	"GENERAL.PAK",
	"CHAPTER1.PAK",
	"CHAPTER2.PAK",
	"CHAPTER3.PAK",
	"CHAPTER4.PAK",
	"CHAPTER5.PAK",
	"CHAPTER6.PAK",
	"CHAPTER7.PAK",
	"CHAPTER8.PAK",
	"TMUS.PAK"
};

static const StringListProvider kLoLIngamePakFilesFMTownsProvider = { ARRAYSIZE(kLoLIngamePakFilesFMTowns), kLoLIngamePakFilesFMTowns };

static const char *const kLoLIngameSfxFilesFMTowns[230] = {
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"XXXXXXXX",
	"DOORMTOP",
	"DOORMTCL",
	"PMETLHI",
	"SWING6",
	"MDAMAGE2",
	"LEVERDN",
	"LEVERUP",
	"MTLDRSLM",
	"DOORWDOP",
	"DOORWDCL",
	"KEYOPEN",
	"KEYLOCK",
	"PORTCUL",
	"PORTCULD",
	"LOKPICK",
	"OCEAN2",
	"NUNCHUK",
	"SWING",
	"SHWING1",
	"SWING6",
	"THROW",
	"CROSSBOW",
	"HEAL1",
	"FIRESPL1",
	"PRESSIN",
	"PRESSOUT",
	"PLATEON",
	"PLATEOFF",
	"DORWDSLM",
	"LITENIN1",
	"ICESPEL2",
	"SPELL4B",
	"SHIELD1",
	"3BOLTC",
	"2BOLTC",
	"1BOLTC",
	"DAWNSPL1",
	"HEALKING",
	"SPELL7",
	"SWING1",
	"EXPLODE",
	"CROWCAW",
	"MORPH2",
	"CHEST",
	"MONEY",
	"SPELBK2",
	"AUTOMAP",
	"MINECRT3",
	"CREAK1",
	"TURNPAG2",
	"POLGULP1",
	"GOOEY1",
	"BUCKBELL",
	"KEEPXIT2",
	"VSCREAM4",
	"EMPTY",
	"GOOEY1",
	"GOOEY2",
	"RIPPOD4",
	"PODSKEL1",
	"INVISO",
	"OPENBOX2",
	"ACCEPT2",
	"BOW2",
	"HACHUCKM",
	"FOUNDRY2",
	"FOUNDRY2",
	"FOUNDRY4",
	"FOUNDRY6",
	"CLEANGL1",
	"CLEANGL2",
	"GLOWY1",
	"DORSTNOP",
	"DORSTNCL",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"ADAMAGE1",
	"HDAMAGE1",
	"TDAMAGE1",
	"BDAMAGE1",
	"LDAMAGE1",
	"TDAMAGE2",
	"CDAMAGE1",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"GOOD1",
	"GOOD2",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"LITENIN1",
	"COMPASS2",
	"KINGDOR1",
	"GLASBRK2",
	"FLUTTER3",
	"NUNCHUK",
	"WALLFALL",
	"WALLHIT",
	"MWHOA1",
	"LADDER",
	"WHITTL3",
	"ROWBOAT1",
	"HORSEY2",
	"SNORT",
	"PUMPDOR1",
	"PUMPSM2",
	"PUMPSM3",
	"SPARK1",
	"BEZEL",
	"SWARM",
	"CHEST",
	"WRIT1",
	"CAUSFOG",
	"VAELAN2",
	"ROARSPL1",
	"RATTLER",
	"WINK1",
	"HANDFATE",
	"QUAKE1",
	"WIZLAMP1",
	"SAP2",
	"MSTDOOM1",
	"GARDIAN1",
	"VORTEX1",
	"LION1",
	"STEAM",
	"SQUAWCK",
	"SLIDEMUG",
	"SPARKHIT",
	"SPARKHIT2",
	"SPARKHIT3",
	"ICEFORM",
	"ICEXPLOD",
	"EXPLODE2",
	"EXPLODE3",
	"BOLTQUK2",
	"BOLT2",
	"BOLT3",
	"SNKBITE",
	"HANDGLOW",
	"MSTDOOM2",
	"MSTDOOM3",
	"GARDIAN2",
	"PLUSPOWR",
	"MINSPOWR",
	"BLUDCURL",
	"LORAGASP",
	"POURH2O",
	"AWHOA2",
	"HWHOA1",
	"CWHOA1",
	"AFALL2",
	"EMPTY",
	"CFALL2",
	"MFALL2",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"WRIT2",
	"WRIT3",
	"WRIT4",
	"WRIT5",
	"WRIT6",
	"RUCKUS1",
	"RUCKUS3",
	"CHANT1",
	"EMPTY",
	"EMPTY",
	"EMPTY",
	"CHANT2",
	"CHANT3",
	""
};

static const StringListProvider kLoLIngameSfxFilesFMTownsProvider = { ARRAYSIZE(kLoLIngameSfxFilesFMTowns), kLoLIngameSfxFilesFMTowns };

static const byte kLoLIngameSfxIndexFMTowns[1000] = {
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0x34, 0x00, 0x6F, 0x00, 0x7C, 0x00, 0x00, 0x00,
	0x7D, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00,
	0x7F, 0x00, 0x00, 0x00, 0x36, 0x00, 0x73, 0x00,
	0x35, 0x00, 0x9C, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
	0x80, 0x00, 0x73, 0x00, 0x81, 0x00, 0x73, 0x00,
	0x82, 0x00, 0x73, 0x00, 0x83, 0x00, 0x73, 0x00,
	0x84, 0x00, 0x73, 0x00, 0x85, 0x00, 0x73, 0x00,
	0x86, 0x00, 0x73, 0x00, 0xD7, 0x00, 0x76, 0x00,
	0x87, 0x00, 0x65, 0x00, 0x38, 0x00, 0x5F, 0x00,
	0x37, 0x00, 0x5F, 0x00, 0x32, 0x00, 0x0A, 0x00,
	0x33, 0x00, 0x64, 0x00, 0x39, 0x00, 0x65, 0x00,
	0x3A, 0x00, 0x0A, 0x00, 0x3B, 0x00, 0x14, 0x00,
	0x4E, 0x00, 0x65, 0x00, 0x7A, 0x00, 0x64, 0x00,
	0x7B, 0x00, 0x64, 0x00, 0x88, 0x00, 0x65, 0x00,
	0x3C, 0x00, 0x65, 0x00, 0x3D, 0x00, 0x64, 0x00,
	0x89, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x14, 0x00,
	0x3E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
	0x40, 0x00, 0x65, 0x00, 0x41, 0x00, 0x00, 0x00,
	0xC9, 0x00, 0x72, 0x00, 0xCA, 0x00, 0x72, 0x00,
	0xCB, 0x00, 0x72, 0x00, 0xCC, 0x00, 0x74, 0x00,
	0xCD, 0x00, 0x74, 0x00, 0xCE, 0x00, 0x74, 0x00,
	0xCF, 0x00, 0x74, 0x00, 0xD0, 0x00, 0x73, 0x00,
	0xD1, 0x00, 0x73, 0x00, 0xD2, 0x00, 0x73, 0x00,
	0xD3, 0x00, 0x73, 0x00, 0xD4, 0x00, 0x72, 0x00,
	0xD5, 0x00, 0x72, 0x00, 0xD6, 0x00, 0x72, 0x00,
	0x42, 0x00, 0x6F, 0x00, 0x43, 0x00, 0x6F, 0x00,
	0x44, 0x00, 0x6F, 0x00, 0x45, 0x00, 0x6F, 0x00,
	0x46, 0x00, 0x6F, 0x00, 0x47, 0x00, 0x6F, 0x00,
	0x48, 0x00, 0x77, 0x00, 0x49, 0x00, 0x89, 0xFF,
	0x4F, 0x00, 0x89, 0xFF, 0x50, 0x00, 0x89, 0xFF,
	0xA0, 0x00, 0x8A, 0xFF, 0xA1, 0x00, 0x89, 0xFF,
	0xA2, 0x00, 0x89, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
	0xA3, 0x00, 0x89, 0xFF, 0xA4, 0x00, 0x89, 0xFF,
	0x4A, 0x00, 0x13, 0x00, 0x4B, 0x00, 0x13, 0x00,
	0x4C, 0x00, 0x32, 0x00, 0x4D, 0x00, 0x32, 0x00,
	0x5F, 0x00, 0x0A, 0x00, 0x51, 0x00, 0x00, 0x00,
	0x52, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00,
	0x53, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
	0x55, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00,
	0x57, 0x00, 0x00, 0x00, 0x58, 0x00, 0x77, 0x00,
	0x60, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x6A, 0x00,
	0x8A, 0x00, 0x6F, 0x00, 0x8B, 0x00, 0x6F, 0x00,
	0x8C, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x00, 0x00,
	0x5A, 0x00, 0x77, 0x00, 0x5C, 0x00, 0x00, 0x00,
	0x5B, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x6F, 0x00,
	0x61, 0x00, 0x76, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0x62, 0x00, 0x76, 0x00, 0x63, 0x00, 0x3C, 0x00,
	0x64, 0x00, 0x6D, 0x00, 0x65, 0x00, 0x00, 0x00,
	0x66, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00,
	0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00,
	0x6A, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00,
	0x6C, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00,
	0x6E, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00,
	0x70, 0x00, 0x88, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
	0x71, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00,
	0x73, 0x00, 0x74, 0x00, 0x74, 0x00, 0x00, 0x00,
	0x75, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00,
	0x77, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
	0x79, 0x00, 0x77, 0x00, 0x90, 0x00, 0x00, 0x00,
	0x91, 0x00, 0x00, 0x00, 0x92, 0x00, 0x77, 0x00,
	0x93, 0x00, 0x1E, 0x00, 0x94, 0x00, 0x89, 0xFF,
	0x95, 0x00, 0x77, 0x00, 0x96, 0x00, 0x76, 0x00,
	0x97, 0x00, 0x72, 0x00, 0x98, 0x00, 0x00, 0x00,
	0x99, 0x00, 0x50, 0x00, 0x9A, 0x00, 0x78, 0x00,
	0x9B, 0x00, 0x64, 0x00, 0x9C, 0x00, 0x5A, 0x00,
	0x9D, 0x00, 0x64, 0x00, 0x9E, 0x00, 0x65, 0x00,
	0x9F, 0x00, 0x66, 0x00, 0xA5, 0x00, 0x89, 0xFF,
	0xA6, 0x00, 0x89, 0xFF, 0xA7, 0x00, 0x77, 0x00,
	0xA8, 0x00, 0x76, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xA9, 0x00, 0x77, 0x00, 0xAA, 0x00, 0x77, 0x00,
	0xAB, 0x00, 0x77, 0x00, 0xAC, 0x00, 0x77, 0x00,
	0xAD, 0x00, 0x77, 0x00, 0xAE, 0x00, 0x77, 0x00,
	0xAF, 0x00, 0x76, 0x00, 0xB0, 0x00, 0x77, 0x00,
	0xB1, 0x00, 0x64, 0x00, 0xB2, 0x00, 0x6F, 0x00,
	0xB3, 0x00, 0x6E, 0x00, 0xB4, 0x00, 0x6E, 0x00,
	0xB5, 0x00, 0x77, 0x00, 0xB6, 0x00, 0x77, 0x00,
	0xB7, 0x00, 0x77, 0x00, 0xB8, 0x00, 0x76, 0x00,
	0xB9, 0x00, 0x77, 0x00, 0xBA, 0x00, 0x77, 0x00,
	0xBB, 0x00, 0x77, 0x00, 0xBC, 0x00, 0x77, 0x00,
	0xBD, 0x00, 0x77, 0x00, 0xBE, 0x00, 0x77, 0x00,
	0xBF, 0x00, 0x77, 0x00, 0xC0, 0x00, 0x76, 0x00,
	0xC1, 0x00, 0x77, 0x00, 0xC2, 0x00, 0x77, 0x00,
	0xC3, 0x00, 0x77, 0x00, 0xC4, 0x00, 0x6E, 0x00,
	0xC5, 0x00, 0x6E, 0x00, 0xC6, 0x00, 0x7D, 0x00,
	0xC7, 0x00, 0x78, 0x00, 0xC8, 0x00, 0x78, 0x00,
	0xD8, 0x00, 0x77, 0x00, 0xD9, 0x00, 0x77, 0x00,
	0xDA, 0x00, 0x77, 0x00, 0xDB, 0x00, 0x77, 0x00,
	0xDC, 0x00, 0x77, 0x00, 0xDD, 0x00, 0x78, 0x00,
	0xDE, 0x00, 0x78, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
	0xE3, 0x00, 0x77, 0x00, 0xE4, 0x00, 0x77, 0x00,
	0xE0, 0x00, 0x1E, 0x00, 0xDF, 0x00, 0x77, 0x00,
	0xE1, 0x00, 0x05, 0x00, 0xE2, 0x00, 0x0A, 0x00,
	0x00, 0x00, 0x50, 0x00, 0x01, 0x00, 0x50, 0x00,
	0x02, 0x00, 0x50, 0x00, 0x03, 0x00, 0x50, 0x00,
	0x04, 0x00, 0x50, 0x00, 0x05, 0x00, 0x50, 0x00,
	0x06, 0x00, 0x50, 0x00, 0x07, 0x00, 0x50, 0x00,
	0x08, 0x00, 0x50, 0x00, 0x09, 0x00, 0x50, 0x00,
	0x0A, 0x00, 0x50, 0x00, 0x0B, 0x00, 0x50, 0x00,
	0x0C, 0x00, 0x50, 0x00, 0x0D, 0x00, 0x50, 0x00,
	0x0E, 0x00, 0x50, 0x00, 0x0F, 0x00, 0x50, 0x00,
	0x10, 0x00, 0x50, 0x00, 0x11, 0x00, 0x5A, 0x00,
	0x12, 0x00, 0x5A, 0x00, 0x13, 0x00, 0x5A, 0x00,
	0x14, 0x00, 0x5A, 0x00, 0x15, 0x00, 0x5A, 0x00,
	0x16, 0x00, 0x5A, 0x00, 0x17, 0x00, 0x5A, 0x00,
	0x18, 0x00, 0x5A, 0x00, 0x19, 0x00, 0x5A, 0x00,
	0x1A, 0x00, 0x5A, 0x00, 0x1B, 0x00, 0x5A, 0x00,
	0x1C, 0x00, 0x5A, 0x00, 0x1D, 0x00, 0x5A, 0x00,
	0x1E, 0x00, 0x5A, 0x00, 0x1F, 0x00, 0x5A, 0x00,
	0x20, 0x00, 0x5A, 0x00, 0x21, 0x00, 0x73, 0x00,
	0x22, 0x00, 0x73, 0x00, 0x23, 0x00, 0x73, 0x00,
	0x24, 0x00, 0x73, 0x00, 0x25, 0x00, 0x73, 0x00,
	0x26, 0x00, 0x73, 0x00, 0x27, 0x00, 0x73, 0x00,
	0x28, 0x00, 0x73, 0x00, 0x29, 0x00, 0x73, 0x00,
	0x2A, 0x00, 0x73, 0x00, 0x2B, 0x00, 0x50, 0x00,
	0x2C, 0x00, 0x5A, 0x00, 0x2D, 0x00, 0x5A, 0x00,
	0x2E, 0x00, 0x5A, 0x00, 0x2F, 0x00, 0x5A, 0x00,
	0x30, 0x00, 0x5A, 0x00, 0x31, 0x00, 0x5A, 0x00
};

static const ByteProvider kLoLIngameSfxIndexFMTownsProvider = { ARRAYSIZE(kLoLIngameSfxIndexFMTowns), kLoLIngameSfxIndexFMTowns };

static const SpellProperty kLoLSpellPropertiesFMTowns[10] = {
	{ 16436, { 5, 10, 15, 25 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0100 },
	{ 16437, { 5, 10, 25, 60 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0001 },
	{ 16438, { 8, 15, 30, 80 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0102 },
	{ 16440, { 20, 35, 65, 100 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0103 },
	{ 16441, { 30, 60, 90, 120 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0104 },
	{ 16442, { 30, 60, 90, 150 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0105 },
	{ 16439, { 25, 30, 50, 100 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0106 },
	{ 16443, { 3, 6, 12, 24 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0107 },
	{ 16975, { 15, 15, 15, 15 }, 0, 0, { 0, 0, 0, 0 }, 0, 0, 0x0108 },
	{ 16975, { 15, 15, 15, 15 }, 15, 0, { 0, 0, 0, 0 }, 0, 0, 0x0108 }
};

static const SpellPropertyProvider kLoLSpellPropertiesFMTownsProvider = { ARRAYSIZE(kLoLSpellPropertiesFMTowns), kLoLSpellPropertiesFMTowns };

static const byte kLoLGameShapeMapFMTowns[276] = {
	0x15, 0x54, 0x05, 0x35, 0x09, 0x36, 0x00, 0x34,
	0x00, 0x34, 0x00, 0x34, 0x00, 0x3A, 0x26, 0x3B,
	0x05, 0x35, 0x07, 0x37, 0x18, 0x3E, 0x0D, 0x3C,
	0x06, 0x40, 0x06, 0x3D, 0x01, 0x54, 0x01, 0x54,
	0x0A, 0x54, 0x0A, 0x54, 0x0A, 0x54, 0x04, 0x54,
	0x04, 0x54, 0x2D, 0x54, 0x2D, 0x54, 0x0B, 0x39,
	0x24, 0x54, 0x03, 0x38, 0x00, 0x3A, 0x1E, 0x3C,
	0x1E, 0x3C, 0x1B, 0x54, 0x14, 0x54, 0x29, 0x54,
	0x02, 0x54, 0x0C, 0x54, 0x22, 0x54, 0x21, 0x3F,
	0x0D, 0x3C, 0x25, 0x54, 0x1A, 0x3F, 0x04, 0x54,
	0x30, 0x54, 0x31, 0x54, 0x32, 0x54, 0x32, 0x54,
	0x00, 0x34, 0x00, 0x34, 0x00, 0x34, 0x00, 0x34,
	0x17, 0x54, 0x17, 0x54, 0x0E, 0x54, 0x0E, 0x54,
	0x0E, 0x54, 0x26, 0x3B, 0x2C, 0x54, 0x21, 0x3F,
	0x07, 0x37, 0x27, 0x54, 0x1B, 0x54, 0x1B, 0x54,
	0x1B, 0x54, 0x1B, 0x54, 0x1B, 0x54, 0x1B, 0x54,
	0x1B, 0x54, 0x1B, 0x54, 0x22, 0x54, 0x22, 0x54,
	0x16, 0x54, 0x2D, 0x54, 0x3B, 0x54, 0x3B, 0x54,
	0x3A, 0x54, 0x17, 0x54, 0x1B, 0x54, 0x1B, 0x54,
	0x17, 0x54, 0x0A, 0x54, 0x0A, 0x54, 0x0A, 0x54,
	0x1F, 0x54, 0x17, 0x54, 0x27, 0x54, 0x1B, 0x54,
	0x1E, 0x3C, 0x2A, 0x54, 0x2F, 0x54, 0x2F, 0x54,
	0x2F, 0x54, 0x2F, 0x54, 0x2F, 0x54, 0x2F, 0x54,
	0x2C, 0x54, 0x2C, 0x54, 0x2C, 0x54, 0x2C, 0x54,
	0x34, 0x54, 0x0F, 0x54, 0x35, 0x41, 0x1B, 0x54,
	0x1B, 0x54, 0x1B, 0x54, 0x1B, 0x54, 0x2B, 0x54,
	0x1D, 0x54, 0x1D, 0x54, 0x28, 0x54, 0x28, 0x54,
	0x28, 0x54, 0x28, 0x54, 0x01, 0x54, 0x14, 0x54,
	0x14, 0x54, 0x14, 0x54, 0x14, 0x54, 0x1B, 0x54,
	0x27, 0x54, 0x1B, 0x54, 0x1B, 0x54, 0x1B, 0x54,
	0x1B, 0x54, 0x36, 0x54, 0x37, 0x54, 0x38, 0x54,
	0x39, 0x54, 0x1B, 0x54, 0x1B, 0x54, 0x1B, 0x54,
	0x1B, 0x54, 0x27, 0x54, 0x2E, 0x54, 0x2E, 0x54,
	0x2E, 0x54, 0x2E, 0x54, 0x17, 0x54, 0x01, 0x54,
	0x1C, 0x54, 0x1C, 0x54
};

static const ByteProvider kLoLGameShapeMapFMTownsProvider = { ARRAYSIZE(kLoLGameShapeMapFMTowns), kLoLGameShapeMapFMTowns };

static const byte kLoLSceneItemOffsFMTowns[8] = {
	0x00, 0xFE, 0x01, 0xFF, 0x02, 0x00, 0x01, 0xFF
};

static const ByteProvider kLoLSceneItemOffsFMTownsProvider = { ARRAYSIZE(kLoLSceneItemOffsFMTowns), kLoLSceneItemOffsFMTowns };

static const byte kLoLCharInvIndexFMTowns[5] = {
	0x00, 0x00, 0x03, 0x01, 0x02
};

static const ByteProvider kLoLCharInvIndexFMTownsProvider = { ARRAYSIZE(kLoLCharInvIndexFMTowns), kLoLCharInvIndexFMTowns };

static const byte kLoLCharInvDefsFMTowns[88] = {
	0x05, 0x34, 0x50, 0x34, 0xFF, 0xFF, 0xFF, 0xFF,
	0x05, 0x04, 0x05, 0x1C, 0x50, 0x04, 0x50, 0x1C,
	0x05, 0x5D, 0x0F, 0x4E, 0x50, 0x4E, 0x05, 0x19,
	0x50, 0x19, 0x05, 0x49, 0x50, 0x49, 0x05, 0x01,
	0x05, 0x31, 0x50, 0x01, 0x50, 0x31, 0x05, 0x61,
	0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x34, 0x50, 0x34,
	0xFF, 0xFF, 0xFF, 0xFF, 0x05, 0x04, 0x05, 0x1C,
	0x50, 0x04, 0x50, 0x1C, 0x05, 0x5D, 0x0F, 0x4E,
	0x50, 0x4E, 0x05, 0x34, 0x50, 0x34, 0xFF, 0xFF,
	0xFF, 0xFF, 0x05, 0x04, 0x05, 0x1C, 0x50, 0x04,
	0x50, 0x1C, 0xFF, 0xFF, 0x0F, 0x4E, 0x50, 0x4E
};

static const ByteProvider kLoLCharInvDefsFMTownsProvider = { ARRAYSIZE(kLoLCharInvDefsFMTowns), kLoLCharInvDefsFMTowns };

static const uint16 kLoLCharDefsManFMTowns[9] = {
	0x0100, 0x0100, 0x0100, 0x0032, 0x0100, 0x0100, 0x0100, 0x0100,
	0x0004
};

static const Uint16Provider kLoLCharDefsManFMTownsProvider = { ARRAYSIZE(kLoLCharDefsManFMTowns), kLoLCharDefsManFMTowns };

static const uint16 kLoLCharDefsWomanFMTowns[9] = {
	0x0100, 0x0100, 0x0100, 0x0032, 0x0100, 0x0100, 0x0100, 0x0100,
	0x0004
};

static const Uint16Provider kLoLCharDefsWomanFMTownsProvider = { ARRAYSIZE(kLoLCharDefsWomanFMTowns), kLoLCharDefsWomanFMTowns };

static const uint16 kLoLCharDefsKieranFMTowns[9] = {
	0x0180, 0x0080, 0x00C0, 0x0032, 0x0200, 0x00A6, 0x0100, 0x0140,
	0x0006
};

static const Uint16Provider kLoLCharDefsKieranFMTownsProvider = { ARRAYSIZE(kLoLCharDefsKieranFMTowns), kLoLCharDefsKieranFMTowns };

static const uint16 kLoLCharDefsAkshelFMTowns[9] = {
	0x00C0, 0x00C0, 0x0140, 0x0032, 0x0100, 0x0180, 0x0180, 0x0100,
	0x0004
};

static const Uint16Provider kLoLCharDefsAkshelFMTownsProvider = { ARRAYSIZE(kLoLCharDefsAkshelFMTowns), kLoLCharDefsAkshelFMTowns };

static const uint32 kLoLExpRequirementsFMTowns[11] = {
	0x00000000, 0x000001F4, 0x000005DC, 0x00001388, 0x000061A8, 0x0000C350, 0x00013880, 0x0001D4C0,
	0x0002BF20, 0x00041EB0, 0x7FFFFFFF
};

static const Uint32Provider kLoLExpRequirementsFMTownsProvider = { ARRAYSIZE(kLoLExpRequirementsFMTowns), kLoLExpRequirementsFMTowns };

static const uint16 kLoLMonsterModifiers1FMTowns[3] = {
	0x00C0, 0x0100, 0x0180
};

static const Uint16Provider kLoLMonsterModifiers1FMTownsProvider = { ARRAYSIZE(kLoLMonsterModifiers1FMTowns), kLoLMonsterModifiers1FMTowns };

static const uint16 kLoLMonsterModifiers2FMTowns[3] = {
	0x0100, 0x0100, 0x00C0
};

static const Uint16Provider kLoLMonsterModifiers2FMTownsProvider = { ARRAYSIZE(kLoLMonsterModifiers2FMTowns), kLoLMonsterModifiers2FMTowns };

static const uint16 kLoLMonsterModifiers3FMTowns[3] = {
	0x0140, 0x0100, 0x0080
};

static const Uint16Provider kLoLMonsterModifiers3FMTownsProvider = { ARRAYSIZE(kLoLMonsterModifiers3FMTowns), kLoLMonsterModifiers3FMTowns };

static const byte kLoLMonsterShiftOffsetsFMTowns[32] = {
	0x01, 0x01, 0x01, 0x00, 0x01, 0xFF, 0x00, 0xFF,
	0x00, 0x00, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0x00,
	0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01,
	0x01, 0x01, 0x01, 0x00, 0x01, 0xFF, 0x00, 0x00
};

static const ByteProvider kLoLMonsterShiftOffsetsFMTownsProvider = { ARRAYSIZE(kLoLMonsterShiftOffsetsFMTowns), kLoLMonsterShiftOffsetsFMTowns };

static const byte kLoLMonsterDirFlagsFMTowns[16] = {
	0x08, 0x14, 0x00, 0x04, 0x04, 0x08, 0x14, 0x00,
	0x00, 0x04, 0x08, 0x14, 0x14, 0x00, 0x04, 0x08
};

static const ByteProvider kLoLMonsterDirFlagsFMTownsProvider = { ARRAYSIZE(kLoLMonsterDirFlagsFMTowns), kLoLMonsterDirFlagsFMTowns };

static const byte kLoLMonsterScaleYFMTowns[30] = {
	0x7C, 0x78, 0x74, 0x70, 0x6C, 0x68, 0x65, 0x62,
	0x5F, 0x5C, 0x59, 0x56, 0x53, 0x50, 0x4D, 0x4A,
	0x48, 0x46, 0x44, 0x43, 0x41, 0x40, 0x3E, 0x3D,
	0x3C, 0x3B, 0x3A, 0x39, 0x38, 0x38
};

static const ByteProvider kLoLMonsterScaleYFMTownsProvider = { ARRAYSIZE(kLoLMonsterScaleYFMTowns), kLoLMonsterScaleYFMTowns };

static const byte kLoLMonsterScaleXFMTowns[29] = {
	0x98, 0x98, 0x90, 0x88, 0x80, 0x76, 0x6E, 0x68,
	0x62, 0x5C, 0x58, 0x54, 0x50, 0x4A, 0x44, 0x40,
	0x3C, 0x38, 0x36, 0x32, 0x30, 0x2C, 0x2A, 0x28,
	0x26, 0x24, 0x22, 0x20, 0x20
};

static const ByteProvider kLoLMonsterScaleXFMTownsProvider = { ARRAYSIZE(kLoLMonsterScaleXFMTowns), kLoLMonsterScaleXFMTowns };

static const uint16 kLoLMonsterScaleWHFMTowns[65] = {
	0x0041, 0x0045, 0x0049, 0x004D, 0x0051, 0x0055, 0x0059, 0x005D,
	0x0062, 0x0066, 0x006A, 0x006E, 0x0072, 0x0076, 0x007A, 0x007E,
	0x0082, 0x0086, 0x008A, 0x008E, 0x0092, 0x0096, 0x009A, 0x009E,
	0x00A3, 0x00A7, 0x00AB, 0x00AF, 0x00B3, 0x00B7, 0x00BB, 0x00BF,
	0x00C3, 0x00C7, 0x00CB, 0x00CF, 0x00D3, 0x00D7, 0x00DB, 0x00DF,
	0x00E4, 0x00E8, 0x00EC, 0x00F0, 0x00F4, 0x00F8, 0x00FC, 0x0100,
	0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
	0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
	0x0100
};

static const Uint16Provider kLoLMonsterScaleWHFMTownsProvider = { ARRAYSIZE(kLoLMonsterScaleWHFMTowns), kLoLMonsterScaleWHFMTowns };

static const FlyingObjectShape kLoLFlyingObjectShpFMTowns[13] = {
	{ 0, 0, 1, 0x00, 0x40, },
	{ 2, 2, 3, 0x00, 0x00, },
	{ 4, 4, 4, 0x00, 0x00, },
	{ 5, 5, 5, 0x20, 0x00, },
	{ 6, 6, 6, 0x20, 0x00, },
	{ 7, 7, 7, 0x20, 0x00, },
	{ 9, 8, 15, 0x00, 0x00, },
	{ 11, 10, 12, 0x00, 0x00, },
	{ 12, 12, 12, 0x20, 0x00, },
	{ 14, 13, 15, 0x00, 0x00, },
	{ 16, 16, 16, 0x00, 0x00, },
	{ 17, 17, 17, 0x20, 0x00, },
	{ 18, 18, 18, 0x00, 0x00, }
};

static const FlyingObjectShapeProvider kLoLFlyingObjectShpFMTownsProvider = { ARRAYSIZE(kLoLFlyingObjectShpFMTowns), kLoLFlyingObjectShpFMTowns };

static const uint16 kLoLInventoryDescFMTowns[11] = {
	0x417A, 0x417B, 0x417A, 0x417B, 0x417C, 0x417D, 0x417E, 0x417F,
	0x4180, 0x4181, 0x4181
};

static const Uint16Provider kLoLInventoryDescFMTownsProvider = { ARRAYSIZE(kLoLInventoryDescFMTowns), kLoLInventoryDescFMTowns };

static const char *const kLoLLevelShpListFMTowns[12] = {
	"KEEP.SHP",
	"FOREST1.SHP",
	"MANOR.SHP",
	"CAVE1.SHP",
	"SWAMP.SHP",
	"URBISH.SHP",
	"MINE1.SHP",
	"TOWER1.SHP",
	"YVEL1.SHP",
	"CATWALK.SHP",
	"RUIN.SHP",
	"CIMMERIA.SHP"
};

static const StringListProvider kLoLLevelShpListFMTownsProvider = { ARRAYSIZE(kLoLLevelShpListFMTowns), kLoLLevelShpListFMTowns };

static const char *const kLoLLevelDatListFMTowns[12] = {
	"KEEP.DAT",
	"FOREST1.DAT",
	"MANOR.DAT",
	"CAVE1.DAT",
	"SWAMP.DAT",
	"URBISH.DAT",
	"MINE1.DAT",
	"TOWER1.DAT",
	"YVEL1.DAT",
	"CATWALK.DAT",
	"RUIN.DAT",
	"CIMMERIA.DAT"
};

static const StringListProvider kLoLLevelDatListFMTownsProvider = { ARRAYSIZE(kLoLLevelDatListFMTowns), kLoLLevelDatListFMTowns };

static const CompassDef kLoLCompassDefsFMTowns[32] = {
	{ 0,  3, -3, 0x00 },
	{ 1,  3, -3, 0x00 },
	{ 2,  3, -3, 0x00 },
	{ 3,  5, -3, 0x00 },
	{ 4,  5, -3, 0x00 },
	{ 5,  6, -3, 0x00 },
	{ 6,  6, -3, 0x00 },
	{ 7,  6, -3, 0x00 },
	{ 8,  6, -3, 0x00 },
	{ 7,  6,  4, 0x02 },
	{ 6,  6,  4, 0x02 },
	{ 5,  6,  4, 0x02 },
	{ 4,  5,  4, 0x02 },
	{ 3,  5,  4, 0x02 },
	{ 2,  3,  4, 0x02 },
	{ 1,  3,  4, 0x02 },
	{ 0,  3,  4, 0x02 },
	{ 1,  2,  4, 0x03 },
	{ 2,  2,  4, 0x03 },
	{ 3,  0,  4, 0x03 },
	{ 4,  0,  4, 0x03 },
	{ 5, -1,  4, 0x03 },
	{ 6, -1,  4, 0x03 },
	{ 7, -1,  4, 0x03 },
	{ 8, -1, -3, 0x01 },
	{ 7, -1, -3, 0x01 },
	{ 6, -1, -3, 0x01 },
	{ 5, -1, -3, 0x01 },
	{ 4,  0, -3, 0x01 },
	{ 3,  0, -3, 0x01 },
	{ 2,  2, -3, 0x01 },
	{ 1,  2, -3, 0x01 }
};

static const CompassDefProvider kLoLCompassDefsFMTownsProvider = { ARRAYSIZE(kLoLCompassDefsFMTowns), kLoLCompassDefsFMTowns };

static const byte kLoLStashSetupFMTowns[12] = {
	0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x03,
	0x03, 0x00, 0x01, 0x01
};

static const ByteProvider kLoLStashSetupFMTownsProvider = { ARRAYSIZE(kLoLStashSetupFMTowns), kLoLStashSetupFMTowns };

static const byte kLoLDscWallsFMTowns[36] = {
	0xFF, 0xFF, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF,
	0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x02, 0x01,
	0x02, 0x01, 0x02, 0xFF, 0x02, 0x03, 0x02, 0x03,
	0x02, 0x01, 0x02, 0xFF, 0x02, 0x03, 0xFF, 0x01,
	0x02, 0xFF, 0xFF, 0x03
};

static const ByteProvider kLoLDscWallsFMTownsProvider = { ARRAYSIZE(kLoLDscWallsFMTowns), kLoLDscWallsFMTowns };

static const byte kLoLDscShapeIndexFMTowns[36] = {
	0x03, 0x09, 0x03, 0x08, 0x03, 0x07, 0x03, 0x03,
	0x03, 0xF9, 0x03, 0xF8, 0x03, 0xF7, 0x02, 0x09,
	0x02, 0x06, 0x02, 0x02, 0x02, 0xFA, 0x02, 0xF7,
	0x01, 0x05, 0x01, 0x01, 0x01, 0xFB, 0x00, 0x04,
	0x00, 0x00, 0x00, 0xFC
};

static const ByteProvider kLoLDscShapeIndexFMTownsProvider = { ARRAYSIZE(kLoLDscShapeIndexFMTowns), kLoLDscShapeIndexFMTowns };

static const byte kLoLDscOvlMapFMTowns[10] = {
	0x00, 0x01, 0x01, 0x01, 0x04, 0x05, 0x05, 0x05,
	0x05, 0x04
};

static const ByteProvider kLoLDscOvlMapFMTownsProvider = { ARRAYSIZE(kLoLDscOvlMapFMTowns), kLoLDscOvlMapFMTowns };

static const uint16 kLoLDscScaleWidthDataFMTowns[36] = {
	0x0060, 0x0000, 0x0060, 0x00CE, 0x0060, 0x0055, 0x0060, 0x0000,
	0x0060, 0x0055, 0x0060, 0x00CE, 0x0060, 0x0000, 0x00A0, 0x00AE,
	0x00A0, 0x00AA, 0x00A0, 0x0000, 0x00A0, 0x00AA, 0x00A0, 0x00AE,
	0x0100, 0x0100, 0x0100, 0x0000, 0x0100, 0x0100, 0x0000, 0x0100,
	0x0100, 0x0000, 0x0000, 0x0100
};

static const Uint16Provider kLoLDscScaleWidthDataFMTownsProvider = { ARRAYSIZE(kLoLDscScaleWidthDataFMTowns), kLoLDscScaleWidthDataFMTowns };

static const uint16 kLoLDscScaleHeightDataFMTowns[36] = {
	0x006A, 0x0000, 0x006A, 0x006A, 0x006A, 0x006A, 0x006A, 0x0000,
	0x006A, 0x006A, 0x006A, 0x006A, 0x006A, 0x0000, 0x00AA, 0x0056,
	0x00AA, 0x00AA, 0x00AA, 0x0000, 0x00AA, 0x00AA, 0x00AA, 0x0056,
	0x0100, 0x0100, 0x0100, 0x0000, 0x0100, 0x0100, 0x0000, 0x0100,
	0x0100, 0x0000, 0x0000, 0x0100
};

static const Uint16Provider kLoLDscScaleHeightDataFMTownsProvider = { ARRAYSIZE(kLoLDscScaleHeightDataFMTowns), kLoLDscScaleHeightDataFMTowns };

static const uint16 kLoLDscXFMTowns[36] = {
	0xFFB0, 0xFFE0, 0xFFE0, 0x0010, 0x0010, 0x0040, 0x0040, 0x0000,
	0x0070, 0x0070, 0x00A0, 0x00A0, 0x00D0, 0x00D0, 0xFF86, 0x0000,
	0xFFE0, 0x0030, 0x0030, 0x0000, 0x0080, 0x0080, 0x00D0, 0x00B0,
	0xFF98, 0x0018, 0x0018, 0x0000, 0x0098, 0x0098, 0x0000, 0x0000,
	0x0000, 0x0000, 0x00B0, 0x00B0
};

static const Uint16Provider kLoLDscXFMTownsProvider = { ARRAYSIZE(kLoLDscXFMTowns), kLoLDscXFMTowns };

static const byte kLoLBaseDscYFMTowns[36] = {
	0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B,
	0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x14, 0x1C,
	0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x1C,
	0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00
};

static const ByteProvider kLoLBaseDscYFMTownsProvider = { ARRAYSIZE(kLoLBaseDscYFMTowns), kLoLBaseDscYFMTowns };

static const byte kLoLDscTileIndexFMTowns[18] = {
	0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07,
	0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F,
	0x11, 0x10
};

static const ByteProvider kLoLDscTileIndexFMTownsProvider = { ARRAYSIZE(kLoLDscTileIndexFMTowns), kLoLDscTileIndexFMTowns };

static const byte kLoLDscUnk2FMTowns[23] = {
	0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
	0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
	0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12
};

static const ByteProvider kLoLDscUnk2FMTownsProvider = { ARRAYSIZE(kLoLDscUnk2FMTowns), kLoLDscUnk2FMTowns };

static const byte kLoLDscDoorShapeIndexFMTowns[23] = {
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
	0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
};

static const ByteProvider kLoLDscDoorShapeIndexFMTownsProvider = { ARRAYSIZE(kLoLDscDoorShapeIndexFMTowns), kLoLDscDoorShapeIndexFMTowns };

static const byte kLoLDscDimData1FMTowns[324] = {
	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
	0xD8, 0xD7, 0xD8, 0xD8, 0x02, 0xD8, 0xD8, 0xD8,
	0xD8, 0xFE, 0xD7, 0xD8, 0xD8, 0xD8, 0xD7, 0x03,
	0xD8, 0xFD, 0xD8, 0xD8, 0xD8, 0xFE, 0xD8, 0x08,
	0xD8, 0xD8, 0xD8, 0xFE, 0xF8, 0x06, 0xD8, 0xD8,
	0xFA, 0x03, 0xD8, 0xFD, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xFA, 0xD7,
	0x10, 0xD8, 0xFA, 0xD7, 0x10, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xF2, 0xD8, 0x14, 0xD8, 0xD8,
	0xD8, 0xF0, 0x0E, 0x14, 0xD8, 0xED, 0x10, 0xD8,
	0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8, 0xEC, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD7, 0x14, 0xD8, 0xED,
	0xD7, 0xD8, 0xD8, 0x13, 0xD7, 0xD7, 0xD7, 0xD7,
	0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
	0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD7, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD7, 0xD8,
	0xD8, 0xD8, 0xD7, 0xD8, 0xD8, 0xD7, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0x06, 0xD8, 0xD8, 0xFA, 0x03, 0xD8, 0xFD,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xFA, 0xD8, 0x10, 0xD8, 0xFA, 0xD7,
	0x10, 0xFD, 0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xF0, 0xD8, 0xD8,
	0xD8, 0xED, 0x10, 0xD8, 0xD8, 0x13, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD7, 0xD8, 0xD8, 0xD8, 0xD7, 0xD8, 0xD8, 0xD7,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0x03, 0xD8, 0xFD,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xFD, 0xD8,
	0x13, 0xFD, 0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xED, 0xD8, 0xD8, 0xD8, 0x13, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
	0xD8, 0xD8, 0xD8, 0xD8
};

static const ByteProvider kLoLDscDimData1FMTownsProvider = { ARRAYSIZE(kLoLDscDimData1FMTowns), kLoLDscDimData1FMTowns };

static const byte kLoLDscDimData2FMTowns[648] = {
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x00, 0x16, 0x16, 0x00, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x02, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x02, 0x16, 0x00, 0x04, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x16, 0x00, 0x00, 0x03,
	0x00, 0x16, 0x03, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x02, 0x16, 0x00, 0x16, 0x00, 0x08,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x02,
	0x16, 0x00, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
	0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x00,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x08, 0x0E,
	0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x06, 0x10,
	0x00, 0x13, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x0E, 0x16,
	0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x10, 0x16, 0x16, 0x00, 0x00, 0x14,
	0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x14, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x12, 0x16, 0x14, 0x16, 0x00, 0x16, 0x13, 0x16,
	0x16, 0x00, 0x00, 0x16, 0x00, 0x16, 0x00, 0x13,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x00, 0x16, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
	0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x00, 0x16,
	0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x07, 0x0F,
	0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x10, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x13, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
	0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x03, 0x16, 0x00, 0x16,
	0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x13, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
	0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16
};

static const ByteProvider kLoLDscDimData2FMTownsProvider = { ARRAYSIZE(kLoLDscDimData2FMTowns), kLoLDscDimData2FMTowns };

static const byte kLoLDscBlockMapFMTowns[12] = {
	0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00,
	0x03, 0x00, 0x01, 0x02
};

static const ByteProvider kLoLDscBlockMapFMTownsProvider = { ARRAYSIZE(kLoLDscBlockMapFMTowns), kLoLDscBlockMapFMTowns };

static const byte kLoLDscDimMapFMTowns[18] = {
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
	0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03,
	0x03, 0x03
};

static const ByteProvider kLoLDscDimMapFMTownsProvider = { ARRAYSIZE(kLoLDscDimMapFMTowns), kLoLDscDimMapFMTowns };

static const byte kLoLDscOvlIndexFMTowns[20] = {
	0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x03,
	0x03, 0x03, 0x04, 0x04, 0x05, 0x05, 0x05, 0x06,
	0x06, 0x07, 0x07, 0x07
};

static const ByteProvider kLoLDscOvlIndexFMTownsProvider = { ARRAYSIZE(kLoLDscOvlIndexFMTowns), kLoLDscOvlIndexFMTowns };

static const byte kLoLDscBlockIndexFMTowns[72] = {
	0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xBE,
	0xBF, 0xC0, 0xC1, 0xC2, 0xDF, 0xE0, 0xE1, 0xFF,
	0x00, 0x01, 0xA3, 0xC3, 0xE3, 0x03, 0x23, 0x43,
	0x63, 0xC2, 0xE2, 0x02, 0x22, 0x42, 0xE1, 0x01,
	0x21, 0xE0, 0x00, 0x20, 0x63, 0x62, 0x61, 0x60,
	0x5F, 0x5E, 0x5D, 0x42, 0x41, 0x40, 0x3F, 0x3E,
	0x21, 0x20, 0x1F, 0x01, 0x00, 0xFF, 0x5D, 0x3D,
	0x1D, 0xFD, 0xDD, 0xBD, 0x9D, 0x3E, 0x1E, 0xFE,
	0xDE, 0xBE, 0x1F, 0xFF, 0xDF, 0x20, 0x00, 0xE0
};

static const ByteProvider kLoLDscBlockIndexFMTownsProvider = { ARRAYSIZE(kLoLDscBlockIndexFMTowns), kLoLDscBlockIndexFMTowns };

static const byte kLoLDscDoorY2FMTowns[128] = {
	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
	0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
	0x10, 0x11, 0x12, 0x13, 0x14, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x0D, 0x08, 0x03, 0x12, 0x0E, 0x09, 0x04, 0x00,
	0x13, 0x0F, 0x0A, 0x05, 0x01, 0x14, 0x10, 0x0B,
	0x06, 0x02, 0x11, 0x0C, 0x07, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x14, 0x13, 0x12, 0x11, 0x10, 0x0F, 0x0E, 0x0D,
	0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05,
	0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x07, 0x0C, 0x11, 0x02, 0x06, 0x0B, 0x10, 0x14,
	0x01, 0x05, 0x0A, 0x0F, 0x13, 0x00, 0x04, 0x09,
	0x0E, 0x12, 0x03, 0x08, 0x0D, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

static const ByteProvider kLoLDscDoorY2FMTownsProvider = { ARRAYSIZE(kLoLDscDoorY2FMTowns), kLoLDscDoorY2FMTowns };

static const byte kLoLDscDoorFrameY1FMTowns[4] = {
	0x1E, 0x18, 0x10, 0x00
};

static const ByteProvider kLoLDscDoorFrameY1FMTownsProvider = { ARRAYSIZE(kLoLDscDoorFrameY1FMTowns), kLoLDscDoorFrameY1FMTowns };

static const byte kLoLDscDoorFrameY2FMTowns[4] = {
	0x3B, 0x47, 0x56, 0x78
};

static const ByteProvider kLoLDscDoorFrameY2FMTownsProvider = { ARRAYSIZE(kLoLDscDoorFrameY2FMTowns), kLoLDscDoorFrameY2FMTowns };

static const uint16 kLoLDscDoorScaleFMTowns[8] = {
	0x0075, 0x006A, 0x00B9, 0x00B2, 0x0100, 0x0100, 0x0000, 0x0000
};

static const Uint16Provider kLoLDscDoorScaleFMTownsProvider = { ARRAYSIZE(kLoLDscDoorScaleFMTowns), kLoLDscDoorScaleFMTowns };

static const uint16 kLoLDscDoor4FMTowns[4] = {
	0x0005, 0x0002, 0x0008, 0x0000
};

static const Uint16Provider kLoLDscDoor4FMTownsProvider = { ARRAYSIZE(kLoLDscDoor4FMTowns), kLoLDscDoor4FMTowns };

static const uint16 kLoLDscDoorXFMTowns[576] = {
	0xFF98, 0xFFA0, 0xFFA8, 0xFF90, 0xFF98, 0xFFA0, 0xFFA8, 0xFFB0,
	0xFF74, 0xFF7E, 0xFF88, 0xFF92, 0xFF9C, 0xFF74, 0xFF7E, 0xFF88,
	0xFF92, 0xFF9C, 0xFF64, 0xFF70, 0xFF7C, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFB8, 0xFFC0, 0xFFC8, 0xFFB0, 0xFFB8, 0xFFC0, 0xFFC8, 0xFFD0,
	0xFF9C, 0xFFA6, 0xFFB0, 0xFFBA, 0xFFC4, 0xFF9C, 0xFFA6, 0xFFB0,
	0xFFBA, 0xFFC4, 0xFF94, 0xFFA0, 0xFFAC, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFD8, 0xFFE0, 0xFFE8, 0xFFD0, 0xFFD8, 0xFFE0, 0xFFE8, 0xFFF0,
	0xFFC4, 0xFFCE, 0xFFD8, 0xFFE2, 0xFFEC, 0xFFC4, 0xFFCE, 0xFFD8,
	0xFFE2, 0xFFEC, 0xFFC4, 0xFFD0, 0xFFDC, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFF8, 0x0000, 0x0008, 0xFFF0, 0xFFF8, 0x0000, 0x0008, 0x0010,
	0xFFEC, 0xFFF6, 0x0000, 0x000A, 0x0014, 0xFFEC, 0xFFF6, 0x0000,
	0x000A, 0x0014, 0xFFF4, 0x0000, 0x000C, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0018, 0x0020, 0x0028, 0x0010, 0x0018, 0x0020, 0x0028, 0x0030,
	0x0014, 0x001E, 0x0028, 0x0032, 0x003C, 0x0014, 0x001E, 0x0028,
	0x0032, 0x003C, 0x0024, 0x0030, 0x003C, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0038, 0x0040, 0x0048, 0x0030, 0x0038, 0x0040, 0x0048, 0x0050,
	0x003C, 0x0046, 0x0050, 0x005A, 0x0064, 0x003C, 0x0046, 0x0050,
	0x005A, 0x0064, 0x0054, 0x0060, 0x006C, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0058, 0x0060, 0x0068, 0x0050, 0x0058, 0x0060, 0x0068, 0x0070,
	0x0064, 0x006E, 0x0078, 0x0082, 0x008C, 0x0064, 0x006E, 0x0078,
	0x0082, 0x008C, 0x0084, 0x0090, 0x009C, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFF94, 0xFFA0, 0xFFAC, 0xFF7E, 0xFF8B, 0xFF98, 0xFFA5, 0xFFB2,
	0xFF6C, 0xFF7B, 0xFF8A, 0xFF99, 0xFFA7, 0xFF60, 0xFF70, 0xFF80,
	0xFF90, 0xFFA0, 0xFF4C, 0xFF60, 0xFF74, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFC4, 0xFFD0, 0xFFDC, 0xFFB2, 0xFFBF, 0xFFCC, 0xFFD9, 0xFFE6,
	0xFFA7, 0xFFB6, 0xFFC5, 0xFFD4, 0xFFE2, 0xFFA0, 0xFFB0, 0xFFC0,
	0xFFD0, 0xFFE0, 0xFF9C, 0xFFB0, 0xFFC4, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFF4, 0x0000, 0x000C, 0xFFE6, 0xFFF3, 0x0000, 0x000D, 0x001A,
	0xFFE2, 0xFFF1, 0x0000, 0x000F, 0x001E, 0xFFE0, 0xFFF0, 0x0000,
	0x0010, 0x0020, 0xFFEC, 0x0000, 0x0014, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0024, 0x0030, 0x003C, 0x001A, 0x0027, 0x0034, 0x0041, 0x004E,
	0x001E, 0x002C, 0x003B, 0x004A, 0x0059, 0x0020, 0x0030, 0x0040,
	0x0050, 0x0060, 0x003C, 0x0050, 0x0064, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0054, 0x0060, 0x006C, 0x004E, 0x005B, 0x0068, 0x0075, 0x0082,
	0x0059, 0x0067, 0x0076, 0x0085, 0x0094, 0x0060, 0x0070, 0x0080,
	0x0090, 0x00A0, 0x008C, 0x00A0, 0x00B4, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFF9C, 0xFFB0, 0xFFC4, 0xFF7C, 0xFF92, 0xFFA8, 0xFFBE, 0xFFD4,
	0xFF6D, 0xFF85, 0xFF9E, 0xFFB6, 0xFFCF, 0xFF5E, 0xFF79, 0xFF94,
	0xFFAF, 0xFFCA, 0xFF60, 0xFF80, 0xFFA0, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFEC, 0x0000, 0x0014, 0xFFD4, 0xFFEA, 0x0000, 0x0016, 0x002C,
	0xFFCF, 0xFFE7, 0x0000, 0x0019, 0x0031, 0xFFCA, 0xFFE5, 0x0000,
	0x001B, 0x0036, 0xFFE0, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x003C, 0x0050, 0x0064, 0x002C, 0x0042, 0x0058, 0x006E, 0x0084,
	0x0031, 0x004A, 0x0062, 0x007B, 0x0093, 0x0036, 0x0051, 0x006C,
	0x0087, 0x00A2, 0x0060, 0x0080, 0x00A0, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFF60, 0xFF80, 0xFFA0, 0xFF1C, 0xFF42, 0xFF68, 0xFF8E, 0xFFB4,
	0xFF40, 0xFF60, 0xFF80, 0xFFA0, 0xFFC0, 0xFF1C, 0xFF42, 0xFF68,
	0xFF8E, 0xFFB4, 0xFF60, 0xFF80, 0xFFA0, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFE0, 0x0000, 0x0020, 0xFFB4, 0xFFDA, 0x0000, 0x0026, 0x004C,
	0xFFC0, 0xFFE0, 0x0000, 0x0020, 0x0040, 0xFFB4, 0xFFDA, 0x0000,
	0x0026, 0x004C, 0xFFE0, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0060, 0x0080, 0x00A0, 0x004C, 0x0072, 0x0098, 0x00BE, 0x00E4,
	0x0040, 0x0060, 0x0080, 0x00A0, 0x00C0, 0x004C, 0x0072, 0x0098,
	0x00BE, 0x00E4, 0x0060, 0x0080, 0x00A0, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
};

static const Uint16Provider kLoLDscDoorXFMTownsProvider = { ARRAYSIZE(kLoLDscDoorXFMTowns), kLoLDscDoorXFMTowns };

static const uint16 kLoLDscDoorYFMTowns[576] = {
	0xFFBF, 0xFFBF, 0xFFBF, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1,
	0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC5, 0xFFC5, 0xFFC5,
	0xFFC5, 0xFFC5, 0xFFC9, 0xFFC9, 0xFFC9, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFBF, 0xFFBF, 0xFFBF, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1,
	0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC5, 0xFFC5, 0xFFC5,
	0xFFC5, 0xFFC5, 0xFFC9, 0xFFC9, 0xFFC9, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFBF, 0xFFBF, 0xFFBF, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1,
	0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC5, 0xFFC5, 0xFFC5,
	0xFFC5, 0xFFC5, 0xFFC9, 0xFFC9, 0xFFC9, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFBF, 0xFFBF, 0xFFBF, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1,
	0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC5, 0xFFC5, 0xFFC5,
	0xFFC5, 0xFFC5, 0xFFC9, 0xFFC9, 0xFFC9, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFBF, 0xFFBF, 0xFFBF, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1,
	0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC5, 0xFFC5, 0xFFC5,
	0xFFC5, 0xFFC5, 0xFFC9, 0xFFC9, 0xFFC9, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFBF, 0xFFBF, 0xFFBF, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1,
	0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC5, 0xFFC5, 0xFFC5,
	0xFFC5, 0xFFC5, 0xFFC9, 0xFFC9, 0xFFC9, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFBF, 0xFFBF, 0xFFBF, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1, 0xFFC1,
	0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC3, 0xFFC5, 0xFFC5, 0xFFC5,
	0xFFC5, 0xFFC5, 0xFFC9, 0xFFC9, 0xFFC9, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFC9, 0xFFC9, 0xFFC9, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB,
	0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFD3, 0xFFD3, 0xFFD3,
	0xFFD3, 0xFFD3, 0xFFD7, 0xFFD7, 0xFFD7, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFC9, 0xFFC9, 0xFFC9, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB,
	0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFD3, 0xFFD3, 0xFFD3,
	0xFFD3, 0xFFD3, 0xFFD7, 0xFFD7, 0xFFD7, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFC9, 0xFFC9, 0xFFC9, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB,
	0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFD3, 0xFFD3, 0xFFD3,
	0xFFD3, 0xFFD3, 0xFFD7, 0xFFD7, 0xFFD7, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFC9, 0xFFC9, 0xFFC9, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB,
	0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFD3, 0xFFD3, 0xFFD3,
	0xFFD3, 0xFFD3, 0xFFD7, 0xFFD7, 0xFFD7, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFC9, 0xFFC9, 0xFFC9, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB, 0xFFCB,
	0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFCE, 0xFFD3, 0xFFD3, 0xFFD3,
	0xFFD3, 0xFFD3, 0xFFD7, 0xFFD7, 0xFFD7, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFD7, 0xFFD7, 0xFFD7, 0xFFDD, 0xFFDD, 0xFFDD, 0xFFDD, 0xFFDD,
	0xFFE2, 0xFFE2, 0xFFE2, 0xFFE2, 0xFFE2, 0xFFEA, 0xFFEA, 0xFFEA,
	0xFFEA, 0xFFEA, 0xFFF8, 0xFFF8, 0xFFF8, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFD7, 0xFFD7, 0xFFD7, 0xFFDD, 0xFFDD, 0xFFDD, 0xFFDD, 0xFFDD,
	0xFFE2, 0xFFE2, 0xFFE2, 0xFFE2, 0xFFE2, 0xFFEA, 0xFFEA, 0xFFEA,
	0xFFEA, 0xFFEA, 0xFFF8, 0xFFF8, 0xFFF8, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFD7, 0xFFD7, 0xFFD7, 0xFFDD, 0xFFDD, 0xFFDD, 0xFFDD, 0xFFDD,
	0xFFE2, 0xFFE2, 0xFFE2, 0xFFE2, 0xFFE2, 0xFFEA, 0xFFEA, 0xFFEA,
	0xFFEA, 0xFFEA, 0xFFF8, 0xFFF8, 0xFFF8, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFF8, 0xFFF8, 0xFFF8, 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFC,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFF8, 0xFFF8, 0xFFF8, 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFC,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0xFFF8, 0xFFF8, 0xFFF8, 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFC, 0xFFFC,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
};

static const Uint16Provider kLoLDscDoorYFMTownsProvider = { ARRAYSIZE(kLoLDscDoorYFMTowns), kLoLDscDoorYFMTowns };

static const byte kLoLScrollXTopFMTowns[5] = {
	0x05, 0x0A, 0x0F, 0x14, 0x19
};

static const ByteProvider kLoLScrollXTopFMTownsProvider = { ARRAYSIZE(kLoLScrollXTopFMTowns), kLoLScrollXTopFMTowns };

static const byte kLoLScrollYTopFMTowns[5] = {
	0x02, 0x04, 0x07, 0x09, 0x0C
};

static const ByteProvider kLoLScrollYTopFMTownsProvider = { ARRAYSIZE(kLoLScrollYTopFMTowns), kLoLScrollYTopFMTowns };

static const byte kLoLScrollXBottomFMTowns[5] = {
	0x05, 0x0A, 0x0F, 0x14, 0x19
};

static const ByteProvider kLoLScrollXBottomFMTownsProvider = { ARRAYSIZE(kLoLScrollXBottomFMTowns), kLoLScrollXBottomFMTowns };

static const byte kLoLScrollYBottomFMTowns[5] = {
	0x04, 0x08, 0x0C, 0x10, 0x14
};

static const ByteProvider kLoLScrollYBottomFMTownsProvider = { ARRAYSIZE(kLoLScrollYBottomFMTowns), kLoLScrollYBottomFMTowns };

static const LoLButtonDef kLoLButtonDefsFMTowns[95] = {
	{ 0x1100,  30,  56,  33, 131,  22,  19, 0x0000,  0 },
	{ 0x1100,  31,  53,  33, 150,  22,  18, 0x0000,  0 },
	{ 0x1100,  31,  53,  33, 150,  22,  18, 0x0000,  0 },
	{ 0x1100,  29,  52,  11, 150,  22,  18, 0x0000,  0 },
	{ 0x1100,  28,  54,  53, 150,  22,  18, 0x0000,  0 },
	{ 0x1100, 127,  55,  11, 131,  22,  19, 0x0000,  0 },
	{ 0x1100,  18,  57,  53, 131,  22,  19, 0x0000,  0 },
	{ 0x0100,  49,   0,  80, 143,  22,  17, 0x0000,  0 },
	{ 0x0100,  50,   0,  80, 143,  22,  17, 0x0001,  0 },
	{ 0x0100,  51,   0,  80, 143,  22,  17, 0x0002,  0 },
	{ 0x0100,  48,   0,  80, 143,  22,  17, 0x0003,  0 },
	{ 0x1100,   0,   0,  80, 160,  22,  17, 0x0000,  0 },
	{ 0x1100,   0,   0,  80, 160,  22,  17, 0x0001,  0 },
	{ 0x1100,   0,   0,  80, 160,  22,  17, 0x0002,  0 },
	{ 0x1100,   0,   0,  80, 160,  22,  17, 0x0003,  0 },
	{ 0x1100,   0,   0,  80, 144,  22,  32, 0x0000,  0 },
	{ 0x1100,  27,   0,   0,   0, 320, 200, 0x0003,  0 },
	{ 0x0100,   0,   0,  80, 143,  33,  34, 0x0000,  0 },
	{ 0x0100,   0,   0,  80, 143,  33,  34, 0x0001,  0 },
	{ 0x0100,   0,   0,  80, 143,  33,  34, 0x0002,  0 },
	{ 0x0100,   0,   0,  80, 143,  33,  34, 0x0003,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0000,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0001,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0002,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0003,  0 },
	{ 0x0100,   0,   0,  80, 143,  12,  34, 0x0000,  0 },
	{ 0x0100,   0,   0,  80, 143,  12,  34, 0x0001,  0 },
	{ 0x0100,   0,   0,  80, 143,  12,  34, 0x0002,  0 },
	{ 0x0100,   0,   0,  80, 143,  12,  34, 0x0003,  0 },
	{ 0x1000,   0,   0,  80, 143,  66,  34, 0x0000,  0 },
	{ 0x1000,   0,   0,  80, 143,  66,  34, 0x0001,  0 },
	{ 0x1000,   0,   0,  80, 143,  66,  34, 0x0002,  0 },
	{ 0x1000,   0,   0,  80, 143,  66,  34, 0x0003,  0 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0000,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0001,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0002,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0003,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0004,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0005,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0006,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0007,  2 },
	{ 0x1100,   0,   0,   0,   0,  20,  19, 0x0008,  2 },
	{ 0x1100,   0,   0,   0,   0,  12,  11, 0x0009,  2 },
	{ 0x1100,   0,   0,   0,   0,  12,  11, 0x000A,  2 },
	{ 0x1100,  27,   0, 160,  93,  43,  19, 0x0000,  2 },
	{ 0x1100,   0,   0,   0, 102,  88,  19, 0x0000,  2 },
	{ 0x1100,   0,   0,  88, 102,  88,  19, 0x0001,  2 },
	{ 0x1100,   0,   0,   0,  85,  88,  17, 0x0002,  2 },
	{ 0x1100,   0,   0,  88,  85,  88,  17, 0x0003,  2 },
	{ 0x1100,   0,   0,   0,   0, 176, 120, 0x0000,  2 },
	{ 0x1100,   0,   0, 106, 179,  21,  21, 0x0000,  0 },
	{ 0x1100,   0,   0, 127, 179,  21,  21, 0x0001,  0 },
	{ 0x1100,   0,   0, 148, 179,  21,  21, 0x0002,  0 },
	{ 0x1100,   0,   0, 169, 179,  21,  21, 0x0003,  0 },
	{ 0x1100,   0,   0, 190, 179,  21,  21, 0x0004,  0 },
	{ 0x1100,   0,   0, 211, 179,  21,  21, 0x0005,  0 },
	{ 0x1100,   0,   0, 232, 179,  21,  21, 0x0006,  0 },
	{ 0x1100,   0,   0, 253, 179,  21,  21, 0x0007,  0 },
	{ 0x1100,   0,   0, 274, 179,  21,  21, 0x0008,  0 },
	{ 0x1100,   0,   0, 274, 179,  21,  21, 0x0009,  0 },
	{ 0x1100,   0,   0,  85, 179,  21,  21, 0xFFFF,  0 },
	{ 0x1100,   0,   0, 295, 179,  22,  21, 0x0001,  0 },
	{ 0x1100,   0,   0,  24,   8, 128,  96, 0x0001,  2 },
	{ 0x1100,   0,   0,   0,   0, 176, 120, 0x0000,  2 },
	{ 0x1100,   0,   0,   0,   0,   0,   0, 0x0000,  0 },
	{ 0x1100,   0,   0, 112,   0, 176,  16, 0x0001,  0 },
	{ 0x1100,   0,   0, 112, 110, 176,  26, 0x0001,  0 },
	{ 0x1100,   0,   0,  96,  88,  32,  32, 0x0001,  0 },
	{ 0x1100,   0,   0, 272,  88,  32,  32, 0x0001,  0 },
	{ 0x1100,   0,   0,  96,  16,  32,  72, 0x0001,  0 },
	{ 0x1100,   0,   0, 272,  16,  32,  72, 0x0001,  0 },
	{ 0x1100,   0,   0,  24,  15,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  24,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  33,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  42,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  51,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  60,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  69,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  78,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  87,  61,   9, 0x0000,  0 },
	{ 0x1100,   0,   0,  24,  96,  61,   9, 0x0000,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0000,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0001,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0002,  0 },
	{ 0x0100,   0,   0,  80, 143,  66,  34, 0x0003,  0 },
	{ 0x1100,  27,   0,   0,   0, 320, 200, 0x0003,  0 },
	{ 0x0100,   0,   0, 112,   0,  88,  80, 0x0000,  0 },
	{ 0x0100,   0,   0, 200,   0,  88,  80, 0x0001,  0 },
	{ 0x1100,  79,  27,  11, 178,  21,  22, 0x0000,  0 },
	{ 0x0100,  82,   0,  32, 178,  22,  22, 0x0000,  0 },
	{ 0x0100,   0,   0, 291,  96,  27,  24, 0x0000,  0 },
	{ 0x0100,   0,   0, 289,   0,  31,  28, 0x0000,  0 },
	{ 0x0100,   0,   0, 289,  31,  31,  23, 0x0000,  0 },
	{ 0x0100,   0,   0, 291,  56,  29,  24, 0x0000,  0 },
	{ 0x1100,   0,   0, 220,  98,  43,  19, 0x0000,  0 }
};

static const LoLButtonDefProvider kLoLButtonDefsFMTownsProvider = { ARRAYSIZE(kLoLButtonDefsFMTowns), kLoLButtonDefsFMTowns };

static const byte kLoLButtonList1FMTowns[40] = {
	0x59, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x31,
	0x3E, 0x2D, 0x2E, 0x2F, 0x30, 0x56, 0x57, 0x01,
	0x02, 0x00, 0x03, 0x04, 0x05, 0x06, 0x32, 0x33,
	0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
	0x3C, 0x3D, 0x58, 0x5A, 0x5B, 0x5C, 0x5D, 0xFF
};

static const ByteProvider kLoLButtonList1FMTownsProvider = { ARRAYSIZE(kLoLButtonList1FMTowns), kLoLButtonList1FMTowns };

static const byte kLoLButtonList2FMTowns[15] = {
	0x2C, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
	0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x5E, 0xFF
};

static const ByteProvider kLoLButtonList2FMTownsProvider = { ARRAYSIZE(kLoLButtonList2FMTowns), kLoLButtonList2FMTowns };

static const byte kLoLButtonList3FMTowns[2] = {
	0x40, 0xFF
};

static const ByteProvider kLoLButtonList3FMTownsProvider = { ARRAYSIZE(kLoLButtonList3FMTowns), kLoLButtonList3FMTowns };

static const byte kLoLButtonList4FMTowns[15] = {
	0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
	0x3A, 0x3B, 0x3C, 0x3D, 0x5A, 0x5B, 0xFF
};

static const ByteProvider kLoLButtonList4FMTownsProvider = { ARRAYSIZE(kLoLButtonList4FMTowns), kLoLButtonList4FMTowns };

static const byte kLoLButtonList5FMTowns[16] = {
	0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x06, 0x41,
	0x42, 0x43, 0x44, 0x45, 0x46, 0x5A, 0x5B, 0xFF
};

static const ByteProvider kLoLButtonList5FMTownsProvider = { ARRAYSIZE(kLoLButtonList5FMTowns), kLoLButtonList5FMTowns };

static const byte kLoLButtonList6FMTowns[14] = {
	0x2C, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
	0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0xFF
};

static const ByteProvider kLoLButtonList6FMTownsProvider = { ARRAYSIZE(kLoLButtonList6FMTowns), kLoLButtonList6FMTowns };

static const byte kLoLButtonList7FMTowns[3] = {
	0x0F, 0x10, 0xFF
};

static const ByteProvider kLoLButtonList7FMTownsProvider = { ARRAYSIZE(kLoLButtonList7FMTowns), kLoLButtonList7FMTowns };

static const byte kLoLButtonList8FMTowns[2] = {
	0x55, 0xFF
};

static const ByteProvider kLoLButtonList8FMTownsProvider = { ARRAYSIZE(kLoLButtonList8FMTowns), kLoLButtonList8FMTowns };

static const byte kLoLLegendDataFMTowns[60] = {
	0x0E, 0x00, 0x00, 0x07, 0x42, 0x19, 0x00, 0x00,
	0x08, 0x42, 0x1A, 0x00, 0x00, 0x09, 0x42, 0x0D,
	0x00, 0x00, 0x0A, 0x42, 0x0A, 0x00, 0x00, 0x0B,
	0x42, 0x0B, 0x00, 0x00, 0x0C, 0x42, 0x0F, 0x00,
	0x00, 0x0D, 0x42, 0x16, 0x00, 0x00, 0x0E, 0x42,
	0x17, 0x00, 0x00, 0x0F, 0x42, 0x11, 0x00, 0x00,
	0x10, 0x42, 0x12, 0x00, 0xFB, 0x51, 0x42, 0xFF,
	0xFF, 0xFF, 0xFF, 0xFF
};

static const ByteProvider kLoLLegendDataFMTownsProvider = { ARRAYSIZE(kLoLLegendDataFMTowns), kLoLLegendDataFMTowns };

static const uint16 kLoLMapStringIdFMTowns[30] = {
	0xFFFF, 0x4211, 0x4212, 0x4213, 0x4214, 0x4215, 0x4216, 0x4217,
	0x4218, 0x4219, 0x421A, 0x421B, 0x421C, 0x421D, 0x421E, 0x421F,
	0x4220, 0x4221, 0x4222, 0x4223, 0x4224, 0x4225, 0x4226, 0x4227,
	0x4228, 0x4229, 0x422A, 0x422B, 0x422C, 0x422D
};

static const Uint16Provider kLoLMapStringIdFMTownsProvider = { ARRAYSIZE(kLoLMapStringIdFMTowns), kLoLMapStringIdFMTowns };

static const byte kLoLSpellbookAnimFMTowns[28] = {
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x04, 0x00, 0x13, 0xB6, 0x04, 0x00, 0x13, 0x4D,
	0x04, 0x00, 0x13, 0xB9, 0x04, 0x00, 0x13, 0xB8,
	0x04, 0x00, 0x13, 0xBA
};

static const ByteProvider kLoLSpellbookAnimFMTownsProvider = { ARRAYSIZE(kLoLSpellbookAnimFMTowns), kLoLSpellbookAnimFMTowns };

static const byte kLoLSpellbookCoordsFMTowns[12] = {
	0x16, 0x16, 0x16, 0x1F, 0x16, 0x28, 0x16, 0x31,
	0x16, 0x3A, 0x16, 0x43
};

static const ByteProvider kLoLSpellbookCoordsFMTownsProvider = { ARRAYSIZE(kLoLSpellbookCoordsFMTowns), kLoLSpellbookCoordsFMTowns };

static const byte kLoLHealShapeFramesFMTowns[80] = {
	0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02,
	0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,
	0x03, 0x03, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
	0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00,
	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
	0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00,
	0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
	0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
};

static const ByteProvider kLoLHealShapeFramesFMTownsProvider = { ARRAYSIZE(kLoLHealShapeFramesFMTowns), kLoLHealShapeFramesFMTowns };

static const byte kLoLLightningDefsFMTowns[20] = {
	0x06, 0x05, 0xAB, 0x00, 0x06, 0x04, 0xAB, 0x00,
	0x08, 0x04, 0xAA, 0x00, 0x06, 0x03, 0xAA, 0x00,
	0x06, 0x02, 0xA9, 0x00
};

static const ByteProvider kLoLLightningDefsFMTownsProvider = { ARRAYSIZE(kLoLLightningDefsFMTowns), kLoLLightningDefsFMTowns };

static const uint16 kLoLFireballCoordsFMTowns[256] = {
	0x0000, 0x0324, 0x0647, 0x096A, 0x0C8B, 0x0FAB, 0x12C7, 0x15E1,
	0x18F8, 0x1C0B, 0x1F19, 0x2223, 0x2527, 0x2826, 0x2B1E, 0x2E10,
	0x30FB, 0x33DE, 0x36B9, 0x398C, 0x3C56, 0x3F16, 0x41CD, 0x447A,
	0x471C, 0x49B3, 0x4C3F, 0x4EBF, 0x5133, 0x539A, 0x55F4, 0x5842,
	0x5A81, 0x5CB3, 0x5ED6, 0x60EB, 0x62F1, 0x64E7, 0x66CE, 0x68A5,
	0x6A6C, 0x6C23, 0x6DC9, 0x6F5E, 0x70E1, 0x7254, 0x73B5, 0x7503,
	0x7640, 0x776B, 0x7883, 0x7989, 0x7A7C, 0x7B5C, 0x7C29, 0x7CE2,
	0x7D89, 0x7E1C, 0x7E9C, 0x7F08, 0x7F61, 0x7FA6, 0x7FD7, 0x7FF5,
	0x7FFF, 0x7FF5, 0x7FD7, 0x7FA6, 0x7F61, 0x7F08, 0x7E9C, 0x7E1C,
	0x7D89, 0x7CE2, 0x7C29, 0x7B5C, 0x7A7C, 0x7989, 0x7883, 0x776B,
	0x7640, 0x7503, 0x73B5, 0x7254, 0x70E1, 0x6F5E, 0x6DC9, 0x6C23,
	0x6A6C, 0x68A5, 0x66CE, 0x64E7, 0x62F1, 0x60EB, 0x5ED6, 0x5CB3,
	0x5A81, 0x5842, 0x55F4, 0x539A, 0x5133, 0x4EBF, 0x4C3F, 0x49B3,
	0x471C, 0x447A, 0x41CD, 0x3F16, 0x3C56, 0x398C, 0x36B9, 0x33DE,
	0x30FB, 0x2E10, 0x2B1E, 0x2826, 0x2527, 0x2223, 0x1F19, 0x1C0B,
	0x18F8, 0x15E1, 0x12C7, 0x0FAB, 0x0C8B, 0x096A, 0x0647, 0x0324,
	0x0000, 0xFCDC, 0xF9B9, 0xF696, 0xF375, 0xF055, 0xED39, 0xEA1F,
	0xE708, 0xE3F5, 0xE0E7, 0xDDDD, 0xDAD9, 0xD7DA, 0xD4E2, 0xD1F0,
	0xCF05, 0xCC22, 0xC947, 0xC674, 0xC3AA, 0xC0EA, 0xBE33, 0xBB86,
	0xB8E4, 0xB64D, 0xB3C1, 0xB141, 0xAECD, 0xAC66, 0xAA0C, 0xA7BE,
	0xA57F, 0xA34D, 0xA12A, 0x9F15, 0x9D0F, 0x9B19, 0x9932, 0x975B,
	0x9594, 0x93DD, 0x9237, 0x90A2, 0x8F1F, 0x8DAC, 0x8C4B, 0x8AFD,
	0x89C0, 0x8895, 0x877D, 0x8677, 0x8584, 0x84A4, 0x83D7, 0x831E,
	0x8277, 0x81E4, 0x8164, 0x80F8, 0x809F, 0x805A, 0x8029, 0x800B,
	0x8001, 0x800B, 0x8029, 0x805A, 0x809F, 0x80F8, 0x8164, 0x81E4,
	0x8277, 0x831E, 0x83D7, 0x84A4, 0x8584, 0x8677, 0x877D, 0x8895,
	0x89C0, 0x8AFD, 0x8C4B, 0x8DAC, 0x8F1F, 0x90A2, 0x9237, 0x93DD,
	0x9594, 0x975B, 0x9932, 0x9B19, 0x9D0F, 0x9F15, 0xA12A, 0xA34D,
	0xA57F, 0xA7BE, 0xAA0C, 0xAC66, 0xAECD, 0xB141, 0xB3C1, 0xB64D,
	0xB8E4, 0xBB86, 0xBE33, 0xC0EA, 0xC3AA, 0xC674, 0xC947, 0xCC22,
	0xCF05, 0xD1F0, 0xD4E2, 0xD7DA, 0xDAD9, 0xDDDD, 0xE0E7, 0xE3F5,
	0xE708, 0xEA1F, 0xED39, 0xF055, 0xF375, 0xF696, 0xF9B9, 0xFCDC
};

static const Uint16Provider kLoLFireballCoordsFMTownsProvider = { ARRAYSIZE(kLoLFireballCoordsFMTowns), kLoLFireballCoordsFMTowns };

static const byte kLoLCreditsFMTowns[1516] = {
	0x02, 0x54, 0x68, 0x65, 0x20, 0x45, 0x6E, 0x64,
	0x05, 0x0D, 0x0D, 0x0D, 0x02, 0x4C, 0x41, 0x4E,
	0x44, 0x53, 0x20, 0x4F, 0x46, 0x20, 0x4C, 0x4F,
	0x52, 0x45, 0x05, 0x0D, 0x01, 0x54, 0x68, 0x65,
	0x20, 0x54, 0x68, 0x72, 0x6F, 0x6E, 0x65, 0x20,
	0x6F, 0x66, 0x20, 0x43, 0x68, 0x61, 0x6F, 0x73,
	0x05, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D,
	0x0D, 0x02, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54,
	0x49, 0x56, 0x45, 0x20, 0x50, 0x52, 0x4F, 0x44,
	0x55, 0x43, 0x45, 0x52, 0x05, 0x0D, 0x0D, 0x02,
	0x42, 0x72, 0x65, 0x74, 0x74, 0x20, 0x57, 0x2E,
	0x20, 0x53, 0x70, 0x65, 0x72, 0x72, 0x79, 0x05,
	0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x50, 0x52, 0x4F,
	0x44, 0x55, 0x43, 0x45, 0x52, 0x05, 0x0D, 0x0D,
	0x02, 0x52, 0x69, 0x63, 0x6B, 0x20, 0x47, 0x75,
	0x73, 0x68, 0x05, 0x0D, 0x0D, 0x0D, 0x0D, 0x02,
	0x50, 0x52, 0x4F, 0x44, 0x55, 0x43, 0x54, 0x20,
	0x43, 0x4F, 0x4F, 0x52, 0x44, 0x49, 0x4E, 0x41,
	0x54, 0x4F, 0x52, 0x05, 0x0D, 0x0D, 0x02, 0x43,
	0x61, 0x74, 0x68, 0x69, 0x65, 0x20, 0x41, 0x2E,
	0x20, 0x54, 0x6F, 0x64, 0x64, 0x05, 0x0D, 0x0D,
	0x0D, 0x0D, 0x02, 0x44, 0x45, 0x53, 0x49, 0x47,
	0x4E, 0x45, 0x52, 0x53, 0x05, 0x0D, 0x0D, 0x02,
	0x57, 0x69, 0x6C, 0x6C, 0x69, 0x61, 0x6D, 0x20,
	0x41, 0x6C, 0x61, 0x6E, 0x20, 0x43, 0x72, 0x75,
	0x6D, 0x05, 0x0D, 0x50, 0x68, 0x69, 0x6C, 0x69,
	0x70, 0x20, 0x57, 0x2E, 0x20, 0x47, 0x6F, 0x72,
	0x72, 0x6F, 0x77, 0x05, 0x0D, 0x0D, 0x0D, 0x0D,
	0x02, 0x4C, 0x45, 0x41, 0x44, 0x20, 0x50, 0x52,
	0x4F, 0x47, 0x52, 0x41, 0x4D, 0x4D, 0x45, 0x52,
	0x05, 0x0D, 0x0D, 0x02, 0x50, 0x68, 0x69, 0x6C,
	0x69, 0x70, 0x20, 0x57, 0x2E, 0x20, 0x47, 0x6F,
	0x72, 0x72, 0x6F, 0x77, 0x05, 0x0D, 0x0D, 0x0D,
	0x0D, 0x02, 0x50, 0x52, 0x4F, 0x47, 0x52, 0x41,
	0x4D, 0x4D, 0x45, 0x52, 0x53, 0x05, 0x0D, 0x0D,
	0x02, 0x4A, 0x6F, 0x65, 0x20, 0x42, 0x6F, 0x73,
	0x74, 0x69, 0x63, 0x05, 0x0D, 0x02, 0x53, 0x63,
	0x6F, 0x74, 0x74, 0x20, 0x4B, 0x2E, 0x20, 0x42,
	0x6F, 0x77, 0x65, 0x6E, 0x05, 0x0D, 0x02, 0x4A,
	0x6F, 0x68, 0x6E, 0x20, 0x4C, 0x61, 0x53, 0x61,
	0x6C, 0x76, 0x69, 0x61, 0x05, 0x0D, 0x02, 0x4D,
	0x61, 0x72, 0x6B, 0x20, 0x4D, 0x63, 0x43, 0x75,
	0x62, 0x62, 0x69, 0x6E, 0x05, 0x0D, 0x02, 0x4A,
	0x75, 0x73, 0x74, 0x69, 0x6E, 0x20, 0x4D, 0x63,
	0x4B, 0x69, 0x6E, 0x6E, 0x65, 0x72, 0x6E, 0x65,
	0x79, 0x05, 0x0D, 0x02, 0x51, 0x69, 0x6E, 0x67,
	0x20, 0x59, 0x75, 0x61, 0x6E, 0x05, 0x0D, 0x0D,
	0x0D, 0x0D, 0x02, 0x4C, 0x45, 0x41, 0x44, 0x20,
	0x41, 0x52, 0x54, 0x49, 0x53, 0x54, 0x05, 0x0D,
	0x0D, 0x02, 0x52, 0x69, 0x63, 0x6B, 0x20, 0x50,
	0x61, 0x72, 0x6B, 0x73, 0x05, 0x0D, 0x0D, 0x0D,
	0x0D, 0x02, 0x41, 0x52, 0x54, 0x49, 0x53, 0x54,
	0x53, 0x05, 0x0D, 0x0D, 0x02, 0x45, 0x6C, 0x69,
	0x65, 0x20, 0x41, 0x72, 0x61, 0x62, 0x69, 0x61,
	0x6E, 0x05, 0x0D, 0x02, 0x43, 0x61, 0x72, 0x79,
	0x20, 0x44, 0x65, 0x61, 0x6E, 0x20, 0x41, 0x76,
	0x65, 0x72, 0x65, 0x74, 0x74, 0x05, 0x0D, 0x02,
	0x45, 0x72, 0x69, 0x63, 0x20, 0x47, 0x6F, 0x6F,
	0x63, 0x68, 0x05, 0x0D, 0x02, 0x4A, 0x6F, 0x73,
	0x65, 0x70, 0x68, 0x20, 0x42, 0x2E, 0x20, 0x48,
	0x65, 0x77, 0x69, 0x74, 0x74, 0x20, 0x49, 0x56,
	0x05, 0x0D, 0x02, 0x52, 0x65, 0x6E, 0x20, 0x4F,
	0x6C, 0x73, 0x65, 0x6E, 0x05, 0x0D, 0x02, 0x4A,
	0x75, 0x64, 0x69, 0x74, 0x68, 0x20, 0x50, 0x65,
	0x74, 0x65, 0x72, 0x73, 0x6F, 0x6E, 0x05, 0x0D,
	0x02, 0x45, 0x2E, 0x4D, 0x2E, 0x20, 0x4C, 0x6F,
	0x75, 0x69, 0x73, 0x65, 0x20, 0x53, 0x61, 0x6E,
	0x64, 0x6F, 0x76, 0x61, 0x6C, 0x05, 0x0D, 0x0D,
	0x0D, 0x0D, 0x02, 0x4D, 0x55, 0x53, 0x49, 0x43,
	0x20, 0x26, 0x20, 0x53, 0x4F, 0x55, 0x4E, 0x44,
	0x53, 0x05, 0x0D, 0x0D, 0x02, 0x50, 0x61, 0x75,
	0x6C, 0x20, 0x53, 0x2E, 0x20, 0x4D, 0x75, 0x64,
	0x72, 0x61, 0x05, 0x0D, 0x02, 0x44, 0x77, 0x69,
	0x67, 0x68, 0x74, 0x20, 0x4B, 0x2E, 0x20, 0x4F,
	0x6B, 0x61, 0x68, 0x61, 0x72, 0x61, 0x05, 0x0D,
	0x02, 0x46, 0x72, 0x61, 0x6E, 0x6B, 0x20, 0x4B,
	0x6C, 0x65, 0x70, 0x61, 0x63, 0x6B, 0x69, 0x05,
	0x0D, 0x02, 0x50, 0x61, 0x74, 0x72, 0x69, 0x63,
	0x6B, 0x20, 0x43, 0x6F, 0x6C, 0x6C, 0x69, 0x6E,
	0x73, 0x05, 0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x51,
	0x55, 0x41, 0x4C, 0x49, 0x54, 0x59, 0x20, 0x41,
	0x53, 0x53, 0x55, 0x52, 0x41, 0x4E, 0x43, 0x45,
	0x05, 0x0D, 0x0D, 0x02, 0x4A, 0x65, 0x73, 0x73,
	0x65, 0x20, 0x43, 0x6C, 0x65, 0x6D, 0x69, 0x74,
	0x05, 0x0D, 0x02, 0x4B, 0x65, 0x6E, 0x6E, 0x65,
	0x74, 0x68, 0x20, 0x44, 0x75, 0x6E, 0x6E, 0x65,
	0x05, 0x0D, 0x02, 0x4A, 0x65, 0x66, 0x66, 0x20,
	0x53, 0x74, 0x65, 0x76, 0x65, 0x6E, 0x20, 0x46,
	0x69, 0x6C, 0x6C, 0x68, 0x61, 0x62, 0x65, 0x72,
	0x05, 0x0D, 0x02, 0x57, 0x69, 0x6C, 0x6C, 0x69,
	0x61, 0x6D, 0x20, 0x46, 0x6F, 0x73, 0x74, 0x65,
	0x72, 0x05, 0x0D, 0x02, 0x53, 0x63, 0x6F, 0x74,
	0x74, 0x20, 0x46, 0x6C, 0x65, 0x6D, 0x69, 0x6E,
	0x67, 0x05, 0x0D, 0x02, 0x4D, 0x69, 0x63, 0x68,
	0x61, 0x65, 0x6C, 0x20, 0x4C, 0x69, 0x67, 0x68,
	0x74, 0x6E, 0x65, 0x72, 0x05, 0x0D, 0x02, 0x47,
	0x6C, 0x65, 0x6E, 0x6E, 0x20, 0x53, 0x70, 0x65,
	0x72, 0x72, 0x79, 0x05, 0x0D, 0x02, 0x43, 0x68,
	0x72, 0x69, 0x73, 0x20, 0x4D, 0x63, 0x46, 0x61,
	0x72, 0x6C, 0x61, 0x6E, 0x64, 0x05, 0x0D, 0x02,
	0x53, 0x63, 0x6F, 0x74, 0x74, 0x20, 0x4D, 0x61,
	0x6E, 0x6E, 0x69, 0x6E, 0x67, 0x05, 0x0D, 0x02,
	0x50, 0x61, 0x75, 0x6C, 0x20, 0x53, 0x68, 0x6F,
	0x65, 0x6E, 0x65, 0x72, 0x05, 0x0D, 0x02, 0x41,
	0x64, 0x61, 0x6D, 0x20, 0x52, 0x79, 0x61, 0x6E,
	0x05, 0x0D, 0x02, 0x4D, 0x69, 0x74, 0x63, 0x68,
	0x20, 0x46, 0x69, 0x65, 0x6C, 0x64, 0x6D, 0x61,
	0x6E, 0x05, 0x0D, 0x02, 0x4A, 0x61, 0x72, 0x65,
	0x64, 0x20, 0x42, 0x72, 0x69, 0x6E, 0x6B, 0x6C,
	0x65, 0x79, 0x05, 0x0D, 0x02, 0x4A, 0x75, 0x73,
	0x74, 0x69, 0x6E, 0x20, 0x48, 0x61, 0x6C, 0x6C,
	0x05, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x02,
	0x56, 0x4F, 0x49, 0x43, 0x45, 0x20, 0x41, 0x43,
	0x54, 0x4F, 0x52, 0x53, 0x05, 0x0D, 0x0D, 0x03,
	0x52, 0x69, 0x63, 0x68, 0x61, 0x72, 0x64, 0x20,
	0x53, 0x6D, 0x69, 0x74, 0x68, 0x20, 0x61, 0x73,
	0x05, 0x04, 0x4B, 0x49, 0x4E, 0x47, 0x20, 0x52,
	0x49, 0x43, 0x48, 0x41, 0x52, 0x44, 0x05, 0x0D,
	0x03, 0x45, 0x72, 0x69, 0x63, 0x20, 0x47, 0x6F,
	0x6F, 0x63, 0x68, 0x20, 0x61, 0x73, 0x05, 0x04,
	0x47, 0x45, 0x52, 0x4F, 0x4E, 0x05, 0x0D, 0x03,
	0x53, 0x63, 0x6F, 0x74, 0x69, 0x61, 0x20, 0x61,
	0x73, 0x05, 0x04, 0x68, 0x65, 0x72, 0x73, 0x65,
	0x6C, 0x66, 0x05, 0x0D, 0x03, 0x46, 0x72, 0x61,
	0x6E, 0x6B, 0x20, 0x4B, 0x6C, 0x65, 0x70, 0x61,
	0x63, 0x6B, 0x69, 0x20, 0x61, 0x73, 0x05, 0x04,
	0x50, 0x49, 0x47, 0x4C, 0x45, 0x54, 0x05, 0x0D,
	0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x4A, 0x41,
	0x50, 0x41, 0x4E, 0x45, 0x53, 0x45, 0x20, 0x56,
	0x45, 0x52, 0x49, 0x53, 0x49, 0x4F, 0x4E, 0x05,
	0x0D, 0x0D, 0x0D, 0x02, 0x50, 0x52, 0x4F, 0x47,
	0x52, 0x41, 0x4D, 0x4D, 0x45, 0x52, 0x53, 0x05,
	0x0D, 0x0D, 0x02, 0x59, 0x75, 0x6B, 0x69, 0x6F,
	0x20, 0x53, 0x65, 0x6B, 0x69, 0x67, 0x75, 0x63,
	0x68, 0x69, 0x05, 0x0D, 0x02, 0x4E, 0x61, 0x6F,
	0x73, 0x68, 0x69, 0x20, 0x4E, 0x6F, 0x67, 0x75,
	0x63, 0x68, 0x69, 0x05, 0x0D, 0x0D, 0x0D, 0x0D,
	0x02, 0x41, 0x52, 0x54, 0x49, 0x53, 0x54, 0x53,
	0x05, 0x0D, 0x0D, 0x02, 0x4D, 0x61, 0x73, 0x61,
	0x6B, 0x69, 0x20, 0x54, 0x6F, 0x67, 0x61, 0x73,
	0x68, 0x69, 0x05, 0x0D, 0x02, 0x52, 0x69, 0x73,
	0x61, 0x6B, 0x6F, 0x20, 0x53, 0x65, 0x74, 0x6F,
	0x05, 0x0D, 0x02, 0x52, 0x65, 0x69, 0x67, 0x61,
	0x20, 0x59, 0x61, 0x73, 0x75, 0x64, 0x61, 0x05,
	0x0D, 0x02, 0x4D, 0x61, 0x73, 0x75, 0x6D, 0x69,
	0x20, 0x53, 0x68, 0x69, 0x6E, 0x62, 0x6F, 0x05,
	0x0D, 0x02, 0x4E, 0x61, 0x6F, 0x6B, 0x6F, 0x20,
	0x4E, 0x69, 0x74, 0x74, 0x61, 0x05, 0x0D, 0x02,
	0x4B, 0x69, 0x79, 0x6F, 0x66, 0x75, 0x6D, 0x69,
	0x20, 0x48, 0x69, 0x6E, 0x6F, 0x05, 0x0D, 0x02,
	0x48, 0x69, 0x72, 0x6F, 0x6D, 0x69, 0x20, 0x53,
	0x61, 0x6B, 0x61, 0x65, 0x05, 0x0D, 0x02, 0x4B,
	0x79, 0x6F, 0x75, 0x6B, 0x6F, 0x20, 0x4D, 0x69,
	0x79, 0x61, 0x6D, 0x6F, 0x74, 0x6F, 0x05, 0x0D,
	0x02, 0x53, 0x68, 0x6F, 0x6B, 0x6F, 0x20, 0x4D,
	0x75, 0x72, 0x61, 0x6B, 0x61, 0x6D, 0x69, 0x05,
	0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x4D, 0x55, 0x53,
	0x49, 0x43, 0x20, 0x26, 0x20, 0x53, 0x4F, 0x55,
	0x4E, 0x44, 0x53, 0x05, 0x0D, 0x0D, 0x02, 0x54,
	0x61, 0x6B, 0x65, 0x73, 0x68, 0x69, 0x20, 0x41,
	0x62, 0x6F, 0x05, 0x0D, 0x0D, 0x0D, 0x0D, 0x02,
	0x4A, 0x41, 0x50, 0x41, 0x4E, 0x45, 0x53, 0x45,
	0x20, 0x54, 0x52, 0x41, 0x4E, 0x53, 0x4C, 0x41,
	0x54, 0x4F, 0x52, 0x05, 0x0D, 0x0D, 0x02, 0x59,
	0x75, 0x72, 0x69, 0x20, 0x49, 0x74, 0x6F, 0x05,
	0x0D, 0x0D, 0x0D, 0x0D, 0x02, 0x53, 0x70, 0x65,
	0x63, 0x69, 0x61, 0x6C, 0x20, 0x74, 0x68, 0x61,
	0x6E, 0x6B, 0x73, 0x20, 0x74, 0x6F, 0x3A, 0x05,
	0x0D, 0x0D, 0x02, 0x48, 0x69, 0x72, 0x6F, 0x6B,
	0x6F, 0x20, 0x59, 0x6F, 0x72, 0x6F, 0x69, 0x7A,
	0x75, 0x6B, 0x61, 0x05, 0x0D, 0x02, 0x59, 0x75,
	0x6A, 0x69, 0x20, 0x4F, 0x64, 0x61, 0x77, 0x61,
	0x72, 0x61, 0x05, 0x0D, 0x02, 0x4F, 0x68, 0x73,
	0x68, 0x75, 0x6E, 0x20, 0x4C, 0x65, 0x65, 0x05,
	0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x01,
	0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
	0x74, 0x20, 0x28, 0x43, 0x29, 0x20, 0x31, 0x39,
	0x39, 0x33, 0x2C, 0x20, 0x57, 0x65, 0x73, 0x74,
	0x77, 0x6F, 0x6F, 0x64, 0x20, 0x53, 0x74, 0x75,
	0x64, 0x69, 0x6F, 0x73, 0x2C, 0x20, 0x49, 0x6E,
	0x63, 0x2E, 0x05, 0x0D, 0x01, 0x43, 0x6F, 0x70,
	0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28,
	0x43, 0x29, 0x20, 0x31, 0x39, 0x39, 0x34, 0x2C,
	0x20, 0x53, 0x74, 0x61, 0x72, 0x43, 0x72, 0x61,
	0x66, 0x74, 0x2C, 0x20, 0x49, 0x6E, 0x63, 0x2E,
	0x05, 0x0D, 0x01, 0x41, 0x6C, 0x6C, 0x20, 0x72,
	0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x72, 0x65,
	0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2E, 0x05,
	0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D, 0x0D,
	0x00, 0x00, 0x00, 0x00
};

static const ByteProvider kLoLCreditsFMTownsProvider = { ARRAYSIZE(kLoLCreditsFMTowns), kLoLCreditsFMTowns };