ROCKTILE and FLOORTILE can be used when authoring vaults to set these values, both of which take a single tile name as a string. These values are ignored in console builds.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7700 c06c8d41-db1a-0410-9941-cceddc491573
7IERR3KESLBDHEMGSFRYGA66PZBPGKPUGMFDCSFR3WDX7RXD5OTAC
JPZE44DYTOYGNM2TQFLW33QDX4IOCZYV4B6WZU66TQFAYEXQQD7QC
KLJIFEBICFQ76DNM3MTS2PJ5LTEIOBIW5QZTNW722WHPKIST5UQQC
MEVM2U3HOBYD6BF3GWKVARU54HLOC37IZKWG2YOJYY34N6OYLJ7AC
EERRG6FVPJDZD6UNX2W4UXG6HU7XAU7TDNDHMRCXTA4NN4VHFSAAC
JL2LEWM5KUGQKSBKZAMCJF4UEPOGKEMLUT6S5KZX2C2VJJD3KKTQC
3XRTONH32W5DNI2V2SGAHXN3EHOZQ26ZXMVYL5TRP6HLQN7P4HNAC
SM6YRPYZS6LMDQA6X3VAOK2PGMUFKPD7JMWJISOQSMX2CBR4ISPAC
ED62QWGKBPORWVKDFOQRKJXEIWZVNGR3O4KWQBDSRNPT36AYOQYAC
TLA5UN6LZPXGKERI27EFY4HKIIU3VU5Y7ZU54WXL6ANBUV2VOTMQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
WKTZHLOJ65WSK6FR5MF7RWGSMZ22T2D6LHB66FV3IPGXIBLYHHNAC
JT672SIJK4BOIUAGL2WQ6NR2NF4PSWP3BT6Q4HMNRF25UN6JQ2MAC
RZHJQU3Y6KKMNJKGL6P4IXBJTKWFO4YARAQSWYCETXXNSZG4BN7QC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
3SQQ4MM6YO4I37CQ6GIBIX6BXAEVHNVNHPVMR3PPBBNO454D6XWQC
D5EMJEEIJSSULF236DUM26QHHNDLH7FXAOBHFDAYI65KCKTDTDYQC
OELSU5HUOEW6D2AAZJUYB5G25OOGR3YU7UZKNA57EJG5HRMCQ7UAC
MV5USMLTBKVRWBAD67UFJ2BS4Y5HEOMYASRSB44DS24BBMRP75RQC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
44LY6TB272RWWFLON2XOUIXWFPUXM5OMX6KLX66HH37BNURVT4DQC
L57WEZMVIHTFRLWVIPWOIOWHCF2I53TVUVYJ2V6IZ64R56FVTZZAC
TOOHYAX73C5KPSWGHPCBWCUN62WMMO3BI5CWEEMGV3WBFZ5RIH5AC
7IG33VVCNNO7RQ5LNZSNDYADT5AZYME2BNZFY33D3CA2Z7A5AZSAC
HBXWZNXAJ7LUX7FYUIHQYBTRMWVJC6CAQQL3NNZHK5ETLIFEZJ7QC
HUMRQOA7Y32XBXQNR5LUIWM2ZB57XDW4ZQHMZ4RDGDZATY6K73SQC
D7EPLNYHJH6C4CTMHCOUUODKGHCJRE4CGKNVSCHCSABN6ZOD2ZBAC
CSRWDG2SUGS4YR4PAFI574EGEXW65P6JDT4ZHWDICS2G2GZIGEUQC
U6ILMKBXTQZYT62IGD2CALYNU4VQGRSTHN6QBFBU7BVUBHWYOEQQC
EQNA77UM24FFYQ2N44FG53KQGLS43ZGEX7XS5UWR6MM2HE3JBKAAC
LDBTCT5WIPLJPZWXS2RUQ26QKISCUUTLO77M464WOE6VSYSNPKYAC
5FA5IEAXTMXYS2VUBVDKBKHPKAIOY4GN5SXYJORBYWQIGHVW3FFQC
ZNUMGZOGREVG6RNSM4RGHG2Y6NYL7O2U642V6F3HJAXMTC5JXJHAC
LP5EK64IEM7AHNYQID4GGKOQJQNZLKY4DCCZN47SIUZ6IXAXH5UAC
O6ZMFKDI3XO2SWPNEYHIPYFDWJR4TVDP5BAATK6LVCVETQID6E7AC
MQOL2SN2EYBCAVVJ7NPCXEV6C4NPBNMC6QD2AOTZPIAZB243JQ7QC
OHKIZHRISXKWSVNXJF2YJRK5OL72K4LUOSV7FACX6VN6AUDPLXCAC
HBRUWIHAOFRF57K4D7TNGLVAFWP3SLH6UUMQCSVKBFOKG3KYTRVQC
THCKJAEU267TTUIH6YUHSO2QUZFXYASECGWWHR673WITYO3ND4HAC
TFHMBVXTRA2LXBHE7L7OEWK37JQN5DWZ3HOACMN7PRWVJNCS4TYQC
AMSENYIGRJWHHGHLKIZQGZZQTWCZBTS2Y3WKPVTZZRI7ZMTATBCAC
FMFHUGIGNGM7ACN7HFYODRSWU3SGFSMIJHA4APTZNMJQL2TVZNOAC
PDOFPXD2X6VI23AHKCGQ5RVDBG74CNP2E3YOHKXLOARHHBXEK3HQC
5B5DP5S6A6LQMKZYVLQAEMHQZWFWYDHPCKQGRNSCNNYIBQYZ6BIQC
PSCYVKJ7DGXAL3V5U4O6AJTRV6Q3N3SHQWAZ73VIPRTE4W64F2XAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
XVHHWX4CBGO22OOQESNGLBLDWP7NKCU4SL2Q6WKTUWMFPSH4DGYAC
BA6B3ABSAZSAUBZTF2IWRQELSAS4IKFMDVBJZZ5ENHTP7J2Q52QQC
WDOHDLADQOGV2FLDBHIWT2HOB7KWS5ZUQ5OOS7TSQLZIMXSYP5KQC
GGD34Q26MGXIMV7S66UXJBQI67N5IFYZTBXUHLKWSKPYL2OFA3YAC
ANJ4QWXY2LDCFJRUSYFOR56CYBNCFZOVYYXWCZIQIBOEHYLUDM3QC
UUYZO256WD5UDZ3DVYAQMZMW6Z32TWJSL7E5TD6CBCGJY7WGW2LQC
MSQI3TH6T62JAXQGLL52QZCWAMC372TGB6ZNNRDGUGMJKBNNV2VAC
ETI6KNKL34JVSQ3BCXI7MHGNTHRLYI6MHUR6JV7HBAJNUFCIFQMQC
UIPUAIUELFPAGHADRJW4IKXC5IBWLO7JAZXLRI5VJ5XIW2XB2EFQC
2XF6FUND5LXCDDQOTSYRNFZADI5RH3UG4D2Y77Z3XQVQ5VBC7TOAC
E46S7KO37G3QK6LA3ZGGJ6BZYQCP4SNV3575UDWO76O7KFRHCKNQC
RYLDKET2N42S4UM2NRF3KIOTRHJ57A2KZAVJFGM7BWWRCHQJINTAC
YIWOMNWKM56MNSLEKYHUJTPQAEIVZ3E3XUR5VXO32Z72ITNCXD2QC
TBB6U2OOR363RK4AGHKOWUXXPLQVZHMDRGVQNNYTL5WR5GFE7N5QC
7D5YTNCPSR44S7KQ67IOCWXNVE4INO4GE2F47PMKV3SMCRAMNVVQC
34C4U6EQWERY75GZJKUCM5KVGU2OUICETS5LGZF6RMKMZT4R5SQAC
L6O4LGZRKBURVWEY7XRVCSQLJ5RULNBEWMQJ6I2UYVWWB66FM3MQC
KE25RXTJ46F64GNWJAY4DN4HJU7A4WGF6M6JXGRUDK3TPGRW4UUAC
XHJRRN6K2ZYGIL6G27G2TNDSNKTTPCA5EUYXRIT242YMKPJQ3YZAC
H6N5JENCC6GSO75VDOBRZCAE3ORIN3IJUAVZPPYYRVBY2DVGD3ZAC
OYTCBRC7LE44EUVRZVYTOOVKQWJ6P6YE3FXTOGUTNKEMLNWPHKSQC
FKRLQJYHK3GB6HHSNNFQ7L57ZAR52LSTBG5B6SNJBYZ2LQ36P67AC
W52PCSHX72WAMWKG6L4BPUBVMO6E72KYYBNKAA7554KNOTY6V7WQC
AUXHSGS4EFOPZ6TVZYWNVOUDO7NYKUKE3HBKGQQWTALSVFOE3HAAC
NKONHW4JNY6HP2M63MNPM3H64ZWSUNUT5FX2STW4KTS4AMXJXXVQC
4N5PW5S3OV25HFN634NNWMMYX26NA2TB6TVFG4UMYSZ2VBJWKE4QC
CPBVQFT7NWEYLYD34D5VYZIEOZ32YADXYTSFMS635YNXX4OFIZVAC
RN242L3YZK35BFY7JRTCSYWD6FWDCRFUFDI7PKYFUCA2UPX6ZEAQC
X7MFMKQTNZ2IWBFVGS6WQV7NRNKJ3DWQAW2X7IQMFQQXW24AHPZQC
ZLQAAP55CJ77XIJN3DZVPT4GTTVLIBFJLIJJKI6L5UBSHX7VUK6AC
RWSXCNYUGDSMP2GKN22HROC5Q2GHSAVJJUDRT3Z53WU2DAI4IZOQC
C22455VGUQOSUX2OORA32LROFQ7NNYDMD2ZDTTUZSAQLXK4AD6QAC
XXZGTB5UAFMP2SW2WWUHCTDY5TEM7LZEPAASEXKQLT7BSLBY3OTQC
H3552BCIAVBLKAYKE4DHFLBLFW5RGRMYBMRRYHYEB5IPIJRUVU5QC
ODCYJ4ZQGR2VVBHBEYDB2SEUDEZOAP4GOEW5T5YHXNYFWSIST2HAC
IGHO5UHUXYBLIHLUMLZ672YHAYUSK4FSFX7SA42XARIKLIMCVLUAC
JYNLSDNQDNOBCHDPQLJP6TNOJQ2IB4V7JHBYLL6UAUCTZ7DUZAWQC
KSCU43RIVSEIHTN6BRAKXENI66L3IRDZQHUBT5VS4NJBBCQQPHUQC
HZK3YN3SAISTDS5JI4COBYFG7YB4ABDVENXWZZEYLFA2LDI232VAC
DI5OZPCY3TZSSYQSVB54IIES42RYAHMCW2S7CEXRN6WGAJ32IZUQC
66PPHRP2IW7VAVENBJ4KRO6MEF2HKYZHO4RWCISXC2ZXM6CK2XEAC
DUFJKFM5KBCM4272ZKLBPGKHLMDLK6RABUNTDEWRZULTKDTHHSBAC
IHV7JHD4E67NEGLZEO3FPQGJPJF3IAV6QV5A63FPG4SU2VRFV47QC
KTRWLM6WDL4GAAJZNLQEEA3TGY2OKYZZUAAT4TCAVKRTR2NQBWUQC
NCKCO6W5HW7C6OPJG4EVHKQCDX6AL7S4ACORY45STKQTNPMAJ7IQC
AHOXABEVCSDSQXPLYA34COWVGAQVB7H3FB4KCFWK7V43IWFRLB4QC
GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC
ZTDYCQQQQSLWGFJOUB3HKGHMJLNY6UHF4OOC2XVVHXSZTTZK5A5AC
MXOCLQAUGWLOS7AOTYZ46JZDMRL4EVRK5YN4JJUQ76GLKBOBHEVAC
R6XS2HO5QX2FJUGL5UQQRNETKCMYWTUFPHPPS5SYWK3OQA4UDUQQC
int get_num_wall_flavours();
int get_num_floor_flavours();
int get_num_floor_special_flavours();
int get_wall_tile_idx();
int get_floor_tile_idx();
int get_floor_special_tile_idx();
// Set the default type of walls and floors.
void tile_init_default_flavour();
// Get the default types of walls and floors
void tile_default_flv(level_area_type lev, branch_type br, tile_flavour &flv);
// Clear the per-cell wall and floor flavors.
void tile_clear_flavour();
// Initialize per-cell types of walls and floors using defaults.
add_quad(TEX_DUNGEON, get_floor_tile_idx()
+ m_flavour[i] % get_num_floor_flavours(), x, y);
int num_floor = tile_dngn_count(env.tile_default.floor);
add_quad(TEX_DUNGEON, env.tile_default.floor
+ m_flavour[i] % num_floor, x, y);
static inline bool _is_bazaar()
{
return (you.level_type == LEVEL_PORTAL_VAULT
&& you.level_type_name == "bazaar");
}
// If there are special tiles for this level, then use them.
// Otherwise, we'll fall through to the next case and replace
// special tiles with normal floor.
if (orig == TILE_FLOOR_NORMAL && is_special
&& get_num_floor_special_flavours() > 0)
{
(*tile) = get_floor_special_tile_idx() + special_flv;
ASSERT(special_flv < get_num_floor_special_flavours());
}
else if (orig == TILE_FLOOR_NORMAL)
{
if (orig == TILE_FLOOR_NORMAL)
{
if (special_flv > 3)
special_flv = 3;
(*tile) = orig + special_flv;
}
(*tile) = orig + std::min((int)special_flv, 3);
const bool bazaar = _is_bazaar();
const unsigned short baz_col = _get_bazaar_special_colour();
for (int x = 0; x < GXM; x++)
for (int y = 0; y < GYM; y++)
for (int y = 0; y < GYM; y++)
for (int x = 0; x < GXM; x++)
int max_wall_flavour = get_num_wall_flavours() - 1;
int max_floor_flavour = get_num_floor_flavours() - 1;
int wall_flavour = random_range(0, max_wall_flavour);
int floor_flavour = random_range(0, max_floor_flavour);
int max_wall_flavor = tile_dngn_count(env.tile_default.wall) - 1;
int max_floor_flavor = tile_dngn_count(env.tile_default.floor) - 1;
int wall_rnd = random_range(0, max_wall_flavor);
int floor_rnd = random_range(0, max_floor_flavor);
env.tile_flv[x][y].floor = get_floor_tile_idx() + floor_flavour;
env.tile_flv[x][y].wall = get_wall_tile_idx() + wall_flavour;
if (!env.tile_flv[x][y].floor)
env.tile_flv[x][y].floor = env.tile_default.floor + floor_rnd;
if (!env.tile_flv[x][y].wall)
env.tile_flv[x][y].wall = env.tile_default.wall + wall_rnd;
int left_grd = (x > 0) ? grd[x-1][y] : DNGN_ROCK_WALL;
int right_grd = (x < GXM - 1) ? grd[x+1][y] : DNGN_ROCK_WALL;
int up_grd = (y > 0) ? grd[x][y-1] : DNGN_ROCK_WALL;
int down_grd = (y < GYM - 1) ? grd[x][y+1] : DNGN_ROCK_WALL;
unsigned short left_col = (x > 0) ?
env.grid_colours[x-1][y] : BLACK;
unsigned short right_col = (x < GXM - 1) ?
env.grid_colours[x+1][y] : BLACK;
unsigned short up_col = (y > 0) ?
env.grid_colours[x][y-1] : BLACK;
unsigned short down_col = (y < GYM - 1) ?
env.grid_colours[x][y+1] : BLACK;
env.tile_flv[x][y].special = random2(256);
}
}
}
// The special tiles contains part floor and part special, so
// if there are adjacent floor or special tiles, we should
// do our best to "connect" them appropriately. If there are
// are other tiles there (walls, doors, whatever...) then it
// doesn't matter.
bool l_nrm = (left_grd == DNGN_FLOOR && left_col != baz_col);
bool r_nrm = (right_grd == DNGN_FLOOR && right_col != baz_col);
bool u_nrm = (up_grd == DNGN_FLOOR && up_col != baz_col);
bool d_nrm = (down_grd == DNGN_FLOOR && down_col != baz_col);
static bool _adjacent_target(dungeon_feature_type target, int x, int y)
{
for (int i = -1; i <= 1; i++)
for (int j = -1; j <= 1; j++)
{
if (!map_bounds(x+i, y+j))
continue;
if (grd[x+i][y+j] == target)
return true;
}
bool l_spc = (left_grd == DNGN_FLOOR && left_col == baz_col);
bool r_spc = (right_grd == DNGN_FLOOR && right_col == baz_col);
bool u_spc = (up_grd == DNGN_FLOOR && up_col == baz_col);
bool d_spc = (down_grd == DNGN_FLOOR && down_col == baz_col);
return false;
}
void tile_floor_halo(dungeon_feature_type target, int tile)
{
for (int x = 0; x < GXM; x++)
{
for (int y = 0; y < GYM; y++)
{
if (grd[x][y] < DNGN_FLOOR_MIN)
continue;
if (!_adjacent_target(target, x, y))
continue;
bool l_flr = (x > 0) ? grd[x-1][y] >= DNGN_FLOOR_MIN : false;
bool r_flr = (x < GXM - 1) ? grd[x+1][y] >= DNGN_FLOOR_MIN : false;
bool u_flr = (y > 0) ? grd[x][y-1] >= DNGN_FLOOR_MIN : false;
bool d_flr = (y < GYM - 1) ? grd[x][y+1] >= DNGN_FLOOR_MIN : false;
bool l_target = _adjacent_target(target, x-1, y);
bool r_target = _adjacent_target(target, x+1, y);
bool u_target = _adjacent_target(target, x, y-1);
bool d_target = _adjacent_target(target, x, y+1);
// The special tiles contains part floor and part special, so
// if there are adjacent floor or special tiles, we should
// do our best to "connect" them appropriately. If there are
// are other tiles there (walls, doors, whatever...) then it
// doesn't matter.
bool l_nrm = (l_flr && !l_target);
bool r_nrm = (r_flr && !r_target);
bool u_nrm = (u_flr && !u_target);
bool d_nrm = (d_flr && !d_target);
if (l_nrm && r_nrm || u_nrm && d_nrm)
{
// Not much to do here...
env.tile_flv[x][y].special = SPECIAL_FULL;
}
else if (l_nrm)
{
if (u_nrm)
env.tile_flv[x][y].special = SPECIAL_NW;
else if (d_nrm)
env.tile_flv[x][y].special = SPECIAL_SW;
else if (u_spc && d_spc)
env.tile_flv[x][y].special = SPECIAL_W;
else if (u_spc && r_spc)
env.tile_flv[x][y].special = SPECIAL_SW;
else if (d_spc && r_spc)
env.tile_flv[x][y].special = SPECIAL_NW;
else if (u_spc)
{
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_W : SPECIAL_SW;
}
else if (d_spc)
{
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_W : SPECIAL_NW;
}
else
env.tile_flv[x][y].special = jitter(SPECIAL_W);
}
else if (r_nrm)
{
if (u_nrm)
env.tile_flv[x][y].special = SPECIAL_NE;
else if (d_nrm)
env.tile_flv[x][y].special = SPECIAL_SE;
else if (u_spc && d_spc)
env.tile_flv[x][y].special = SPECIAL_E;
else if (u_spc && l_spc)
env.tile_flv[x][y].special = SPECIAL_SE;
else if (d_spc && l_spc)
env.tile_flv[x][y].special = SPECIAL_NE;
else if (u_spc)
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_E : SPECIAL_SE;
else if (d_spc)
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_E : SPECIAL_NE;
else
env.tile_flv[x][y].special = jitter(SPECIAL_E);
}
else if (u_nrm)
{
if (r_spc && l_spc)
env.tile_flv[x][y].special = SPECIAL_N;
else if (r_spc && d_spc)
env.tile_flv[x][y].special = SPECIAL_NW;
else if (l_spc && d_spc)
env.tile_flv[x][y].special = SPECIAL_NE;
else if (r_spc)
{
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_N : SPECIAL_NW;
}
else if (l_spc)
{
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_N : SPECIAL_NE;
}
else
env.tile_flv[x][y].special = jitter(SPECIAL_N);
}
bool l_spc = (l_flr && l_target);
bool r_spc = (r_flr && r_target);
bool u_spc = (u_flr && u_target);
bool d_spc = (d_flr && d_target);
if (l_nrm && r_nrm || u_nrm && d_nrm)
{
// Not much to do here...
env.tile_flv[x][y].floor = tile + SPECIAL_FULL;
}
else if (l_nrm)
{
if (u_nrm)
env.tile_flv[x][y].floor = tile + SPECIAL_NW;
{
if (r_spc && l_spc)
env.tile_flv[x][y].special = SPECIAL_S;
else if (r_spc && u_spc)
env.tile_flv[x][y].special = SPECIAL_SW;
else if (l_spc && u_spc)
env.tile_flv[x][y].special = SPECIAL_SE;
else if (r_spc)
{
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_S : SPECIAL_SW;
}
else if (l_spc)
{
env.tile_flv[x][y].special = coinflip() ?
SPECIAL_S : SPECIAL_SE;
}
else
env.tile_flv[x][y].special = jitter(SPECIAL_S);
}
env.tile_flv[x][y].floor = tile + SPECIAL_SW;
// We know this value is already initialized and
// is necessarily in bounds.
char t = env.tile_flv[x][y-1].special;
if (t == SPECIAL_NE || t == SPECIAL_E)
env.tile_flv[x][y].special = SPECIAL_E;
else if (t == SPECIAL_NW || t == SPECIAL_W)
env.tile_flv[x][y].special = SPECIAL_W;
else
env.tile_flv[x][y].special = SPECIAL_FULL;
env.tile_flv[x][y].floor = tile + (coinflip() ?
SPECIAL_W : SPECIAL_SW);
// We know this value is already initialized and
// is necessarily in bounds.
char t = env.tile_flv[x-1][y].special;
if (t == SPECIAL_NW || t == SPECIAL_N)
env.tile_flv[x][y].special = SPECIAL_N;
else if (t == SPECIAL_SW || t == SPECIAL_S)
env.tile_flv[x][y].special = SPECIAL_S;
else
env.tile_flv[x][y].special = SPECIAL_FULL;
env.tile_flv[x][y].floor = tile + (coinflip() ?
SPECIAL_W : SPECIAL_NW);
env.tile_flv[x][y].floor = tile + SPECIAL_SE;
else if (d_spc && l_spc)
env.tile_flv[x][y].floor = tile + SPECIAL_NE;
else if (u_spc)
env.tile_flv[x][y].floor = tile + (coinflip() ?
SPECIAL_E : SPECIAL_SE);
else if (d_spc)
env.tile_flv[x][y].floor = tile + (coinflip() ?
SPECIAL_E : SPECIAL_NE);
else
env.tile_flv[x][y].floor = tile + jitter(SPECIAL_E);
}
else if (u_nrm)
{
if (r_spc && l_spc)
env.tile_flv[x][y].floor = tile + SPECIAL_N;
else if (r_spc && d_spc)
env.tile_flv[x][y].floor = tile + SPECIAL_NW;
else if (l_spc && d_spc)
env.tile_flv[x][y].floor = tile + SPECIAL_NE;
else if (r_spc)
else if (d_spc && l_spc)
else
env.tile_flv[x][y].floor = tile + jitter(SPECIAL_N);
}
else if (d_nrm)
{
if (r_spc && l_spc)
env.tile_flv[x][y].floor = tile + SPECIAL_S;
else if (r_spc && u_spc)
env.tile_flv[x][y].floor = tile + SPECIAL_SW;
else if (l_spc && u_spc)
env.tile_flv[x][y].floor = tile + SPECIAL_SE;
else if (r_spc)
{
env.tile_flv[x][y].special = SPECIAL_FULL;
}
env.tile_flv[x][y].floor = tile + jitter(SPECIAL_S);
}
else if (u_spc && d_spc)
{
// We know this value is already initialized and
// is necessarily in bounds.
int t = env.tile_flv[x][y-1].floor - tile;
if (t == SPECIAL_NE || t == SPECIAL_E)
env.tile_flv[x][y].floor = tile + SPECIAL_E;
else if (t == SPECIAL_NW || t == SPECIAL_W)
env.tile_flv[x][y].floor = tile + SPECIAL_W;
else
env.tile_flv[x][y].floor = tile + SPECIAL_FULL;
}
else if (r_spc && l_spc)
{
// We know this value is already initialized and
// is necessarily in bounds.
int t = env.tile_flv[x-1][y].floor - tile;
if (t == SPECIAL_NW || t == SPECIAL_N)
env.tile_flv[x][y].floor = tile + SPECIAL_N;
else if (t == SPECIAL_SW || t == SPECIAL_S)
env.tile_flv[x][y].floor = tile + SPECIAL_S;
else
env.tile_flv[x][y].floor = tile + SPECIAL_FULL;
}
else if (u_spc && l_spc)
{
env.tile_flv[x][y].floor = tile + SPECIAL_SE;
}
else if (u_spc && r_spc)
{
env.tile_flv[x][y].floor = tile + SPECIAL_SW;
}
else if (d_spc && l_spc)
{
env.tile_flv[x][y].floor = tile + SPECIAL_NE;
}
else if (d_spc && r_spc)
{
env.tile_flv[x][y].floor = tile + SPECIAL_NW;
if (env.tile_flv[x][y].special != SPECIAL_N
&& env.tile_flv[x][y].special != SPECIAL_S
&& env.tile_flv[x][y].special != SPECIAL_E
&& env.tile_flv[x][y].special != SPECIAL_W)
if (this_spc != SPECIAL_N && this_spc != SPECIAL_S
&& this_spc != SPECIAL_E && this_spc != SPECIAL_W)
int right_flavour = x < GXM - 1 ? env.tile_flv[x+1][y].special
: SPECIAL_FULL;
int down_flavour = y < GYM - 1 ? env.tile_flv[x][y+1].special
: SPECIAL_FULL;
int this_flavour = env.tile_flv[x][y].special;
int right_spc = x < GXM - 1 ? env.tile_flv[x+1][y].floor - tile
: SPECIAL_FULL;
int down_spc = y < GYM - 1 ? env.tile_flv[x][y+1].floor - tile
: SPECIAL_FULL;
static int wall_flavours = 0;
static int floor_flavours = 0;
static int special_flavours = 0;
static int wall_tile_idx = 0;
static int floor_tile_idx = 0;
static int special_tile_idx = 0;
int get_num_floor_flavours()
{
return floor_flavours;
}
int get_num_floor_special_flavours()
{
return special_flavours;
}
int get_wall_tile_idx()
{
return wall_tile_idx;
}
int get_floor_tile_idx()
{
return floor_tile_idx;
}
int get_floor_special_tile_idx()
{
return special_tile_idx;
}
// TODO: Add this sort of determinism to the lua maps,
// at least for the portal vaults.
void WallIdx(int &wall, int &floor, int &special)
{
// Note: This function must be deterministic.
special = -1;
if (you.level_type == LEVEL_PANDEMONIUM)
if (lev == LEVEL_PANDEMONIUM)
case BLUE:
case LIGHTBLUE:
wall = TILE_WALL_ZOT_BLUE;
floor = TILE_FLOOR_TOMB;
break;
case RED:
case LIGHTRED:
wall = TILE_WALL_ZOT_RED;
floor = TILE_FLOOR_TOMB;
break;
case MAGENTA:
case LIGHTMAGENTA:
wall = TILE_WALL_ZOT_MAGENTA;
floor = TILE_FLOOR_TOMB;
break;
case GREEN:
case LIGHTGREEN:
wall = TILE_WALL_ZOT_GREEN;
floor = TILE_FLOOR_TOMB;
break;
case CYAN:
case LIGHTCYAN:
wall = TILE_WALL_ZOT_CYAN;
floor = TILE_FLOOR_TOMB;
break;
case BROWN:
case YELLOW:
wall = TILE_WALL_ZOT_YELLOW;
floor = TILE_FLOOR_TOMB;
break;
case BLACK:
case WHITE:
wall = TILE_WALL_ZOT_GRAY;
floor = TILE_FLOOR_TOMB;
break;
case 0: flv.wall = TILE_WALL_ZOT_BLUE; break;
case 1: flv.wall = TILE_WALL_ZOT_RED; break;
case 2: flv.wall = TILE_WALL_ZOT_MAGENTA; break;
case 3: flv.wall = TILE_WALL_ZOT_GREEN; break;
case 4: flv.wall = TILE_WALL_ZOT_CYAN; break;
case 5: flv.wall = TILE_WALL_ZOT_YELLOW; break;
case 6: flv.wall = TILE_WALL_ZOT_GRAY; break;
if ((seen + env.rock_colour) % 3 == 1)
wall = TILE_WALL_FLESH;
if ((seen + env.floor_colour) % 3 == 1)
floor = TILE_FLOOR_NERVES;
if (one_chance_in(3))
flv.wall = TILE_WALL_FLESH;
if (one_chance_in(3))
flv.floor = TILE_FLOOR_NERVES;
case YELLOW:
case BROWN:
wall = TILE_WALL_HIVE;
break;
case RED:
case LIGHTRED:
wall = TILE_WALL_PEBBLE_RED;
break;
case GREEN:
case LIGHTGREEN:
wall = TILE_WALL_SLIME;
break;
case BLUE:
wall = TILE_WALL_ICE;
break;
case LIGHTGREY:
case WHITE:
wall = TILE_WALL_HALL;
break;
wall = TILE_WALL_UNDEAD;
break;
case 0: flv.wall = TILE_WALL_HIVE; break;
case 1: flv.wall = TILE_WALL_PEBBLE_RED; break;
case 2: flv.wall = TILE_WALL_SLIME; break;
case 3: flv.wall = TILE_WALL_ICE; break;
case 4: flv.wall = TILE_WALL_HALL; break;
case 5: flv.wall = TILE_WALL_UNDEAD; break;
if (you.level_type_name == "bazaar")
{
// Bazaar tiles here lean towards grass and dirt to emphasize
// both the non-hostile and other-wordly aspects of the
// portal vaults (i.e. they aren't in the dungeon, necessarily.)
int colour = env.floor_colour;
switch (colour)
{
case BLUE:
wall = TILE_WALL_BAZAAR_GRAY;
floor = TILE_FLOOR_BAZAAR_GRASS;
special = TILE_FLOOR_BAZAAR_GRASS1_SPECIAL;
return;
case RED:
// Reds often have lava, which looks ridiculous
// next to grass or dirt, so we'll use existing
// floor and wall tiles here.
wall = TILE_WALL_PEBBLE_RED;
floor = TILE_FLOOR_VAULT;
special = TILE_FLOOR_BAZAAR_VAULT_SPECIAL;
return;
case LIGHTBLUE:
wall = TILE_WALL_HIVE;
floor = TILE_FLOOR_BAZAAR_GRASS;
special = TILE_FLOOR_BAZAAR_GRASS2_SPECIAL;
return;
case GREEN:
wall = TILE_WALL_BAZAAR_STONE;
floor = TILE_FLOOR_BAZAAR_GRASS;
special = TILE_FLOOR_BAZAAR_GRASS1_SPECIAL;
return;
case MAGENTA:
wall = TILE_WALL_BAZAAR_STONE;
floor = TILE_FLOOR_BAZAAR_DIRT;
special = TILE_FLOOR_BAZAAR_DIRT_SPECIAL;
return;
default:
wall = TILE_WALL_VAULT;
floor = TILE_FLOOR_VAULT;
special = TILE_FLOOR_BAZAAR_VAULT_SPECIAL;
return;
}
}
else if (you.level_type_name == "sewer")
{
wall = TILE_WALL_SLIME;
floor = TILE_FLOOR_SLIME;
return;
}
else if (you.level_type_name == "ice cave")
{
wall = TILE_WALL_ICE;
floor = TILE_FLOOR_ICE;
return;
}
// These should be handled in the respective lua files.
flv.wall = TILE_WALL_NORMAL;
flv.floor = TILE_FLOOR_NORMAL;
return;
case BRANCH_MAIN_DUNGEON:
wall = TILE_WALL_NORMAL;
floor = TILE_FLOOR_NORMAL;
return;
case BRANCH_MAIN_DUNGEON:
flv.wall = TILE_WALL_NORMAL;
flv.floor = TILE_FLOOR_NORMAL;
return;
case BRANCH_HIVE:
wall = TILE_WALL_HIVE;
floor = TILE_FLOOR_HIVE;
return;
case BRANCH_HIVE:
flv.wall = TILE_WALL_HIVE;
flv.floor = TILE_FLOOR_HIVE;
return;
case BRANCH_VAULTS:
wall = TILE_WALL_VAULT;
floor = TILE_FLOOR_VAULT;
return;
case BRANCH_VAULTS:
flv.wall = TILE_WALL_VAULT;
flv.floor = TILE_FLOOR_VAULT;
return;
case BRANCH_ECUMENICAL_TEMPLE:
wall = TILE_WALL_VINES;
floor = TILE_FLOOR_VINES;
return;
case BRANCH_ECUMENICAL_TEMPLE:
flv.wall = TILE_WALL_VINES;
flv.floor = TILE_FLOOR_VINES;
return;
case BRANCH_ELVEN_HALLS:
case BRANCH_HALL_OF_BLADES:
wall = TILE_WALL_HALL;
floor = TILE_FLOOR_HALL;
return;
case BRANCH_ELVEN_HALLS:
case BRANCH_HALL_OF_BLADES:
flv.wall = TILE_WALL_HALL;
flv.floor = TILE_FLOOR_HALL;
return;
case BRANCH_TARTARUS:
case BRANCH_CRYPT:
case BRANCH_VESTIBULE_OF_HELL:
wall = TILE_WALL_UNDEAD;
floor = TILE_FLOOR_TOMB;
return;
case BRANCH_TARTARUS:
case BRANCH_CRYPT:
case BRANCH_VESTIBULE_OF_HELL:
flv.wall = TILE_WALL_UNDEAD;
flv.floor = TILE_FLOOR_TOMB;
return;
case BRANCH_TOMB:
wall = TILE_WALL_TOMB;
floor = TILE_FLOOR_TOMB;
return;
case BRANCH_TOMB:
flv.wall = TILE_WALL_TOMB;
flv.floor = TILE_FLOOR_TOMB;
return;
case BRANCH_DIS:
wall = TILE_WALL_ZOT_CYAN;
floor = TILE_FLOOR_TOMB;
return;
case BRANCH_DIS:
flv.wall = TILE_WALL_ZOT_CYAN;
flv.floor = TILE_FLOOR_TOMB;
return;
case BRANCH_GEHENNA:
wall = TILE_WALL_ZOT_RED;
floor = TILE_FLOOR_ROUGH_RED;
return;
case BRANCH_GEHENNA:
flv.wall = TILE_WALL_ZOT_RED;
flv.floor = TILE_FLOOR_ROUGH_RED;
return;
case BRANCH_COCYTUS:
wall = TILE_WALL_ICE;
floor = TILE_FLOOR_ICE;
return;
case BRANCH_COCYTUS:
flv.wall = TILE_WALL_ICE;
flv.floor = TILE_FLOOR_ICE;
return;
case BRANCH_ORCISH_MINES:
wall = TILE_WALL_ORC;
floor = TILE_FLOOR_ORC;
return;
case BRANCH_ORCISH_MINES:
flv.wall = TILE_WALL_ORC;
flv.floor = TILE_FLOOR_ORC;
return;
case BRANCH_LAIR:
wall = TILE_WALL_LAIR;
floor = TILE_FLOOR_LAIR;
return;
case BRANCH_SLIME_PITS:
wall = TILE_WALL_SLIME;
floor = TILE_FLOOR_SLIME;
return;
case BRANCH_SNAKE_PIT:
wall = TILE_WALL_SNAKE;
floor = TILE_FLOOR_SNAKE;
return;
case BRANCH_LAIR:
flv.wall = TILE_WALL_LAIR;
flv.floor = TILE_FLOOR_LAIR;
return;
case BRANCH_SWAMP:
wall = TILE_WALL_SWAMP;
floor = TILE_FLOOR_SWAMP;
return;
case BRANCH_SHOALS:
if (depth == branch_depth)
wall = TILE_WALL_VINES;
else
wall = TILE_WALL_YELLOW_ROCK;
case BRANCH_SLIME_PITS:
flv.wall = TILE_WALL_SLIME;
flv.floor = TILE_FLOOR_SLIME;
return;
case BRANCH_HALL_OF_ZOT:
if (you.your_level - you.branch_stairs[7] <= 1)
{
wall = TILE_WALL_ZOT_YELLOW;
floor = TILE_FLOOR_TOMB;
return;
}
case BRANCH_SWAMP:
flv.wall = TILE_WALL_SWAMP;
flv.floor = TILE_FLOOR_SWAMP;
return;
switch (you.your_level - you.branch_stairs[7])
{
case 2:
wall = TILE_WALL_ZOT_GREEN;
floor = TILE_FLOOR_TOMB;
return;
case 3:
wall = TILE_WALL_ZOT_CYAN;
floor = TILE_FLOOR_TOMB;
return;
case 4:
wall = TILE_WALL_ZOT_BLUE;
floor = TILE_FLOOR_TOMB;
return;
case 5:
default:
wall = TILE_WALL_ZOT_MAGENTA;
floor = TILE_FLOOR_TOMB;
return;
}
case BRANCH_SHOALS:
flv.wall = TILE_WALL_YELLOW_ROCK;
flv.floor = TILE_FLOOR_SAND_STONE;
return;
WallIdx(wall_tile_idx, floor_tile_idx, special_tile_idx);
// Number of flavours are generated automatically...
floor_flavours = tile_dngn_count(floor_tile_idx);
wall_flavours = tile_dngn_count(wall_tile_idx);
if (special_tile_idx != -1)
special_flavours = tile_dngn_count(special_tile_idx);
else
special_flavours = 0;
tile_default_flv(you.level_type, you.where_are_you, env.tile_default);
marshallByte(th, env.tile_flv[count_x][count_y].wall);
marshallByte(th, env.tile_flv[count_x][count_y].floor);
marshallByte(th, env.tile_flv[count_x][count_y].special);
marshallShort(th, env.tile_flv[count_x][count_y].wall);
marshallShort(th, env.tile_flv[count_x][count_y].floor);
marshallShort(th, env.tile_flv[count_x][count_y].special);
env.tile_flv[x][y].wall = unmarshallByte(th);
env.tile_flv[x][y].floor = unmarshallByte(th);
env.tile_flv[x][y].special = unmarshallByte(th);
env.tile_flv[x][y].wall = unmarshallShort(th);
env.tile_flv[x][y].floor = unmarshallShort(th);
env.tile_flv[x][y].special = unmarshallShort(th);
}
fprintf(fp, "\nclass tile_%s_map : public map<string, int>\n"
"{\n"
"public:\n"
" tile_%s_map();\n"
"} %s_name_map;\n\n",
lcname.c_str(), lcname.c_str(), lcname.c_str());
fprintf(fp,
"tile_%s_map::tile_%s_map()\n"
"{\n"
" map<string, int>::iterator itr = begin();\n",
lcname.c_str(), lcname.c_str());
for (unsigned int i = 0; i < m_page.m_tiles.size(); i++)
{
const std::string &enumname = m_page.m_tiles[i]->enumname();
// Filler can't be looked up.
if (enumname.empty())
continue;
std::string lcenum = enumname;
for (unsigned int c = 0; c < enumname.size(); c++)
lcenum[c] = std::tolower(enumname[c]);
fprintf(fp, " insert(itr, map<string, int>::value_type(\"%s\", %d + %s));\n",
lcenum.c_str(), i, m_start_value.c_str());
fprintf(fp, "}\n\n");
fprintf(fp,
"bool tile_%s_index(const char *str, unsigned int &idx)\n"
"{\n"
" assert(str);\n"
" if (!str)\n"
" return false;\n"
"\n"
" string lc = str;\n"
" for (unsigned int i = 0; i < lc.size(); i++)\n"
" lc[i] = tolower(lc[i]);\n"
"\n"
" map<string, int>::const_iterator itr = %s_name_map.find(lc);\n"
" if (itr == %s_name_map.end())\n"
" return false;\n"
"\n"
" idx = itr->second;\n"
" return true;\n"
"}\n",
lcname.c_str(), lcname.c_str(), lcname.c_str());
COMMA = 286,
COLON = 287,
PERC = 288,
INTEGER = 289,
CHARACTER = 290,
STRING = 291,
MAP_LINE = 292,
MONSTER_NAME = 293,
ITEM_INFO = 294,
LUA_LINE = 295
FLOORTILE = 286,
ROCKTILE = 287,
COMMA = 288,
COLON = 289,
PERC = 290,
INTEGER = 291,
CHARACTER = 292,
STRING = 293,
MAP_LINE = 294,
MONSTER_NAME = 295,
ITEM_INFO = 296,
LUA_LINE = 297
#define COMMA 286
#define COLON 287
#define PERC 288
#define INTEGER 289
#define CHARACTER 290
#define STRING 291
#define MAP_LINE 292
#define MONSTER_NAME 293
#define ITEM_INFO 294
#define LUA_LINE 295
#define FLOORTILE 286
#define ROCKTILE 287
#define COMMA 288
#define COLON 289
#define PERC 290
#define INTEGER 291
#define CHARACTER 292
#define STRING 293
#define MAP_LINE 294
#define MONSTER_NAME 295
#define ITEM_INFO 296
#define LUA_LINE 297
COMMA = 286,
COLON = 287,
PERC = 288,
INTEGER = 289,
CHARACTER = 290,
STRING = 291,
MAP_LINE = 292,
MONSTER_NAME = 293,
ITEM_INFO = 294,
LUA_LINE = 295
FLOORTILE = 286,
ROCKTILE = 287,
COMMA = 288,
COLON = 289,
PERC = 290,
INTEGER = 291,
CHARACTER = 292,
STRING = 293,
MAP_LINE = 294,
MONSTER_NAME = 295,
ITEM_INFO = 296,
LUA_LINE = 297
#define COMMA 286
#define COLON 287
#define PERC 288
#define INTEGER 289
#define CHARACTER 290
#define STRING 291
#define MAP_LINE 292
#define MONSTER_NAME 293
#define ITEM_INFO 294
#define LUA_LINE 295
#define FLOORTILE 286
#define ROCKTILE 287
#define COMMA 288
#define COLON 289
#define PERC 290
#define INTEGER 291
#define CHARACTER 292
#define STRING 293
#define MAP_LINE 294
#define MONSTER_NAME 295
#define ITEM_INFO 296
#define LUA_LINE 297
82, 84, 86, 88, 90, 93, 94, 97, 99, 102,
103, 106, 108, 111, 112, 115, 117, 120, 121, 124,
126, 129, 130, 133, 135, 137, 140, 142, 145, 147,
150, 152, 155, 158, 160, 164, 166, 169, 170, 173,
175, 178, 181, 184, 187, 189, 192, 194, 197, 199,
203, 205, 208, 210, 214, 216, 219, 221, 225, 227,
229, 232, 236, 238, 240, 242, 245, 249, 251, 253,
256, 258, 261, 267, 272, 276, 279, 282, 284, 287,
290, 292, 295, 297
82, 84, 86, 88, 90, 92, 94, 97, 98, 101,
103, 106, 107, 110, 112, 115, 116, 119, 121, 124,
125, 128, 130, 133, 134, 137, 139, 141, 144, 146,
149, 151, 154, 156, 159, 162, 164, 168, 170, 173,
174, 177, 179, 182, 185, 188, 191, 193, 196, 198,
201, 203, 206, 208, 211, 213, 217, 219, 222, 224,
228, 230, 233, 235, 239, 241, 243, 246, 250, 252,
254, 256, 259, 263, 265, 267, 270, 272, 275, 281,
286, 290, 293, 296, 298, 301, 304, 306, 309, 311
42, 0, -1, 43, -1, -1, 43, 44, -1, 46,
-1, 48, -1, 35, -1, 47, -1, 53, -1, 3,
36, -1, 51, 49, -1, -1, 49, 50, -1, 52,
-1, 104, -1, 11, 36, -1, 98, -1, 99, -1,
100, -1, 101, -1, 102, -1, 103, -1, 95, -1,
92, -1, 80, -1, 89, -1, 86, -1, 81, -1,
82, -1, 83, -1, 72, -1, 75, -1, 78, -1,
79, -1, 68, -1, 70, -1, 69, -1, 71, -1,
56, -1, 65, -1, 59, -1, 62, -1, 45, -1,
22, 54, -1, -1, 54, 55, -1, 40, -1, 22,
57, -1, -1, 57, 58, -1, 40, -1, 23, 60,
-1, -1, 60, 61, -1, 40, -1, 24, 63, -1,
-1, 63, 64, -1, 40, -1, 21, 66, -1, -1,
66, 67, -1, 40, -1, 7, -1, 7, 36, -1,
9, -1, 9, 36, -1, 8, -1, 8, 36, -1,
10, -1, 10, 36, -1, 4, 73, -1, 74, -1,
73, 31, 74, -1, 39, -1, 6, 76, -1, -1,
76, 77, -1, 36, -1, 27, 36, -1, 28, 36,
-1, 19, 36, -1, 20, 84, -1, 29, -1, 29,
36, -1, 30, -1, 30, 36, -1, 85, -1, 84,
31, 85, -1, 39, -1, 25, 87, -1, 88, -1,
87, 31, 88, -1, 39, -1, 5, 90, -1, 91,
-1, 91, 31, 90, -1, 39, -1, 18, -1, 18,
93, -1, 93, 31, 94, -1, 94, -1, 39, -1,
17, -1, 17, 96, -1, 97, 31, 96, -1, 97,
-1, 38, -1, 14, 36, -1, 12, -1, 12, 36,
-1, 15, 34, 32, 34, 33, -1, 15, 34, 32,
34, -1, 15, 34, 33, -1, 15, 34, -1, 16,
34, -1, 13, -1, 13, 36, -1, 26, 36, -1,
105, -1, 105, 106, -1, 106, -1, 37, -1
44, 0, -1, 45, -1, -1, 45, 46, -1, 48,
-1, 50, -1, 37, -1, 49, -1, 55, -1, 3,
38, -1, 53, 51, -1, -1, 51, 52, -1, 54,
-1, 108, -1, 11, 38, -1, 102, -1, 103, -1,
104, -1, 105, -1, 106, -1, 107, -1, 99, -1,
96, -1, 82, -1, 93, -1, 90, -1, 83, -1,
84, -1, 85, -1, 86, -1, 87, -1, 74, -1,
77, -1, 80, -1, 81, -1, 70, -1, 72, -1,
71, -1, 73, -1, 58, -1, 67, -1, 61, -1,
64, -1, 47, -1, 22, 56, -1, -1, 56, 57,
-1, 42, -1, 22, 59, -1, -1, 59, 60, -1,
42, -1, 23, 62, -1, -1, 62, 63, -1, 42,
-1, 24, 65, -1, -1, 65, 66, -1, 42, -1,
21, 68, -1, -1, 68, 69, -1, 42, -1, 7,
-1, 7, 38, -1, 9, -1, 9, 38, -1, 8,
-1, 8, 38, -1, 10, -1, 10, 38, -1, 4,
75, -1, 76, -1, 75, 33, 76, -1, 41, -1,
6, 78, -1, -1, 78, 79, -1, 38, -1, 27,
38, -1, 28, 38, -1, 19, 38, -1, 20, 88,
-1, 29, -1, 29, 38, -1, 30, -1, 30, 38,
-1, 31, -1, 31, 38, -1, 32, -1, 32, 38,
-1, 89, -1, 88, 33, 89, -1, 41, -1, 25,
91, -1, 92, -1, 91, 33, 92, -1, 41, -1,
5, 94, -1, 95, -1, 95, 33, 94, -1, 41,
-1, 18, -1, 18, 97, -1, 97, 33, 98, -1,
98, -1, 41, -1, 17, -1, 17, 100, -1, 101,
33, 100, -1, 101, -1, 40, -1, 14, 38, -1,
12, -1, 12, 38, -1, 15, 36, 34, 36, 35,
-1, 15, 36, 34, 36, -1, 15, 36, 35, -1,
15, 36, -1, 16, 36, -1, 13, -1, 13, 38,
-1, 26, 38, -1, 109, -1, 109, 110, -1, 110,
-1, 39, -1
175, 176, 177, 178, 181, 183, 184, 187, 192, 194,
195, 198, 203, 205, 206, 209, 214, 216, 217, 220,
225, 227, 228, 231, 236, 237, 245, 246, 254, 255,
263, 264, 272, 275, 276, 279, 287, 290, 291, 294,
303, 312, 321, 354, 357, 358, 366, 367, 375, 376,
379, 388, 391, 392, 395, 404, 407, 408, 411, 420,
421, 424, 425, 428, 436, 437, 440, 441, 444, 453,
462, 463, 472, 479, 486, 493, 501, 509, 510, 519,
528, 531, 532, 535
175, 176, 177, 178, 179, 180, 183, 185, 186, 189,
194, 196, 197, 200, 205, 207, 208, 211, 216, 218,
219, 222, 227, 229, 230, 233, 238, 239, 247, 248,
256, 257, 265, 266, 274, 277, 278, 281, 289, 292,
293, 296, 305, 314, 323, 356, 359, 360, 368, 369,
377, 378, 386, 387, 395, 396, 399, 408, 411, 412,
415, 424, 427, 428, 431, 440, 441, 444, 445, 448,
456, 457, 460, 461, 464, 473, 482, 483, 492, 499,
506, 513, 521, 529, 530, 539, 548, 551, 552, 555
"BFLAGS", "FLOORCOL", "ROCKCOL", "COMMA", "COLON", "PERC", "INTEGER",
"CHARACTER", "STRING", "MAP_LINE", "MONSTER_NAME", "ITEM_INFO",
"LUA_LINE", "$accept", "file", "definitions", "definition", "error_seq",
"def", "defdepth", "level", "map_specs", "map_spec", "name", "metaline",
"global_lua", "global_lua_lines", "global_lua_line", "main_lua",
"main_lua_lines", "main_lua_line", "validate_lua", "validate_lua_lines",
"BFLAGS", "FLOORCOL", "ROCKCOL", "FLOORTILE", "ROCKTILE", "COMMA",
"COLON", "PERC", "INTEGER", "CHARACTER", "STRING", "MAP_LINE",
"MONSTER_NAME", "ITEM_INFO", "LUA_LINE", "$accept", "file",
"definitions", "definition", "error_seq", "def", "defdepth", "level",
"map_specs", "map_spec", "name", "metaline", "global_lua",
"global_lua_lines", "global_lua_line", "main_lua", "main_lua_lines",
"main_lua_line", "validate_lua", "validate_lua_lines",
"colour", "floorcol", "rockcol", "colour_specifiers", "colour_specifier",
"nsubst", "nsubst_specifiers", "nsubst_spec", "subst",
"subst_specifiers", "subst_spec", "items", "item_specifiers",
"item_specifier", "mons", "mnames", "mname", "place", "depth", "chance",
"weight", "orientation", "welcome", "map_def", "map_lines", "map_line", 0
"colour", "floorcol", "rockcol", "floortile", "rocktile",
"colour_specifiers", "colour_specifier", "nsubst", "nsubst_specifiers",
"nsubst_spec", "subst", "subst_specifiers", "subst_spec", "items",
"item_specifiers", "item_specifier", "mons", "mnames", "mname", "place",
"depth", "chance", "weight", "orientation", "welcome", "map_def",
"map_lines", "map_line", 0
0, 41, 42, 43, 43, 44, 44, 45, 46, 46,
47, 48, 49, 49, 50, 50, 51, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 53, 54, 54, 55, 56, 57,
57, 58, 59, 60, 60, 61, 62, 63, 63, 64,
65, 66, 66, 67, 68, 68, 69, 69, 70, 70,
71, 71, 72, 73, 73, 74, 75, 76, 76, 77,
78, 79, 80, 81, 82, 82, 83, 83, 84, 84,
85, 86, 87, 87, 88, 89, 90, 90, 91, 92,
92, 93, 93, 94, 95, 95, 96, 96, 97, 98,
99, 99, 100, 100, 100, 100, 101, 102, 102, 103,
104, 105, 105, 106
0, 43, 44, 45, 45, 46, 46, 47, 48, 48,
49, 50, 51, 51, 52, 52, 53, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 55, 56, 56, 57,
58, 59, 59, 60, 61, 62, 62, 63, 64, 65,
65, 66, 67, 68, 68, 69, 70, 70, 71, 71,
72, 72, 73, 73, 74, 75, 75, 76, 77, 78,
78, 79, 80, 81, 82, 83, 84, 84, 85, 85,
86, 86, 87, 87, 88, 88, 89, 90, 91, 91,
92, 93, 94, 94, 95, 96, 96, 97, 97, 98,
99, 99, 100, 100, 101, 102, 103, 103, 104, 104,
104, 104, 105, 106, 106, 107, 108, 109, 109, 110
1, 1, 1, 1, 2, 0, 2, 1, 2, 0,
2, 1, 2, 0, 2, 1, 2, 0, 2, 1,
2, 0, 2, 1, 1, 2, 1, 2, 1, 2,
1, 2, 2, 1, 3, 1, 2, 0, 2, 1,
2, 2, 2, 2, 1, 2, 1, 2, 1, 3,
1, 2, 1, 3, 1, 2, 1, 3, 1, 1,
2, 3, 1, 1, 1, 2, 3, 1, 1, 2,
1, 2, 5, 4, 3, 2, 2, 1, 2, 2,
1, 2, 1, 1
1, 1, 1, 1, 1, 1, 2, 0, 2, 1,
2, 0, 2, 1, 2, 0, 2, 1, 2, 0,
2, 1, 2, 0, 2, 1, 1, 2, 1, 2,
1, 2, 1, 2, 2, 1, 3, 1, 2, 0,
2, 1, 2, 2, 2, 2, 1, 2, 1, 2,
1, 2, 1, 2, 1, 3, 1, 2, 1, 3,
1, 2, 1, 3, 1, 1, 2, 3, 1, 1,
1, 2, 3, 1, 1, 2, 1, 2, 5, 4,
3, 2, 2, 1, 2, 2, 1, 2, 1, 1
3, 0, 2, 1, 0, 0, 45, 4, 5, 8,
6, 12, 9, 10, 16, 44, 11, 47, 46, 0,
0, 77, 64, 68, 66, 70, 110, 117, 0, 0,
0, 104, 99, 0, 0, 61, 49, 53, 57, 0,
0, 0, 0, 84, 86, 7, 123, 43, 13, 14,
39, 41, 42, 40, 35, 37, 36, 38, 31, 32,
33, 34, 25, 28, 29, 30, 27, 26, 24, 23,
17, 18, 19, 20, 21, 22, 15, 120, 122, 75,
72, 73, 98, 95, 96, 76, 65, 69, 67, 71,
111, 118, 109, 115, 116, 108, 105, 107, 103, 100,
102, 82, 90, 83, 88, 60, 48, 52, 56, 94,
91, 92, 119, 80, 81, 85, 87, 121, 0, 0,
79, 78, 0, 114, 0, 0, 0, 63, 62, 51,
50, 55, 54, 59, 58, 0, 74, 97, 113, 106,
101, 89, 93, 112
3, 0, 2, 1, 0, 0, 47, 4, 5, 8,
6, 12, 9, 10, 16, 46, 11, 49, 48, 0,
0, 79, 66, 70, 68, 72, 116, 123, 0, 0,
0, 110, 105, 0, 0, 63, 51, 55, 59, 0,
0, 0, 0, 86, 88, 90, 92, 7, 129, 45,
13, 14, 41, 43, 44, 42, 37, 39, 38, 40,
33, 34, 35, 36, 25, 28, 29, 30, 31, 32,
27, 26, 24, 23, 17, 18, 19, 20, 21, 22,
15, 126, 128, 77, 74, 75, 104, 101, 102, 78,
67, 71, 69, 73, 117, 124, 115, 121, 122, 114,
111, 113, 109, 106, 108, 84, 96, 85, 94, 62,
50, 54, 58, 100, 97, 98, 125, 82, 83, 87,
89, 91, 93, 127, 0, 0, 81, 80, 0, 120,
0, 0, 0, 65, 64, 53, 52, 57, 56, 61,
60, 0, 76, 103, 119, 112, 107, 95, 99, 118
-1, 1, 2, 7, 47, 8, 9, 10, 16, 48,
11, 49, 12, 15, 18, 50, 106, 130, 51, 107,
132, 52, 108, 134, 53, 105, 128, 54, 55, 56,
57, 58, 80, 81, 59, 85, 121, 60, 61, 62,
63, 64, 65, 103, 104, 66, 110, 111, 67, 83,
84, 68, 99, 100, 69, 96, 97, 70, 71, 72,
73, 74, 75, 76, 77, 78
-1, 1, 2, 7, 49, 8, 9, 10, 16, 50,
11, 51, 12, 15, 18, 52, 110, 136, 53, 111,
138, 54, 112, 140, 55, 109, 134, 56, 57, 58,
59, 60, 84, 85, 61, 89, 127, 62, 63, 64,
65, 66, 67, 68, 69, 107, 108, 70, 114, 115,
71, 87, 88, 72, 103, 104, 73, 100, 101, 74,
75, 76, 77, 78, 79, 80, 81, 82
-68, 7, 24, -68, -8, -2, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -1, -4, -68, -68, -7,
1, -68, 0, 2, 5, 6, 8, 9, 11, 3,
14, 12, 4, 13, 15, -68, -68, -68, -68, 16,
17, 20, 21, 22, 23, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, 25, -68, -68,
29, -68, -68, -68, 30, 27, -68, -68, -68, -68,
-68, -68, -68, -3, -68, -68, -68, 33, -68, 34,
-68, -68, -68, 35, -68, 28, 31, 32, 36, -68,
38, -68, -68, -68, -68, -68, -68, -68, -7, 1,
-68, -68, 18, -68, 12, 4, 15, -68, -68, -68,
-68, -68, -68, -68, -68, 16, -68, -68, 37, -68,
-68, -68, -68, -68
-72, 7, 26, -72, -8, -2, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -1, -4, -72, -72, -7,
1, -72, 0, 2, 5, 6, 8, 9, 11, 3,
14, 12, 4, 13, 15, -72, -72, -72, -72, 16,
17, 20, 21, 22, 23, 24, 25, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, 27, -72, -72, 31, -72, -72, -72, 32, 29,
-72, -72, -72, -72, -72, -72, -72, -3, -72, -72,
-72, 35, -72, 36, -72, -72, -72, 37, -72, 30,
33, 34, 38, -72, 40, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -7, 1, -72, -72, 18, -72,
12, 4, 15, -72, -72, -72, -72, -72, -72, -72,
-72, 16, -72, -72, 39, -72, -72, -72, -72, -72
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -67, -68, -68, -68, -68, -68, -68,
-68, -68, -68, -68, -59, -68, -68, -62, -68, -45,
-68, -68, -68, -50, -68, -47, -68, -68, -68, -68,
-68, -68, -68, -68, -68, 10
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -71, -72, -72, -72, -72, -72, -72,
-72, -72, -72, -72, -72, -72, -61, -72, -72, -64,
-72, -47, -72, -72, -72, -52, -72, -49, -72, -72,
-72, -72, -72, -72, -72, -72, -72, 10
38, 39, 40, 41, 42, 43, 44, 4, 13, 122,
123, 45, 79, 46, 14, 5, 86, 93, 87, 17,
82, 88, 89, 98, 90, 91, 6, 92, 94, 101,
95, 136, 138, 112, 102, 109, 113, 114, 115, 116,
118, 119, 46, 120, 124, 125, 126, 141, 127, 135,
143, 129, 131, 142, 137, 140, 133, 139, 0, 0,
0, 0, 0, 0, 0, 0, 0, 117
38, 39, 40, 41, 42, 43, 44, 45, 46, 4,
13, 128, 129, 47, 83, 48, 14, 5, 90, 97,
91, 17, 86, 92, 93, 102, 94, 95, 6, 96,
98, 105, 99, 142, 144, 116, 106, 113, 117, 118,
119, 120, 121, 122, 124, 125, 48, 126, 130, 131,
132, 147, 133, 141, 149, 135, 137, 148, 143, 146,
139, 145, 0, 0, 0, 0, 0, 0, 0, 0,
0, 123
24, 25, 26, 27, 28, 29, 30, 3, 36, 32,
33, 35, 39, 37, 36, 11, 36, 34, 36, 40,
39, 36, 36, 39, 36, 36, 22, 36, 34, 36,
38, 118, 34, 36, 39, 39, 36, 36, 36, 36,
31, 31, 37, 36, 31, 31, 31, 126, 40, 31,
33, 40, 40, 135, 119, 125, 40, 124, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 77
24, 25, 26, 27, 28, 29, 30, 31, 32, 3,
38, 34, 35, 37, 41, 39, 38, 11, 38, 36,
38, 42, 41, 38, 38, 41, 38, 38, 22, 38,
36, 38, 40, 124, 36, 38, 41, 41, 38, 38,
38, 38, 38, 38, 33, 33, 39, 38, 33, 33,
33, 132, 42, 33, 35, 42, 42, 141, 125, 131,
42, 130, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 81
26, 27, 28, 29, 30, 35, 37, 45, 50, 52,
56, 59, 62, 65, 68, 69, 70, 71, 72, 75,
78, 79, 80, 81, 82, 83, 86, 89, 92, 95,
98, 99, 100, 101, 102, 103, 104, 105, 106, 39,
73, 74, 39, 90, 91, 76, 36, 36, 36, 36,
36, 36, 36, 34, 34, 38, 96, 97, 39, 93,
94, 36, 39, 84, 85, 66, 57, 60, 63, 39,
87, 88, 36, 36, 36, 36, 36, 106, 31, 31,
36, 77, 32, 33, 31, 31, 31, 40, 67, 40,
58, 40, 61, 40, 64, 31, 74, 90, 34, 96,
94, 85, 88, 33
26, 27, 28, 29, 30, 31, 32, 37, 39, 47,
52, 54, 58, 61, 64, 67, 70, 71, 72, 73,
74, 77, 80, 81, 82, 83, 84, 85, 86, 87,
90, 93, 96, 99, 102, 103, 104, 105, 106, 107,
108, 109, 110, 41, 75, 76, 41, 94, 95, 78,
38, 38, 38, 38, 38, 38, 38, 36, 36, 40,
100, 101, 41, 97, 98, 38, 41, 88, 89, 68,
59, 62, 65, 41, 91, 92, 38, 38, 38, 38,
38, 38, 38, 110, 33, 33, 38, 79, 34, 35,
33, 33, 33, 42, 69, 42, 60, 42, 63, 42,
66, 33, 76, 94, 36, 100, 98, 89, 92, 35
case 89:
#line 376 "levcomp.ypp"
case 91:
#line 379 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
make_stringf("floortile(\"%s\")",
quote_lua_string((yyvsp[(2) - (2)].text)).c_str()));
}
break;
case 92:
#line 386 "levcomp.ypp"
{ }
break;
case 93:
#line 388 "levcomp.ypp"
{
lc_map.main.add(
yylineno,
make_stringf("rocktile(\"%s\")",
quote_lua_string((yyvsp[(2) - (2)].text)).c_str()));
}
break;
case 94:
#line 395 "levcomp.ypp"
0, 0, 0, 0, 0, 0, 76, 74, 71, 72,
73, 69, 74, 67, 70, 68, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 71, 34, 36, 74, 74, 74, 74, 74,
74, 75, 6, 75, 75, 4, 2, 3, 75, 2,
2, 2, 2, 9, 10, 75, 9, 9, 75, 12,
75, 32, 71, 33, 73, 32, 32, 32, 32, 32,
0, 0, 0, 0, 0, 0, 78, 76, 73, 74,
75, 71, 76, 69, 72, 70, 76, 76, 76, 76,
76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
76, 76, 73, 34, 36, 76, 76, 76, 76, 76,
76, 77, 6, 77, 77, 4, 2, 3, 77, 2,
2, 2, 2, 9, 10, 77, 9, 9, 77, 12,
77, 32, 73, 33, 75, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 74, 28, 23, 28,
69, 74, 27, 70, 68, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 28, 34, 36, 74, 74, 74, 74, 74,
74, 15, 16, 73, 13, 13, 13, 13, 13, 13,
32, 32, 32, 32, 32, 32, 76, 28, 23, 28,
71, 76, 27, 72, 70, 76, 76, 76, 76, 76,
76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
76, 76, 28, 34, 36, 76, 76, 76, 76, 76,
76, 15, 16, 75, 13, 13, 13, 13, 13, 13,
13, 13, 0, 0, 0, 0, 0, 0, 60, 0,
0, 0, 0, 0, 0, 59, 42, 0, 0, 0,
0, 0, 0, 51, 0, 0, 0, 38, 0, 0,
0, 0, 2, 31, 31, 31, 31, 31, 31, 31,
13, 13, 0, 0, 0, 0, 0, 0, 62, 0,
0, 0, 0, 0, 0, 61, 42, 0, 0, 0,
0, 0, 0, 0, 51, 0, 0, 0, 38, 0,
0, 0, 0, 2, 31, 31, 31, 31, 31, 31,
13, 13, 13, 13, 13, 13, 0, 0, 0, 44,
50, 0, 63, 64, 66, 65, 0, 0, 0, 0,
46, 0, 0, 54, 0, 0, 0, 0, 0, 41,
1, 31, 31, 31, 31, 31, 31, 31, 31, 31,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
0, 0, 0, 44, 50, 0, 0, 65, 66, 68,
67, 0, 0, 0, 0, 46, 0, 0, 0, 54,
0, 0, 0, 0, 0, 41, 1, 31, 31, 31,
31, 31, 31, 31, 31, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
31, 26, 26, 26, 26, 26, 26, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26, 13, 13,
13, 13, 13, 13, 13, 13, 13, 0, 0, 58,
0, 64, 47, 0, 0, 0, 0, 31, 31, 31,
31, 31, 31, 31, 0, 31, 31, 26, 26, 26,
26, 26, 26, 26, 0, 26, 26, 13, 13, 13,
13, 13, 57, 0, 60, 0, 37, 0, 0, 31,
31, 31, 31, 31, 0, 31, 26, 26, 26, 26,
26, 0, 26, 13, 13, 59, 0, 40, 31, 31,
31, 26, 26, 26, 13, 0, 31, 26, 13, 0,
13, 13, 13, 13, 13, 13, 13, 0, 58, 62,
47, 0, 0, 0, 0, 31, 31, 31, 31, 31,
0, 31, 31, 26, 26, 26, 26, 26, 0, 26,
26, 13, 13, 13, 57, 0, 37, 0, 0, 31,
31, 31, 0, 31, 26, 26, 26, 0, 26, 13,
0, 40, 31, 31, 26, 26, 13, 0, 31, 26,
13, 0, 31, 26, 13, 0, 31, 26, 13, 43,
31, 26, 0
31, 26, 13, 0, 31, 26, 13, 43, 31, 26,
0
214, 263, 312, 361, 76, 170, 2035, 3243, 71, 3243,
2031, 3243, 2007, 3243, 2006, 3243, 1998, 55, 1996, 1985,
1967, 66, 1975, 73, 76, 1959, 1960, 1951, 63, 1955,
1937, 1915, 409, 0, 3243, 75, 1900, 1900, 68, 64,
1894, 3243, 3243, 1935, 177, 3243, 0, 3243, 1934, 181,
0, 1906, 151, 1878, 3243, 1924, 58, 1869, 184, 3243,
1914, 268, 275, 3243, 366, 373, 378, 383, 388, 392,
214, 263, 312, 361, 76, 170, 2173, 3341, 71, 3341,
2151, 3341, 2131, 3341, 2126, 3341, 2112, 55, 2107, 2096,
2088, 66, 2096, 73, 76, 2084, 2073, 2066, 63, 2076,
2065, 2041, 409, 0, 3341, 75, 2029, 2025, 68, 64,
2010, 3341, 3341, 2051, 177, 3341, 0, 3341, 2039, 181,
0, 2015, 151, 1985, 3341, 2031, 58, 1968, 184, 3341,
2014, 268, 275, 3341, 366, 373, 378, 383, 388, 392,
743, 750, 3243, 777, 1898, 1896, 0, 1886, 149, 1884,
1867, 1859, 173, 1871, 165, 182, 1854, 1857, 1850, 169,
1863, 1858, 279, 1834, 783, 180, 1820, 1817, 241, 162,
757, 791, 3243, 795, 3243, 799, 102, 3243, 1846, 1824,
1833, 1789, 1784, 263, 1794, 1790, 1775, 272, 1781, 1773,
1775, 1775, 1766, 1776, 1778, 1751, 1733, 1750, 1738, 91,
743, 750, 3341, 777, 2005, 2002, 0, 1991, 149, 1981,
1969, 1957, 173, 1960, 165, 182, 1939, 1930, 1925, 169,
1934, 1927, 279, 1906, 783, 180, 1891, 1893, 241, 162,
757, 791, 3341, 795, 3341, 799, 102, 3341, 1921, 1904,
1914, 1895, 1889, 263, 1892, 1890, 1873, 272, 1877, 1862,
1864, 1864, 1851, 1860, 1864, 1861, 1843, 1857, 1848, 91,
1718, 0, 0, 3243, 1704, 1703, 165, 1696, 0, 263,
1707, 1703, 1724, 242, 1694, 1685, 3243, 3243, 3243, 1725,
290, 0, 3243, 0, 1724, 293, 1695, 1681, 378, 1647,
1646, 3243, 255, 1642, 803, 361, 3243, 1687, 3243, 808,
814, 818, 832, 3243, 836, 841, 3243, 845, 853, 858,
1823, 0, 0, 3341, 1810, 1804, 165, 1797, 0, 263,
1778, 1775, 1798, 242, 1766, 1760, 3341, 3341, 3341, 1802,
290, 0, 3341, 0, 1799, 293, 1785, 1774, 378, 1748,
1747, 3341, 255, 1741, 803, 361, 3341, 1763, 3341, 808,
814, 818, 832, 3341, 836, 841, 3341, 845, 853, 858,
3243, 1000, 0, 1012, 1018, 1026, 1035, 1031, 1039, 1043,
1049, 1057, 1053, 1066, 825, 871, 1076, 1099, 3243, 1103,
1109, 3243, 1084, 1091, 1114, 1115, 1119, 1127, 1121, 1126,
3341, 1000, 0, 1012, 1018, 1026, 1035, 1031, 1039, 1043,
1049, 1057, 1053, 1066, 825, 871, 1076, 1099, 3341, 1103,
1109, 3341, 1084, 1091, 1114, 1115, 1119, 1127, 1121, 1126,
1301, 3243, 1315, 1319, 1293, 3243, 0, 1662, 1636, 1640,
1614, 1602, 378, 1606, 1605, 1575, 416, 1578, 1567, 1555,
1547, 1539, 1549, 1552, 1549, 1531, 1546, 1526, 286, 1326,
3243, 1502, 0, 416, 1496, 1487, 1510, 395, 1473, 1463,
1305, 1306, 1339, 1343, 3243, 1348, 1352, 1332, 1356, 3243,
1360, 1495, 1476, 1473, 1467, 1477, 1467, 1467, 1470, 1463,
1445, 1448, 1449, 1435, 1419, 1429, 1428, 1424, 1419, 1410,
1301, 3341, 1315, 1319, 1293, 3341, 0, 1754, 1740, 1744,
1732, 1723, 378, 1730, 1728, 1711, 416, 1716, 1708, 1709,
1706, 1696, 1706, 1698, 1692, 1665, 1682, 1673, 286, 1326,
3341, 1652, 0, 416, 1638, 1623, 1640, 395, 1597, 1584,
1305, 1306, 1339, 1343, 3341, 1348, 1352, 1332, 1356, 3341,
1360, 1610, 1596, 1579, 1571, 1577, 1554, 1547, 1558, 1553,
1535, 1538, 1550, 1537, 1515, 1523, 1517, 1507, 1508, 1491,
1279, 1266, 1257, 1261, 1262, 1257, 1257, 1239, 1243, 1230,
1224, 1234, 1226, 1197, 1784, 572, 1180, 1189, 1172, 1166,
1791, 3243, 1815, 1187, 1189, 1171, 1178, 1167, 1156, 1172,
1152, 1151, 1135, 1127, 1133, 1134, 1138, 1134, 1106, 1109,
1117, 1115, 1104, 1078, 1085, 1072, 1063, 1041, 1824, 3243,
741, 1036, 1037, 1046, 766, 1062, 1828, 3243, 1832, 1836,
3243, 1840, 1845, 1850, 1819, 1854, 1864, 1858, 1868, 1891,
1403, 1390, 1379, 1382, 1375, 1371, 1372, 1353, 1357, 1344,
1342, 1352, 1323, 1298, 1784, 572, 1291, 1297, 1272, 1259,
1791, 3341, 1815, 1280, 1279, 1260, 1269, 1257, 1249, 1264,
1243, 1247, 1239, 1231, 1241, 1237, 1241, 1229, 1202, 1195,
1200, 420, 1194, 1177, 1194, 1184, 1176, 1151, 1824, 3341,
741, 1148, 1138, 1148, 766, 1170, 1828, 3341, 1832, 1836,
3341, 1840, 1845, 1850, 1819, 1854, 1864, 1858, 1868, 1891,
2068, 2084, 2088, 2093, 2101, 2102, 2103, 2112, 2108, 2123,
2124, 2128, 2129, 2143, 2148, 2149, 2154, 2150, 2162, 2166,
2168, 2173, 2174, 2184, 1053, 1052, 1018, 1029, 1012, 1003,
1014, 994, 999, 996, 988, 994, 995, 997, 995, 976,
973, 976, 973, 969, 951, 965, 956, 942, 921, 914,
924, 1528, 927, 939, 916, 932, 927, 918, 3243, 920,
914, 910, 907, 888, 884, 3243, 3243, 876, 875, 888,
863, 864, 872, 3243, 851, 844, 823, 3243, 825, 819,
1612, 802, 804, 2189, 2207, 2201, 2224, 2235, 2240, 2244,
2248, 2252, 2261, 2275, 2266, 2279, 2257, 2288, 2297, 2301,
2068, 2069, 2082, 2093, 2099, 2104, 2105, 2110, 2106, 2123,
2124, 2130, 2129, 2141, 2148, 2146, 2150, 2154, 2165, 2160,
2169, 2174, 2176, 2181, 1157, 1143, 1125, 1132, 1121, 1121,
1134, 1105, 1110, 1111, 1100, 1103, 1092, 1085, 1080, 1060,
1062, 1068, 423, 1066, 1051, 1063, 1052, 1040, 1003, 1002,
1006, 1528, 1002, 1009, 996, 1012, 1007, 432, 3341, 1006,
1001, 1000, 997, 977, 977, 3341, 3341, 968, 962, 976,
960, 961, 953, 964, 3341, 938, 943, 920, 3341, 924,
922, 1612, 907, 917, 2193, 2185, 2202, 2212, 2230, 2224,
2236, 2245, 2249, 2261, 2270, 2276, 2282, 2286, 2292, 2296,
2312, 2316, 2321, 2325, 2334, 2347, 2352, 2356, 2360, 2365,
2369, 2378, 2383, 2310, 2374, 2193, 2390, 2404, 2270, 2391,
2408, 2409, 2417, 2421, 2426, 2432, 2413, 2434, 2439, 2443,
2447, 2448, 2452, 2460, 2462, 2478, 2482, 2483, 2487, 2493,
2488, 2497, 2498, 801, 811, 797, 812, 802, 794, 777,
771, 764, 761, 736, 735, 732, 729, 744, 723, 725,
729, 708, 709, 682, 675, 674, 693, 692, 686, 3243,
3243, 669, 3243, 3243, 3243, 3243, 683, 669, 668, 656,
3243, 632, 630, 3243, 634, 628, 589, 596, 563, 3243,
603, 2506, 2531, 2537, 2546, 2550, 2554, 2558, 2562, 2568,
2303, 2310, 2319, 2327, 2331, 2337, 2352, 2358, 2362, 2368,
2372, 2376, 2380, 2386, 2393, 2345, 2243, 2191, 2399, 2411,
2403, 2398, 2417, 2419, 2434, 2436, 2442, 2423, 2453, 2454,
2458, 2459, 2469, 2464, 2473, 2475, 2499, 2480, 2481, 2495,
2500, 2508, 2514, 2519, 2521, 2523, 914, 922, 904, 920,
914, 458, 910, 907, 906, 901, 877, 877, 869, 859,
876, 857, 861, 845, 852, 830, 829, 810, 796, 796,
816, 814, 812, 3341, 3341, 787, 788, 3341, 3341, 3341,
3341, 777, 771, 764, 761, 3341, 742, 740, 746, 3341,
748, 739, 704, 712, 695, 3341, 734, 2533, 2547, 2556,
2542, 2560, 2569, 2578, 2573, 2582, 2587, 2593, 2606, 2618,
2624, 2629, 2633, 2640, 2644, 2649, 2655, 2667, 2671, 2680,
2688, 2693, 2698, 2675, 2694, 2706, 2583, 2660, 2702, 2710,
2708, 2714, 2715, 2719, 2733, 2745, 2749, 2750, 2732, 2741,
2754, 2768, 2758, 2769, 2784, 2775, 2785, 2789, 2791, 722,
711, 699, 682, 684, 692, 686, 684, 683, 657, 656,
651, 644, 630, 600, 608, 589, 3341, 3341, 3341, 609,
585, 3341, 3341, 3341, 3341, 596, 582, 586, 3341, 585,
574, 1734, 546, 573, 2793, 2802, 2806, 2810, 2824, 2828,
2837, 2841, 2845, 2849, 2855, 2861, 2865, 2872, 2876, 2883,
2572, 2581, 2585, 2596, 2605, 2609, 2616, 2620, 2624, 2629,
2640, 2644, 2651, 2657, 2662, 2663, 2667, 2668, 2523, 2589,
2679, 2681, 2687, 2693, 2702, 2706, 2707, 2712, 2718, 2720,
2724, 2726, 2730, 2732, 2740, 2745, 2751, 2760, 2765, 587,
586, 585, 557, 571, 566, 560, 551, 535, 535, 530,
501, 461, 465, 454, 3243, 3243, 3243, 472, 3243, 3243,
3243, 3243, 480, 477, 3243, 469, 470, 1734, 440, 468,
2767, 2771, 2776, 2785, 2791, 2798, 2809, 2813, 2818, 2822,
2831, 2836, 2840, 2849, 2853, 2826, 2844, 2857, 2861, 2859,
2866, 2867, 2871, 2877, 2892, 2875, 2894, 2905, 2911, 2912,
2888, 2889, 2895, 2896, 2900, 2902, 2906, 2907, 2911, 2913,
2926, 2937, 2941, 2946, 2947, 2953, 2959, 2960, 548, 539,
547, 535, 530, 506, 497, 1741, 465, 488, 479, 3341,
480, 3341, 3341, 445, 1916, 431, 1921, 2964, 2968, 2984,
2999, 3005, 3010, 3015, 3019, 3023, 3027, 2972, 3033, 3011,
3035, 3041, 3050, 3054, 3058, 3060, 3068, 465, 451, 447,
419, 1955, 3341, 413, 3341, 366, 3341, 2254, 352, 3076,
3081, 3093, 3099, 3109, 3114, 3118, 3072, 3119, 3094, 3103,
3124, 3130, 3136, 386, 337, 3341, 329, 3341, 3140, 3152,
3157, 3144, 3163, 3164, 258, 243, 3171, 3175, 165, 170,
444, 451, 447, 443, 444, 1741, 414, 435, 3243, 3243,
3243, 402, 1916, 386, 1921, 2917, 2928, 2932, 2936, 2948,
2952, 2959, 2963, 2969, 2942, 2953, 2970, 2975, 2983, 2987,
2989, 413, 367, 1955, 3243, 364, 3243, 2185, 349, 2994,
3011, 3020, 3025, 3029, 3005, 3035, 3039, 3041, 3045, 337,
329, 3243, 3053, 3047, 3059, 3051, 258, 243, 3063, 3078,
165, 170, 3084, 3093, 166, 191, 3099, 3103, 84, 3243,
3112, 3105, 3243, 3146, 3152, 3158, 3164, 3170, 3176, 3182,
3188, 3194, 3200, 3206, 3212, 3218, 3224, 3230, 54, 3236
3179, 3185, 166, 191, 3198, 3199, 84, 3341, 3210, 3191,
3341, 3244, 3250, 3256, 3262, 3268, 3274, 3280, 3286, 3292,
3298, 3304, 3310, 3316, 3322, 3328, 54, 3334
973, 1, 974, 975, 976, 976, 977, 977, 973, 9,
973, 11, 973, 13, 978, 978, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 979, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 980, 973, 981, 973, 973, 982,
981, 981, 981, 983, 973, 973, 983, 983, 984, 973,
973, 985, 973, 973, 973, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 43, 986, 985,
1011, 1, 1012, 1013, 1014, 1014, 1015, 1015, 1011, 9,
1011, 11, 1011, 13, 1016, 1016, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1017, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1018, 1011, 1019, 1011, 1011, 1020,
1019, 1019, 1019, 1021, 1011, 1011, 1021, 1021, 1022, 1011,
1011, 1023, 1011, 1011, 1011, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 43, 1024, 1023,
985, 985, 985, 985, 985, 985, 987, 973, 973, 973,
987, 987, 973, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 43, 988, 987, 987, 987, 987, 987, 987,
987, 973, 973, 973, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
989, 989, 973, 989, 43, 989, 989, 989, 989, 989,
990, 973, 973, 973, 973, 990, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
1023, 1023, 1023, 1023, 1023, 1023, 1025, 1011, 1011, 1011,
1025, 1025, 1011, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 43, 1026, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1011, 1011, 1011, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1011, 1027, 43, 1027, 1027, 1027, 1027, 1027,
1028, 1011, 1011, 1011, 1011, 1028, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
973, 43, 979, 973, 973, 973, 973, 973, 979, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 981, 973, 981, 973, 981, 981, 981, 981, 983,
983, 973, 983, 983, 983, 984, 973, 973, 973, 985,
985, 985, 973, 973, 973, 973, 973, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
973, 985, 98, 986, 986, 986, 985, 985, 985, 985,
985, 985, 985, 985, 987, 987, 987, 973, 973, 973,
973, 973, 987, 987, 987, 987, 987, 987, 987, 987,
1011, 43, 1017, 1011, 1011, 1011, 1011, 1011, 1017, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1019, 1011, 1019, 1011, 1019, 1019, 1019, 1019, 1021,
1021, 1011, 1021, 1021, 1021, 1022, 1011, 1011, 1011, 1023,
1023, 1023, 1011, 1011, 1011, 1011, 1011, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1011, 1023, 98, 1024, 1024, 1024, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1025, 1025, 1025, 1011, 1011, 1011,
1011, 1011, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 973, 973, 987, 133, 988,
988, 988, 987, 987, 987, 987, 987, 987, 987, 987,
973, 973, 973, 973, 973, 973, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 973,
973, 989, 165, 989, 989, 989, 989, 989, 989, 989,
990, 990, 990, 973, 973, 973, 973, 973, 990, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1011, 1011, 1025, 133, 1026,
1026, 1026, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1011, 1011, 1011, 1011, 1011, 1011, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1011,
1011, 1027, 165, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1028, 1028, 1028, 1011, 1011, 1011, 1011, 1011, 1028, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 981, 983, 983, 983, 973, 973, 985, 973,
973, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 986, 985, 985, 985,
985, 985, 985, 987, 973, 973, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 988, 979, 987, 987, 987, 987, 987, 987, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1019, 1021, 1021, 1021, 1011, 1011, 1023, 1011,
1011, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1024, 1023, 1023, 1023,
1023, 1023, 1023, 1025, 1011, 1011, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1026, 1017, 1025, 1025, 1025, 1025, 1025, 1025, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
990, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 981, 983, 973, 973, 983,
973, 973, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 987, 987, 987, 987, 987, 987, 987,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1028, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1019, 1021, 1011, 1011, 1021,
1011, 1011, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
989, 989, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 981, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1019, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 989, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 989, 989, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
981, 985, 985, 985, 985, 985, 985, 985, 985, 985,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1019, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1019, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 989,
989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
989, 989, 989, 989, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 981,
985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
985, 985, 985, 985, 985, 987, 987, 987, 987, 987,
987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
1023, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1027, 1027,
1027, 1027, 1027, 1027, 1027, 1027, 1027, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1025, 1025, 1025,
1025, 1025, 1025, 1025, 1025, 1025, 1025, 1027, 1027, 1027,
1027, 1027, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1025, 1025, 1025, 1025,
1025, 1025, 1025, 1027, 1027, 1011, 1011, 1011, 1023, 1023,
1023, 1025, 1025, 1025, 1027, 1011, 1023, 1025, 1027, 1011,
989, 989, 989, 989, 989, 989, 989, 973, 973, 973,
973, 973, 973, 973, 973, 985, 985, 985, 985, 985,
985, 985, 985, 987, 987, 987, 987, 987, 987, 987,
987, 989, 989, 989, 973, 973, 973, 973, 973, 985,
985, 985, 985, 985, 987, 987, 987, 987, 987, 989,
973, 973, 985, 985, 987, 987, 989, 973, 985, 987,
989, 973, 985, 987, 989, 973, 985, 987, 989, 973,
985, 987, 0, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973
1023, 1025, 1027, 1011, 1023, 1025, 1027, 1011, 1023, 1025,
0, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011
204, 242, 229, 286, 935, 242, 286, 241, 499, 241,
241, 249, 293, 241, 937, 241, 241, 936, 241, 368,
241, 241, 500, 515, 502, 250, 935, 242, 252, 205,
934, 206, 251, 933, 911, 287, 207, 208, 910, 242,
253, 241, 909, 241, 241, 242, 241, 932, 241, 241,
242, 241, 870, 241, 241, 241, 915, 241, 241, 912,
911, 241, 255, 241, 241, 256, 259, 258, 910, 257,
254, 909, 261, 242, 241, 908, 241, 241, 242, 907,
204, 242, 229, 286, 986, 242, 286, 241, 499, 241,
241, 249, 293, 241, 671, 241, 241, 762, 241, 368,
241, 241, 500, 515, 502, 250, 776, 242, 252, 205,
672, 206, 251, 763, 985, 287, 207, 208, 965, 242,
253, 241, 777, 241, 241, 242, 241, 984, 241, 241,
242, 241, 853, 241, 241, 241, 963, 241, 241, 967,
966, 241, 255, 241, 241, 256, 259, 258, 854, 257,
254, 965, 261, 242, 241, 964, 241, 241, 242, 963,
242, 865, 267, 275, 242, 275, 275, 241, 242, 241,
241, 903, 242, 273, 244, 245, 273, 241, 902, 241,
241, 242, 862, 241, 272, 241, 241, 241, 242, 241,
241, 861, 552, 551, 277, 276, 551, 860, 241, 242,
241, 241, 859, 901, 241, 246, 241, 241, 260, 242,
241, 286, 241, 241, 286, 242, 857, 856, 855, 242,
242, 932, 267, 275, 242, 275, 275, 241, 242, 241,
241, 960, 242, 273, 244, 245, 273, 241, 930, 241,
241, 242, 959, 241, 272, 241, 241, 241, 242, 241,
241, 958, 552, 551, 277, 276, 551, 884, 241, 242,
241, 241, 937, 934, 241, 246, 241, 241, 260, 242,
241, 286, 241, 241, 286, 242, 933, 932, 931, 242,
286, 294, 868, 286, 867, 291, 286, 284, 286, 286,
297, 286, 295, 291, 866, 865, 864, 287, 298, 296,
286, 286, 303, 286, 286, 863, 287, 287, 287, 299,
286, 286, 287, 286, 286, 308, 300, 862, 287, 301,
287, 304, 306, 302, 286, 286, 310, 286, 286, 861,
860, 286, 287, 287, 286, 305, 313, 286, 286, 307,
286, 286, 287, 287, 859, 858, 309, 857, 321, 311,
286, 294, 928, 286, 927, 291, 286, 284, 286, 286,
297, 286, 295, 291, 926, 925, 924, 287, 298, 296,
286, 286, 303, 286, 286, 879, 287, 287, 287, 299,
286, 286, 287, 286, 286, 308, 300, 923, 287, 301,
287, 304, 306, 302, 286, 286, 310, 286, 286, 922,
921, 286, 287, 287, 286, 305, 313, 286, 286, 307,
286, 286, 287, 287, 875, 874, 309, 873, 321, 311,
209, 321, 314, 856, 855, 209, 287, 287, 854, 286,
853, 312, 286, 287, 315, 316, 317, 315, 286, 287,
287, 286, 852, 318, 319, 289, 290, 319, 286, 323,
322, 286, 286, 851, 286, 286, 286, 286, 850, 286,
784, 287, 551, 305, 286, 551, 287, 286, 849, 848,
287, 331, 332, 333, 331, 781, 291, 326, 372, 847,
287, 372, 846, 845, 287, 844, 287, 681, 287, 328,
681, 329, 776, 324, 325, 775, 287, 327, 335, 336,
335, 335, 774, 334, 363, 332, 333, 363, 773, 552,
209, 321, 314, 872, 920, 209, 287, 287, 919, 286,
869, 312, 286, 287, 315, 316, 317, 315, 286, 287,
287, 286, 868, 318, 319, 289, 290, 319, 286, 323,
322, 286, 286, 867, 286, 286, 286, 286, 884, 286,
883, 287, 551, 305, 286, 551, 287, 286, 882, 881,
287, 331, 332, 333, 331, 880, 291, 326, 372, 879,
287, 372, 878, 877, 287, 876, 287, 682, 287, 328,
682, 329, 875, 324, 325, 874, 287, 327, 335, 336,
335, 335, 873, 334, 363, 332, 333, 363, 872, 552,
379, 380, 381, 379, 416, 417, 418, 416, 843, 241,
334, 241, 241, 771, 682, 241, 334, 241, 241, 419,
420, 419, 419, 770, 377, 842, 286, 841, 377, 286,
840, 791, 373, 243, 244, 245, 243, 245, 244, 245,
379, 380, 381, 379, 416, 417, 418, 416, 871, 241,
334, 241, 241, 870, 683, 241, 334, 241, 241, 419,
420, 419, 419, 869, 377, 868, 286, 867, 377, 286,
866, 865, 373, 243, 244, 245, 243, 245, 244, 245,
241, 241, 427, 242, 287, 780, 779, 429, 241, 242,
241, 241, 778, 241, 242, 241, 241, 777, 776, 431,
241, 775, 241, 241, 242, 774, 241, 430, 241, 241,
242, 773, 772, 432, 241, 433, 241, 241, 771, 241,
242, 241, 241, 770, 769, 242, 241, 434, 241, 241,
435, 241, 242, 241, 241, 768, 767, 436, 242, 766,
765, 241, 439, 241, 241, 438, 242, 764, 763, 437,
241, 242, 241, 241, 440, 762, 674, 241, 242, 241,
241, 761, 241, 242, 241, 241, 760, 759, 241, 442,
241, 241, 758, 242, 270, 271, 270, 270, 757, 443,
241, 241, 427, 242, 287, 856, 855, 429, 241, 242,
241, 241, 781, 241, 242, 241, 241, 780, 779, 431,
241, 778, 241, 241, 242, 775, 241, 430, 241, 241,
242, 774, 852, 432, 241, 433, 241, 241, 851, 241,
242, 241, 241, 850, 797, 242, 241, 434, 241, 241,
435, 241, 242, 241, 241, 796, 795, 436, 242, 794,
793, 241, 439, 241, 241, 438, 242, 792, 791, 437,
241, 242, 241, 241, 440, 790, 789, 241, 242, 241,
241, 788, 241, 242, 241, 241, 787, 786, 241, 442,
241, 241, 785, 242, 270, 271, 270, 270, 784, 443,
441, 241, 242, 241, 241, 756, 667, 444, 666, 242,
445, 755, 754, 275, 242, 275, 275, 753, 752, 275,
242, 275, 275, 751, 750, 659, 242, 447, 420, 447,
447, 749, 241, 242, 241, 241, 241, 446, 241, 241,
241, 748, 241, 241, 241, 276, 241, 241, 747, 746,
441, 241, 242, 241, 241, 783, 782, 444, 781, 242,
445, 780, 779, 275, 242, 275, 275, 778, 775, 275,
242, 275, 275, 774, 773, 772, 242, 447, 420, 447,
447, 771, 241, 242, 241, 241, 241, 446, 241, 241,
241, 770, 241, 241, 241, 276, 241, 241, 769, 768,
241, 241, 448, 434, 242, 449, 745, 241, 242, 241,
241, 744, 242, 280, 683, 450, 242, 454, 455, 456,
454, 680, 242, 679, 678, 286, 242, 677, 286, 676,
242, 675, 286, 281, 293, 286, 674, 452, 453, 242,
241, 241, 448, 434, 242, 449, 767, 241, 242, 241,
241, 766, 242, 280, 675, 450, 242, 454, 455, 456,
454, 765, 242, 764, 761, 286, 242, 760, 286, 759,
242, 667, 286, 281, 293, 286, 666, 452, 453, 242,
286, 672, 286, 286, 287, 286, 458, 286, 286, 671,
286, 286, 291, 670, 669, 668, 291, 463, 459, 461,
286, 286, 464, 286, 286, 667, 460, 287, 287, 666,
665, 664, 287, 462, 287, 286, 663, 662, 286, 287,
286, 757, 286, 286, 287, 286, 458, 286, 286, 756,
286, 286, 291, 755, 754, 753, 291, 463, 459, 461,
286, 286, 464, 286, 286, 659, 460, 287, 287, 752,
751, 750, 287, 462, 287, 286, 749, 748, 286, 287,
286, 286, 287, 287, 286, 661, 286, 286, 286, 286,
467, 286, 660, 659, 658, 474, 470, 287, 469, 286,
471, 475, 286, 287, 287, 473, 657, 656, 472, 287,
286, 286, 287, 287, 286, 747, 286, 286, 286, 286,
467, 286, 684, 681, 680, 474, 470, 287, 469, 286,
471, 475, 286, 287, 287, 473, 679, 678, 472, 287,
287, 286, 655, 654, 286, 653, 287, 652, 287, 286,
287, 651, 286, 477, 286, 286, 515, 286, 286, 476,
650, 287, 315, 316, 317, 315, 478, 317, 316, 317,
317, 649, 286, 287, 479, 286, 321, 480, 209, 321,
648, 287, 321, 209, 209, 321, 287, 287, 286, 209,
481, 286, 647, 646, 287, 482, 455, 483, 482, 645,
644, 643, 209, 286, 287, 485, 286, 286, 322, 286,
286, 642, 286, 641, 322, 640, 286, 639, 487, 286,
287, 286, 286, 486, 286, 286, 638, 322, 637, 484,
469, 636, 326, 635, 335, 287, 335, 335, 634, 287,
287, 286, 677, 676, 286, 675, 287, 674, 287, 286,
287, 673, 286, 477, 286, 286, 670, 286, 286, 476,
669, 287, 315, 316, 317, 315, 478, 317, 316, 317,
317, 668, 286, 287, 479, 286, 321, 480, 209, 321,
667, 287, 321, 209, 209, 321, 287, 287, 286, 209,
481, 286, 666, 665, 287, 482, 455, 483, 482, 664,
663, 662, 209, 286, 287, 485, 286, 286, 322, 286,
286, 661, 286, 660, 322, 659, 286, 658, 487, 286,
287, 286, 286, 486, 286, 286, 657, 322, 656, 484,
469, 655, 326, 654, 335, 287, 335, 335, 653, 287,
633, 287, 331, 332, 333, 331, 372, 372, 287, 372,
372, 632, 327, 287, 287, 488, 335, 332, 335, 335,
360, 361, 360, 360, 631, 489, 334, 360, 361, 360,
360, 630, 629, 378, 334, 378, 378, 628, 373, 373,
652, 287, 331, 332, 333, 331, 372, 372, 287, 372,
372, 651, 327, 287, 287, 488, 335, 332, 335, 335,
360, 361, 360, 360, 515, 489, 334, 360, 361, 360,
360, 650, 649, 378, 334, 378, 378, 648, 373, 373,
627, 626, 373, 625, 556, 555, 377, 557, 558, 559,
557, 377, 560, 561, 562, 560, 554, 407, 553, 373,
416, 417, 418, 416, 418, 417, 418, 418, 548, 419,
647, 646, 373, 645, 644, 643, 377, 557, 558, 559,
557, 377, 560, 561, 562, 560, 642, 641, 640, 373,
416, 417, 418, 416, 418, 417, 418, 418, 639, 419,
420, 419, 419, 421, 271, 421, 421, 241, 547, 241,
241, 241, 546, 241, 241, 545, 544, 241, 563, 241,
241, 241, 543, 241, 241, 414, 456, 455, 456, 456,
414, 242, 542, 541, 241, 564, 241, 241, 231, 242,
540, 539, 565, 242, 241, 538, 241, 241, 537, 242,
566, 567, 241, 242, 241, 241, 241, 536, 241, 241,
286, 535, 241, 286, 241, 241, 242, 570, 241, 568,
241, 241, 609, 534, 533, 569, 242, 571, 241, 532,
241, 241, 531, 241, 242, 241, 241, 241, 242, 241,
241, 530, 287, 529, 242, 528, 572, 527, 574, 526,
420, 419, 419, 421, 271, 421, 421, 241, 638, 241,
241, 241, 637, 241, 241, 636, 635, 241, 563, 241,
241, 241, 634, 241, 241, 414, 456, 455, 456, 456,
414, 242, 633, 632, 241, 564, 241, 241, 231, 242,
631, 630, 565, 242, 241, 629, 241, 241, 628, 242,
566, 567, 241, 242, 241, 241, 241, 627, 241, 241,
286, 626, 241, 286, 241, 241, 242, 570, 241, 568,
241, 241, 609, 625, 556, 569, 242, 571, 241, 555,
241, 241, 554, 241, 242, 241, 241, 241, 242, 241,
241, 407, 287, 553, 242, 548, 572, 547, 574, 546,
242, 525, 573, 241, 575, 241, 241, 524, 520, 241,
242, 241, 241, 519, 241, 242, 241, 241, 241, 242,
241, 241, 518, 517, 577, 241, 578, 241, 241, 681,
516, 576, 681, 579, 241, 242, 241, 241, 580, 514,
241, 242, 241, 241, 511, 241, 242, 241, 241, 286,
242, 241, 286, 241, 241, 581, 582, 242, 241, 510,
241, 241, 509, 508, 507, 241, 242, 241, 241, 506,
505, 504, 242, 583, 596, 585, 682, 242, 586, 584,
503, 287, 241, 242, 241, 241, 447, 420, 447, 447,
242, 588, 550, 588, 588, 502, 589, 242, 241, 589,
242, 545, 573, 241, 575, 241, 241, 544, 543, 241,
242, 241, 241, 542, 241, 242, 241, 241, 241, 242,
241, 241, 541, 540, 577, 241, 578, 241, 241, 682,
539, 576, 682, 579, 241, 242, 241, 241, 580, 538,
241, 242, 241, 241, 537, 241, 242, 241, 241, 286,
242, 241, 286, 241, 241, 581, 582, 242, 241, 536,
241, 241, 535, 534, 533, 241, 242, 241, 241, 532,
531, 530, 242, 583, 596, 585, 683, 242, 586, 584,
529, 287, 241, 242, 241, 241, 447, 420, 447, 447,
242, 588, 550, 588, 588, 528, 589, 242, 241, 589,
241, 501, 241, 241, 241, 498, 241, 241, 241, 286,
241, 241, 286, 681, 242, 587, 681, 241, 276, 241,
241, 497, 496, 242, 454, 455, 456, 454, 242, 493,
448, 286, 242, 595, 286, 286, 242, 492, 286, 591,
241, 527, 241, 241, 241, 526, 241, 241, 241, 286,
241, 241, 286, 682, 242, 587, 682, 241, 276, 241,
241, 525, 524, 242, 454, 455, 456, 454, 242, 520,
448, 286, 242, 595, 286, 286, 242, 519, 286, 591,
286, 286, 491, 286, 286, 286, 287, 593, 286, 490,
682, 598, 601, 287, 597, 286, 286, 287, 286, 286,
599, 286, 338, 600, 286, 286, 287, 287, 286, 604,
602, 286, 287, 287, 286, 286, 605, 287, 286, 237,
286, 415, 606, 286, 603, 414, 231, 287, 287, 286,
286, 286, 518, 286, 286, 286, 287, 593, 286, 517,
683, 598, 601, 287, 597, 286, 286, 287, 286, 286,
599, 286, 516, 600, 286, 286, 287, 287, 286, 604,
602, 286, 287, 287, 286, 286, 605, 287, 286, 514,
286, 511, 606, 286, 603, 510, 509, 287, 287, 286,
608, 286, 286, 287, 286, 610, 227, 287, 286, 607,
413, 286, 611, 287, 617, 286, 286, 287, 286, 286,
286, 286, 287, 286, 286, 286, 223, 218, 286, 612,
412, 287, 613, 287, 411, 913, 410, 616, 913, 409,
287, 408, 913, 614, 217, 913, 212, 287, 287, 615,
211, 620, 287, 287, 620, 406, 403, 287, 618, 482,
455, 483, 482, 402, 401, 400, 209, 483, 455, 483,
608, 286, 286, 287, 286, 610, 508, 287, 286, 607,
507, 286, 611, 287, 617, 286, 286, 287, 286, 286,
286, 286, 287, 286, 286, 286, 506, 505, 286, 612,
504, 287, 613, 287, 503, 935, 502, 616, 935, 501,
287, 498, 935, 614, 497, 935, 496, 287, 287, 615,
493, 620, 287, 287, 620, 492, 491, 287, 618, 482,
455, 483, 482, 490, 338, 237, 209, 483, 455, 483,
560, 562, 561, 562, 562, 383, 241, 382, 241, 241,
686, 241, 242, 241, 241, 241, 179, 241, 241, 241,
366, 241, 241, 684, 685, 241, 365, 241, 241, 241,
362, 241, 241, 687, 359, 358, 355, 231, 242, 690,
354, 286, 353, 242, 286, 231, 689, 242, 348, 344,
343, 242, 241, 688, 241, 241, 241, 242, 241, 241,
560, 562, 561, 562, 562, 217, 241, 212, 241, 241,
687, 241, 242, 241, 241, 241, 211, 241, 241, 241,
406, 241, 241, 685, 686, 241, 403, 241, 241, 241,
402, 241, 241, 688, 401, 400, 399, 231, 242, 691,
398, 286, 397, 242, 286, 231, 690, 242, 396, 395,
394, 242, 241, 689, 241, 241, 241, 242, 241, 241,
342, 242, 241, 339, 241, 241, 338, 241, 338, 241,
241, 716, 241, 287, 241, 241, 239, 913, 235, 692,
913, 691, 938, 693, 242, 938, 232, 231, 242, 695,
241, 227, 241, 241, 242, 694, 223, 218, 241, 242,
241, 241, 217, 212, 242, 696, 211, 241, 697, 241,
241, 201, 241, 200, 241, 241, 938, 698, 241, 938,
241, 241, 242, 241, 914, 241, 241, 199, 286, 939,
242, 286, 241, 286, 241, 241, 286, 196, 701, 242,
699, 715, 700, 195, 242, 702, 241, 194, 241, 241,
242, 241, 189, 241, 241, 242, 241, 185, 241, 241,
393, 242, 241, 390, 241, 241, 389, 241, 388, 241,
241, 718, 241, 287, 241, 241, 385, 935, 384, 693,
935, 692, 968, 694, 242, 968, 383, 382, 242, 696,
241, 179, 241, 241, 242, 695, 366, 365, 241, 242,
241, 241, 362, 359, 242, 697, 358, 241, 698, 241,
241, 355, 241, 354, 241, 241, 968, 699, 241, 968,
241, 241, 242, 241, 936, 241, 241, 353, 286, 969,
242, 286, 241, 286, 241, 241, 286, 348, 702, 242,
700, 717, 701, 722, 242, 703, 241, 344, 241, 241,
242, 241, 343, 241, 241, 242, 241, 342, 241, 241,
287, 718, 703, 939, 242, 287, 705, 241, 184, 241,
241, 241, 183, 241, 241, 180, 179, 179, 242, 241,
704, 241, 241, 242, 589, 706, 241, 589, 242, 588,
550, 588, 588, 178, 973, 241, 707, 241, 241, 242,
973, 973, 241, 242, 241, 241, 241, 286, 241, 241,
286, 242, 712, 973, 241, 712, 242, 973, 973, 286,
973, 242, 286, 286, 708, 717, 286, 242, 973, 286,
973, 590, 286, 973, 242, 973, 714, 973, 242, 287,
711, 973, 709, 286, 242, 286, 286, 710, 286, 286,
719, 287, 286, 720, 286, 287, 973, 286, 721, 713,
287, 704, 705, 969, 242, 287, 707, 241, 339, 241,
241, 241, 338, 241, 241, 338, 239, 235, 242, 241,
706, 241, 241, 242, 589, 708, 241, 589, 242, 588,
550, 588, 588, 232, 231, 241, 709, 241, 241, 242,
227, 223, 241, 242, 241, 241, 241, 286, 241, 241,
286, 242, 714, 218, 241, 714, 242, 286, 217, 286,
286, 242, 286, 286, 710, 719, 286, 242, 212, 286,
286, 590, 286, 286, 242, 211, 716, 201, 242, 287,
713, 200, 711, 286, 242, 720, 286, 712, 199, 287,
721, 287, 196, 724, 286, 287, 195, 286, 723, 715,
973, 287, 286, 286, 286, 286, 286, 286, 722, 286,
723, 973, 286, 286, 727, 287, 286, 287, 726, 725,
973, 287, 724, 728, 286, 286, 287, 286, 286, 286,
286, 973, 286, 286, 287, 287, 287, 729, 973, 973,
731, 287, 732, 973, 286, 287, 733, 286, 730, 286,
286, 286, 286, 286, 286, 286, 287, 287, 286, 735,
973, 287, 287, 619, 550, 549, 619, 620, 736, 286,
620, 973, 286, 734, 286, 286, 287, 286, 286, 973,
737, 287, 287, 287, 973, 742, 938, 287, 742, 938,
241, 973, 241, 241, 286, 287, 738, 286, 973, 287,
286, 287, 287, 286, 725, 286, 286, 286, 286, 286,
286, 286, 194, 189, 286, 287, 729, 727, 185, 184,
728, 730, 726, 183, 286, 286, 287, 286, 286, 180,
286, 286, 287, 286, 286, 731, 179, 287, 287, 287,
733, 179, 286, 287, 734, 286, 736, 286, 732, 286,
286, 286, 286, 178, 286, 286, 287, 287, 286, 738,
735, 620, 287, 287, 620, 739, 619, 550, 549, 619,
286, 737, 1011, 286, 287, 286, 740, 286, 286, 287,
286, 287, 745, 287, 1011, 745, 241, 287, 241, 241,
1011, 1011, 286, 287, 241, 286, 241, 241, 287, 1011,
973, 287, 241, 973, 241, 241, 287, 287, 241, 741,
241, 241, 973, 973, 621, 973, 739, 287, 792, 740,
973, 818, 242, 793, 973, 241, 287, 241, 241, 794,
973, 973, 743, 939, 242, 795, 241, 973, 241, 241,
242, 241, 973, 241, 241, 241, 796, 241, 241, 241,
973, 241, 241, 241, 797, 241, 241, 242, 241, 798,
241, 241, 241, 799, 241, 241, 973, 241, 242, 241,
241, 286, 800, 242, 286, 973, 241, 242, 241, 241,
241, 242, 241, 241, 821, 242, 801, 973, 973, 241,
242, 241, 241, 973, 242, 802, 973, 973, 241, 242,
741, 799, 287, 241, 1011, 241, 241, 287, 621, 287,
1011, 744, 1011, 241, 287, 241, 241, 742, 242, 826,
743, 1011, 798, 801, 287, 241, 242, 241, 241, 746,
800, 241, 1011, 241, 241, 242, 1011, 241, 803, 241,
241, 802, 1011, 1011, 286, 242, 241, 286, 241, 241,
241, 1011, 241, 241, 804, 968, 805, 242, 968, 825,
806, 1011, 241, 242, 241, 241, 1011, 1011, 1011, 242,
1011, 241, 807, 241, 241, 1011, 287, 241, 242, 241,
241, 808, 242, 241, 1011, 241, 241, 241, 1011, 241,
241, 1011, 1011, 241, 242, 241, 241, 241, 1011, 241,
241, 241, 241, 287, 241, 241, 973, 803, 242, 973,
973, 286, 242, 241, 286, 241, 241, 241, 973, 241,
241, 242, 241, 806, 241, 241, 241, 804, 241, 241,
242, 805, 973, 973, 242, 241, 809, 241, 241, 816,
973, 973, 807, 287, 808, 242, 973, 973, 241, 242,
241, 241, 973, 241, 242, 241, 241, 241, 242, 241,
241, 241, 973, 241, 241, 973, 241, 242, 241, 241,
241, 973, 241, 241, 973, 286, 811, 810, 286, 712,
242, 241, 712, 973, 241, 242, 241, 241, 973, 242,
817, 286, 286, 242, 286, 286, 812, 973, 242, 973,
241, 1011, 969, 242, 241, 809, 241, 241, 1011, 242,
810, 241, 1011, 241, 241, 242, 1011, 1011, 1011, 242,
241, 813, 241, 241, 1011, 242, 811, 1011, 241, 242,
241, 241, 241, 812, 241, 241, 242, 1011, 241, 1011,
241, 241, 1011, 242, 1011, 814, 286, 815, 817, 286,
1011, 1011, 242, 241, 816, 241, 241, 1011, 1011, 241,
242, 241, 241, 241, 242, 241, 241, 1011, 1011, 241,
242, 241, 241, 241, 824, 241, 241, 241, 287, 241,
241, 241, 1011, 241, 241, 242, 819, 714, 818, 241,
714, 242, 1011, 1011, 241, 242, 241, 241, 1011, 286,
813, 819, 242, 814, 973, 286, 973, 287, 286, 286,
286, 242, 286, 286, 286, 820, 242, 286, 286, 822,
823, 286, 286, 287, 287, 286, 713, 286, 824, 973,
286, 815, 825, 286, 973, 286, 286, 287, 286, 973,
286, 287, 287, 286, 286, 973, 287, 286, 286, 286,
287, 286, 286, 286, 287, 826, 286, 973, 830, 287,
827, 286, 973, 286, 286, 287, 286, 287, 973, 828,
973, 833, 287, 829, 831, 832, 287, 973, 973, 286,
287, 287, 286, 286, 286, 287, 286, 286, 286, 286,
973, 286, 286, 287, 286, 287, 973, 286, 742, 286,
286, 242, 286, 286, 286, 242, 1011, 286, 820, 242,
827, 821, 286, 242, 822, 286, 1011, 829, 286, 242,
286, 286, 828, 286, 286, 1011, 242, 286, 831, 1011,
832, 287, 287, 830, 715, 286, 287, 286, 286, 1011,
286, 823, 1011, 286, 287, 833, 286, 834, 1011, 1011,
287, 836, 287, 1011, 286, 286, 287, 286, 286, 286,
286, 1011, 286, 286, 1011, 286, 1011, 287, 286, 287,
286, 835, 1011, 286, 286, 287, 286, 286, 1011, 286,
839, 286, 286, 1011, 286, 286, 287, 287, 837, 838,
840, 287, 287, 841, 1011, 1011, 286, 287, 842, 286,
286, 286, 287, 286, 286, 1011, 287, 1011, 287, 286,
843, 844, 286, 287, 287, 286, 1011, 1011, 286, 845,
286, 1011, 745, 286, 286, 745, 1011, 286, 287, 1011,
1011, 1011, 287, 287, 241, 1011, 241, 241, 1011, 1011,
846, 287, 1011, 241, 885, 241, 241, 287, 241, 847,
241, 241, 287, 848, 287, 1011, 287, 241, 886, 241,
241, 241, 1011, 241, 241, 1011, 242, 887, 1011, 746,
241, 849, 241, 241, 241, 242, 241, 241, 1011, 241,
242, 241, 241, 241, 286, 241, 241, 286, 241, 242,
241, 241, 1011, 242, 241, 888, 241, 241, 889, 1011,
973, 742, 286, 973, 973, 973, 835, 241, 834, 241,
241, 287, 973, 973, 973, 287, 287, 871, 973, 973,
287, 287, 838, 836, 286, 973, 287, 286, 837, 973,
287, 287, 241, 973, 241, 241, 973, 973, 241, 242,
241, 241, 872, 973, 973, 743, 839, 241, 873, 241,
241, 241, 973, 241, 241, 241, 287, 241, 241, 241,
973, 241, 241, 241, 242, 241, 241, 973, 973, 241,
242, 241, 241, 241, 973, 241, 241, 973, 973, 242,
874, 973, 241, 242, 241, 241, 241, 242, 241, 241,
286, 242, 875, 286, 973, 242, 876, 241, 973, 241,
1011, 1011, 242, 1011, 1011, 1011, 242, 241, 1011, 241,
241, 242, 1011, 1011, 1011, 242, 287, 890, 1011, 241,
242, 241, 241, 1011, 1011, 241, 242, 241, 241, 891,
241, 1011, 241, 241, 241, 892, 241, 241, 1011, 242,
893, 241, 1011, 241, 241, 241, 1011, 241, 241, 1011,
241, 242, 241, 241, 1011, 1011, 241, 242, 241, 241,
1011, 286, 242, 894, 286, 896, 242, 895, 241, 1011,
241, 241, 241, 242, 241, 241, 286, 242, 897, 286,
1011, 241, 242, 241, 241, 1011, 902, 898, 242, 241,
1011, 241, 241, 287, 241, 286, 241, 241, 286, 241,
241, 242, 973, 973, 973, 242, 241, 877, 241, 241,
241, 973, 241, 241, 242, 973, 878, 241, 242, 241,
241, 241, 287, 241, 241, 241, 973, 241, 241, 242,
241, 973, 241, 241, 973, 973, 880, 973, 242, 879,
881, 241, 242, 241, 241, 241, 973, 241, 241, 242,
973, 973, 241, 242, 241, 241, 882, 242, 241, 973,
241, 241, 242, 241, 286, 241, 241, 286, 286, 286,
973, 286, 286, 242, 886, 973, 973, 242, 887, 888,
286, 973, 286, 286, 242, 286, 973, 884, 286, 883,
242, 286, 973, 973, 286, 242, 287, 286, 973, 973,
242, 241, 241, 286, 242, 903, 286, 286, 287, 286,
286, 286, 286, 242, 286, 286, 286, 904, 286, 286,
286, 242, 1011, 286, 900, 899, 242, 287, 905, 1011,
906, 242, 1011, 286, 286, 287, 286, 286, 901, 287,
1011, 287, 286, 287, 907, 286, 286, 287, 287, 286,
286, 286, 287, 286, 286, 286, 908, 1011, 286, 286,
909, 910, 286, 1011, 911, 287, 287, 1011, 1011, 286,
286, 1011, 286, 286, 287, 1011, 286, 912, 287, 286,
914, 1011, 287, 287, 913, 286, 286, 287, 286, 286,
286, 287, 286, 286, 241, 286, 241, 241, 1011, 1011,
287, 287, 885, 286, 973, 889, 286, 286, 286, 973,
286, 286, 287, 286, 287, 973, 286, 890, 891, 286,
287, 286, 286, 892, 286, 286, 287, 286, 286, 893,
286, 286, 973, 286, 286, 287, 286, 973, 973, 287,
287, 286, 895, 896, 286, 287, 286, 894, 973, 286,
973, 287, 286, 287, 973, 286, 897, 287, 973, 287,
973, 286, 973, 287, 286, 287, 286, 973, 241, 286,
241, 241, 241, 287, 241, 241, 973, 241, 287, 241,
241, 973, 973, 973, 287, 973, 241, 899, 241, 241,
898, 973, 241, 287, 241, 241, 973, 973, 287, 241,
915, 287, 287, 241, 1011, 241, 241, 241, 287, 241,
241, 241, 1011, 241, 241, 1011, 1011, 287, 287, 1011,
916, 917, 287, 1011, 287, 241, 242, 241, 241, 241,
1011, 241, 241, 938, 918, 242, 1011, 1011, 241, 242,
241, 241, 241, 242, 241, 241, 241, 939, 241, 241,
241, 1011, 241, 241, 1011, 1011, 241, 242, 241, 241,
940, 242, 241, 1011, 241, 241, 241, 1011, 241, 241,
242, 941, 942, 241, 242, 241, 241, 241, 242, 241,
241, 1011, 242, 943, 945, 944, 241, 945, 242, 241,
286, 241, 241, 286, 242, 1011, 286, 286, 242, 286,
242, 241, 241, 973, 242, 900, 973, 973, 916, 242,
241, 973, 241, 241, 241, 973, 241, 241, 242, 241,
973, 241, 241, 241, 242, 241, 241, 286, 973, 917,
286, 242, 241, 918, 241, 241, 973, 241, 973, 241,
241, 241, 242, 241, 241, 286, 242, 919, 286, 920,
921, 242, 241, 921, 241, 242, 241, 241, 286, 287,
286, 286, 286, 286, 242, 286, 973, 286, 286, 242,
286, 286, 286, 242, 973, 286, 286, 287, 286, 286,
973, 286, 242, 973, 924, 973, 242, 973, 925, 923,
287, 973, 287, 286, 287, 286, 286, 922, 286, 287,
286, 286, 1011, 286, 286, 242, 286, 286, 286, 242,
286, 286, 286, 1011, 286, 286, 242, 286, 1011, 1011,
1011, 242, 287, 948, 947, 949, 1011, 286, 287, 287,
286, 946, 1011, 287, 1011, 287, 1011, 950, 286, 287,
287, 286, 286, 1011, 287, 286, 287, 286, 286, 1011,
286, 286, 952, 951, 286, 1011, 1011, 286, 953, 287,
955, 286, 954, 955, 286, 241, 1011, 241, 241, 241,
287, 241, 241, 286, 287, 970, 286, 1011, 1011, 287,
287, 1011, 1011, 977, 971, 241, 287, 241, 241, 1011,
1011, 1011, 287, 287, 1011, 1011, 957, 242, 1011, 1011,
287, 973, 973, 926, 287, 927, 286, 973, 287, 286,
287, 973, 929, 286, 928, 929, 286, 973, 241, 973,
241, 241, 973, 973, 973, 287, 973, 287, 940, 241,
973, 241, 241, 241, 973, 241, 241, 241, 287, 241,
241, 973, 973, 286, 287, 287, 286, 973, 931, 241,
242, 241, 241, 921, 286, 241, 921, 286, 973, 930,
241, 242, 241, 241, 943, 242, 241, 943, 973, 242,
286, 286, 973, 286, 286, 287, 286, 973, 973, 286,
945, 242, 973, 941, 929, 242, 287, 929, 286, 973,
948, 286, 242, 948, 973, 241, 242, 241, 241, 973,
241, 242, 241, 241, 1011, 287, 241, 956, 241, 241,
972, 241, 286, 241, 241, 286, 241, 242, 241, 241,
945, 1011, 241, 945, 241, 1011, 241, 241, 975, 1011,
241, 975, 242, 1011, 286, 1011, 286, 286, 242, 286,
1011, 1011, 286, 242, 287, 286, 979, 1011, 242, 978,
973, 286, 242, 1011, 286, 286, 242, 1011, 286, 955,
242, 286, 955, 1011, 286, 1011, 287, 946, 287, 982,
1011, 974, 982, 286, 287, 976, 286, 241, 1011, 241,
241, 1011, 241, 287, 241, 241, 1011, 287, 1011, 980,
1011, 287, 989, 287, 241, 286, 241, 241, 286, 1011,
922, 973, 287, 287, 973, 973, 286, 942, 287, 286,
946, 944, 241, 973, 241, 241, 287, 973, 973, 973,
287, 241, 287, 241, 241, 973, 943, 242, 241, 943,
241, 930, 241, 241, 973, 947, 286, 949, 287, 286,
286, 973, 948, 286, 242, 948, 286, 953, 241, 286,
241, 241, 286, 242, 241, 286, 241, 241, 242, 973,
286, 973, 242, 286, 241, 973, 241, 241, 287, 973,
973, 955, 287, 944, 287, 973, 973, 954, 287, 286,
242, 973, 286, 973, 287, 241, 242, 241, 241, 949,
973, 973, 287, 956, 286, 959, 242, 286, 973, 973,
241, 287, 241, 241, 286, 287, 956, 286, 981, 242,
241, 1011, 241, 241, 242, 975, 983, 241, 975, 241,
286, 241, 241, 286, 1011, 286, 242, 287, 286, 1011,
992, 982, 242, 1011, 982, 990, 287, 286, 1011, 993,
286, 241, 242, 241, 241, 286, 1011, 242, 286, 1011,
1011, 242, 287, 241, 1011, 241, 241, 287, 241, 1011,
241, 241, 976, 287, 286, 286, 991, 286, 286, 287,
1011, 1011, 241, 242, 241, 241, 286, 287, 983, 286,
241, 1011, 241, 241, 994, 242, 286, 1011, 1011, 286,
242, 1011, 286, 1011, 997, 286, 287, 287, 1011, 241,
241, 960, 241, 241, 286, 973, 286, 286, 963, 286,
971, 287, 973, 241, 972, 241, 241, 242, 973, 973,
973, 973, 967, 964, 973, 973, 287, 973, 973, 973,
973, 968, 242, 973, 973, 973, 287, 973, 287, 973,
973, 973, 973, 973, 973, 242, 52, 52, 52, 52,
52, 52, 57, 57, 57, 57, 57, 57, 64, 64,
64, 64, 64, 64, 69, 69, 69, 69, 69, 69,
171, 171, 171, 171, 171, 171, 209, 209, 973, 209,
209, 209, 219, 219, 219, 219, 219, 219, 222, 973,
973, 973, 222, 222, 224, 224, 224, 224, 224, 224,
286, 241, 241, 286, 242, 998, 1011, 1011, 287, 1009,
1010, 241, 242, 241, 241, 1011, 1001, 1005, 287, 1011,
1002, 1011, 1011, 1006, 287, 1011, 1011, 1011, 1011, 1011,
1011, 242, 287, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 242, 52, 52, 52, 52, 52, 52,
57, 57, 57, 57, 57, 57, 64, 64, 64, 64,
64, 64, 69, 69, 69, 69, 69, 69, 171, 171,
171, 171, 171, 171, 209, 209, 1011, 209, 209, 209,
219, 219, 219, 219, 219, 219, 222, 1011, 1011, 1011,
222, 222, 224, 224, 224, 224, 224, 224, 230, 230,
230, 230, 973, 973, 230, 230, 236, 236, 236, 236,
236, 236, 240, 240, 973, 240, 240, 240, 274, 274,
973, 274, 274, 274, 285, 285, 973, 973, 973, 285,
320, 320, 973, 320, 320, 320, 371, 371, 973, 973,
973, 371, 17, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973
1011, 1011, 230, 230, 236, 236, 236, 236, 236, 236,
240, 240, 1011, 240, 240, 240, 274, 274, 1011, 274,
274, 274, 285, 285, 1011, 1011, 1011, 285, 320, 320,
1011, 320, 320, 320, 371, 371, 1011, 1011, 1011, 371,
17, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011
43, 79, 229, 112, 932, 80, 112, 82, 347, 82,
82, 81, 112, 83, 914, 83, 83, 912, 84, 368,
84, 84, 347, 364, 364, 82, 908, 81, 83, 43,
907, 43, 82, 905, 904, 112, 43, 43, 903, 82,
84, 85, 902, 85, 85, 83, 86, 901, 86, 86,
84, 87, 870, 87, 87, 88, 869, 88, 88, 867,
866, 89, 86, 89, 89, 86, 88, 87, 864, 86,
85, 863, 89, 85, 90, 858, 90, 90, 86, 854,
43, 79, 229, 112, 964, 80, 112, 82, 347, 82,
82, 81, 112, 83, 542, 83, 83, 643, 84, 368,
84, 84, 347, 364, 364, 82, 658, 81, 83, 43,
542, 43, 82, 643, 961, 112, 43, 43, 960, 82,
84, 85, 658, 85, 85, 83, 86, 959, 86, 86,
84, 87, 752, 87, 87, 88, 958, 88, 88, 936,
934, 89, 86, 89, 89, 86, 88, 87, 752, 86,
85, 931, 89, 85, 90, 929, 90, 90, 86, 928,
92, 850, 93, 99, 93, 99, 99, 100, 94, 100,
100, 849, 95, 98, 98, 98, 98, 102, 848, 102,
102, 97, 847, 101, 97, 101, 101, 103, 96, 103,
103, 846, 408, 516, 101, 99, 516, 845, 104, 100,
104, 104, 844, 843, 105, 98, 105, 105, 101, 102,
106, 114, 106, 106, 114, 101, 842, 841, 840, 103,
92, 923, 93, 99, 93, 99, 99, 100, 94, 100,
100, 922, 95, 98, 98, 98, 98, 102, 921, 102,
102, 97, 920, 101, 97, 101, 101, 103, 96, 103,
103, 919, 408, 516, 101, 99, 516, 884, 104, 100,
104, 104, 883, 881, 105, 98, 105, 105, 101, 102,
106, 114, 106, 106, 114, 101, 880, 878, 877, 103,
120, 116, 788, 120, 787, 108, 122, 106, 125, 122,
118, 125, 117, 110, 786, 785, 783, 116, 119, 117,
121, 127, 122, 121, 127, 782, 117, 118, 119, 120,
123, 124, 120, 123, 124, 125, 121, 780, 122, 121,
125, 123, 124, 121, 126, 129, 127, 126, 129, 779,
778, 128, 121, 127, 128, 123, 129, 130, 132, 124,
130, 132, 123, 124, 777, 772, 126, 769, 134, 128,
120, 116, 870, 120, 866, 108, 122, 106, 125, 122,
118, 125, 117, 110, 865, 864, 863, 116, 119, 117,
121, 127, 122, 121, 127, 862, 117, 118, 119, 120,
123, 124, 120, 123, 124, 125, 121, 861, 122, 121,
125, 123, 124, 121, 126, 129, 127, 126, 129, 860,
859, 128, 121, 127, 128, 123, 129, 130, 132, 124,
130, 132, 123, 124, 858, 857, 126, 856, 134, 128,
134, 134, 130, 768, 767, 134, 126, 129, 766, 135,
765, 128, 135, 128, 131, 131, 131, 131, 136, 130,
132, 136, 764, 132, 133, 133, 133, 133, 137, 136,
134, 137, 138, 763, 139, 138, 140, 139, 762, 140,
761, 135, 551, 136, 141, 551, 131, 141, 760, 759,
136, 142, 142, 142, 142, 758, 133, 139, 171, 757,
137, 171, 756, 755, 138, 754, 139, 555, 140, 140,
555, 140, 753, 137, 138, 752, 141, 139, 144, 144,
144, 144, 751, 142, 165, 165, 165, 165, 750, 551,
134, 134, 130, 855, 854, 134, 126, 129, 853, 135,
852, 128, 135, 128, 131, 131, 131, 131, 136, 130,
132, 136, 851, 132, 133, 133, 133, 133, 137, 136,
134, 137, 138, 850, 139, 138, 140, 139, 797, 140,
795, 135, 551, 136, 141, 551, 131, 141, 794, 793,
136, 142, 142, 142, 142, 792, 133, 139, 171, 791,
137, 171, 789, 788, 138, 787, 139, 555, 140, 140,
555, 140, 785, 137, 138, 784, 141, 139, 144, 144,
144, 144, 783, 142, 165, 165, 165, 165, 782, 551,
176, 176, 176, 176, 235, 235, 235, 235, 749, 240,
144, 240, 240, 748, 555, 241, 165, 241, 241, 242,
242, 242, 242, 747, 172, 746, 285, 745, 174, 285,
744, 683, 176, 243, 243, 243, 243, 245, 245, 245,
176, 176, 176, 176, 235, 235, 235, 235, 777, 240,
144, 240, 240, 776, 555, 241, 165, 241, 241, 242,
242, 242, 242, 773, 172, 772, 285, 771, 174, 285,
770, 769, 176, 243, 243, 243, 243, 245, 245, 245,
256, 256, 253, 251, 286, 669, 668, 255, 257, 253,
257, 257, 665, 258, 254, 258, 258, 664, 663, 257,
259, 662, 259, 259, 255, 661, 260, 256, 260, 260,
256, 660, 658, 257, 261, 258, 261, 261, 657, 262,
257, 262, 262, 656, 655, 258, 263, 259, 263, 263,
260, 264, 259, 264, 264, 654, 653, 261, 260, 651,
650, 265, 264, 265, 265, 263, 261, 649, 648, 262,
266, 262, 266, 266, 265, 647, 646, 267, 263, 267,
267, 645, 268, 264, 268, 268, 644, 643, 269, 267,
269, 269, 642, 265, 270, 270, 270, 270, 641, 268,
256, 256, 253, 251, 286, 758, 757, 255, 257, 253,
257, 257, 756, 258, 254, 258, 258, 755, 754, 257,
259, 753, 259, 259, 255, 751, 260, 256, 260, 260,
256, 750, 749, 257, 261, 258, 261, 261, 748, 262,
257, 262, 262, 747, 684, 258, 263, 259, 263, 263,
260, 264, 259, 264, 264, 683, 681, 261, 260, 680,
678, 265, 264, 265, 265, 263, 261, 677, 676, 262,
266, 262, 266, 266, 265, 674, 673, 267, 263, 267,
267, 672, 268, 264, 268, 268, 671, 670, 269, 267,
269, 269, 669, 265, 270, 270, 270, 270, 668, 268,
266, 272, 266, 272, 272, 640, 639, 269, 638, 267,
269, 637, 636, 274, 268, 274, 274, 635, 634, 275,
269, 275, 275, 633, 632, 631, 270, 276, 276, 276,
276, 630, 278, 272, 278, 278, 277, 272, 277, 277,
279, 629, 279, 279, 280, 274, 280, 280, 628, 627,
266, 272, 266, 272, 272, 665, 664, 269, 663, 267,
269, 662, 661, 274, 268, 274, 274, 660, 657, 275,
269, 275, 275, 656, 655, 654, 270, 276, 276, 276,
276, 653, 278, 272, 278, 278, 277, 272, 277, 277,
279, 651, 279, 279, 280, 274, 280, 280, 650, 649,
282, 282, 277, 277, 278, 278, 626, 284, 277, 284,
284, 625, 279, 281, 556, 279, 280, 287, 287, 287,
287, 554, 281, 553, 552, 293, 283, 548, 293, 547,
282, 546, 294, 281, 293, 294, 545, 282, 283, 284,
282, 282, 277, 277, 278, 278, 648, 284, 277, 284,
284, 647, 279, 281, 646, 279, 280, 287, 287, 287,
287, 645, 281, 644, 642, 293, 283, 641, 293, 640,
282, 639, 294, 281, 293, 294, 638, 282, 283, 284,
297, 543, 299, 297, 294, 299, 295, 300, 298, 542,
300, 298, 288, 541, 540, 539, 290, 299, 296, 298,
301, 303, 300, 301, 303, 538, 297, 295, 296, 537,
536, 535, 297, 298, 299, 302, 534, 533, 302, 300,
297, 636, 299, 297, 294, 299, 295, 300, 298, 635,
300, 298, 288, 634, 633, 632, 290, 299, 296, 298,
301, 303, 300, 301, 303, 631, 297, 295, 296, 630,
629, 628, 297, 298, 299, 302, 627, 626, 302, 300,
306, 307, 301, 303, 309, 532, 308, 309, 310, 308,
302, 310, 531, 530, 529, 309, 305, 302, 304, 311,
306, 310, 311, 304, 305, 308, 528, 527, 307, 306,
306, 307, 301, 303, 309, 625, 308, 309, 310, 308,
302, 310, 556, 554, 553, 309, 305, 302, 304, 311,
306, 310, 311, 304, 305, 308, 552, 548, 307, 306,
307, 312, 526, 525, 312, 524, 309, 520, 308, 313,
310, 519, 313, 312, 318, 314, 518, 318, 314, 311,
517, 311, 315, 315, 315, 315, 313, 317, 317, 317,
317, 514, 324, 312, 314, 324, 320, 314, 320, 320,
513, 313, 321, 320, 321, 321, 318, 314, 325, 321,
318, 325, 512, 511, 315, 322, 322, 322, 322, 510,
509, 508, 322, 323, 324, 324, 323, 326, 320, 327,
326, 507, 327, 506, 321, 505, 328, 504, 326, 328,
325, 329, 330, 325, 329, 330, 503, 322, 502, 323,
323, 501, 327, 500, 335, 323, 335, 335, 499, 326,
307, 312, 547, 546, 312, 545, 309, 544, 308, 313,
310, 543, 313, 312, 318, 314, 541, 318, 314, 311,
540, 311, 315, 315, 315, 315, 313, 317, 317, 317,
317, 539, 324, 312, 314, 324, 320, 314, 320, 320,
538, 313, 321, 320, 321, 321, 318, 314, 325, 321,
318, 325, 537, 536, 315, 322, 322, 322, 322, 535,
534, 533, 322, 323, 324, 324, 323, 326, 320, 327,
326, 532, 327, 531, 321, 530, 328, 529, 326, 328,
325, 329, 330, 325, 329, 330, 528, 322, 527, 323,
323, 526, 327, 525, 335, 323, 335, 335, 524, 326,
498, 327, 331, 331, 331, 331, 371, 372, 328, 371,
372, 497, 327, 329, 330, 328, 333, 333, 333, 333,
334, 334, 334, 334, 496, 329, 335, 360, 360, 360,
360, 495, 494, 378, 331, 378, 378, 493, 371, 372,
520, 327, 331, 331, 331, 331, 371, 372, 328, 371,
372, 519, 327, 329, 330, 328, 333, 333, 333, 333,
334, 334, 334, 334, 518, 329, 335, 360, 360, 360,
360, 517, 514, 378, 331, 378, 378, 513, 371, 372,
492, 491, 373, 490, 413, 412, 374, 414, 414, 414,
414, 376, 415, 415, 415, 415, 411, 410, 409, 379,
416, 416, 416, 416, 418, 418, 418, 418, 406, 419,
512, 511, 373, 510, 509, 508, 374, 414, 414, 414,
414, 376, 415, 415, 415, 415, 507, 506, 505, 379,
416, 416, 416, 416, 418, 418, 418, 418, 504, 419,
419, 419, 419, 421, 421, 421, 421, 422, 405, 422,
422, 423, 404, 423, 423, 403, 402, 424, 422, 424,
424, 425, 401, 425, 425, 414, 456, 456, 456, 456,
415, 419, 400, 399, 426, 423, 426, 426, 416, 422,
398, 397, 424, 423, 427, 396, 427, 427, 395, 424,
425, 426, 428, 425, 428, 428, 429, 394, 429, 429,
472, 393, 430, 472, 430, 430, 426, 429, 431, 427,
431, 431, 472, 392, 391, 428, 427, 430, 432, 390,
432, 432, 389, 434, 428, 434, 434, 433, 429, 433,
433, 388, 472, 387, 430, 386, 431, 385, 433, 384,
419, 419, 419, 421, 421, 421, 421, 422, 503, 422,
422, 423, 502, 423, 423, 501, 500, 424, 422, 424,
424, 425, 499, 425, 425, 414, 456, 456, 456, 456,
415, 419, 498, 497, 426, 423, 426, 426, 416, 422,
496, 495, 424, 423, 427, 494, 427, 427, 493, 424,
425, 426, 428, 425, 428, 428, 429, 492, 429, 429,
472, 491, 430, 472, 430, 430, 426, 429, 431, 427,
431, 431, 472, 490, 413, 428, 427, 430, 432, 412,
432, 432, 411, 434, 428, 434, 434, 433, 429, 433,
433, 410, 472, 409, 430, 406, 431, 405, 433, 404,
431, 383, 432, 435, 434, 435, 435, 382, 370, 436,
432, 436, 436, 369, 437, 434, 437, 437, 438, 433,
438, 438, 367, 366, 436, 439, 437, 439, 439, 652,
365, 435, 652, 438, 440, 435, 440, 440, 439, 362,
441, 436, 441, 441, 358, 442, 437, 442, 442, 459,
438, 443, 459, 443, 443, 440, 441, 439, 444, 357,
444, 444, 356, 355, 354, 445, 440, 445, 445, 353,
352, 351, 441, 442, 459, 444, 652, 442, 445, 443,
350, 459, 446, 443, 446, 446, 447, 447, 447, 447,
444, 448, 448, 448, 448, 349, 449, 445, 449, 449,
431, 403, 432, 435, 434, 435, 435, 402, 401, 436,
432, 436, 436, 400, 437, 434, 437, 437, 438, 433,
438, 438, 399, 398, 436, 439, 437, 439, 439, 652,
397, 435, 652, 438, 440, 435, 440, 440, 439, 396,
441, 436, 441, 441, 395, 442, 437, 442, 442, 459,
438, 443, 459, 443, 443, 440, 441, 439, 444, 394,
444, 444, 393, 392, 391, 445, 440, 445, 445, 390,
389, 388, 441, 442, 459, 444, 652, 442, 445, 443,
387, 459, 446, 443, 446, 446, 447, 447, 447, 447,
444, 448, 448, 448, 448, 386, 449, 445, 449, 449,
450, 348, 450, 450, 451, 346, 451, 451, 452, 458,
452, 452, 458, 681, 446, 446, 681, 453, 447, 453,
453, 345, 344, 448, 454, 454, 454, 454, 449, 342,
451, 457, 450, 458, 457, 460, 451, 341, 460, 450,
450, 385, 450, 450, 451, 384, 451, 451, 452, 458,
452, 452, 458, 682, 446, 446, 682, 453, 447, 453,
453, 383, 382, 448, 454, 454, 454, 454, 449, 370,
451, 457, 450, 458, 457, 460, 451, 369, 460, 450,
463, 464, 340, 463, 464, 467, 454, 453, 467, 339,
681, 461, 464, 457, 460, 465, 466, 460, 465, 466,
462, 469, 338, 463, 469, 468, 461, 462, 468, 467,
465, 470, 463, 464, 470, 471, 468, 467, 471, 238,
473, 234, 469, 473, 466, 231, 230, 465, 466, 474,
463, 464, 367, 463, 464, 467, 454, 453, 467, 366,
682, 461, 464, 457, 460, 465, 466, 460, 465, 466,
462, 469, 365, 463, 469, 468, 461, 462, 468, 467,
465, 470, 463, 464, 470, 471, 468, 467, 471, 362,
473, 358, 469, 473, 466, 357, 356, 465, 466, 474,
471, 480, 474, 469, 480, 473, 228, 468, 475, 470,
227, 475, 474, 470, 480, 477, 476, 471, 477, 476,
479, 478, 473, 479, 478, 481, 225, 220, 481, 475,
216, 474, 476, 480, 215, 868, 213, 479, 868, 212,
475, 211, 906, 477, 208, 906, 206, 477, 476, 478,
205, 485, 479, 478, 485, 201, 199, 481, 481, 482,
482, 482, 482, 198, 197, 196, 482, 483, 483, 483,
471, 480, 474, 469, 480, 473, 355, 468, 475, 470,
354, 475, 474, 470, 480, 477, 476, 471, 477, 476,
479, 478, 473, 479, 478, 481, 353, 352, 481, 475,
351, 474, 476, 480, 350, 882, 349, 479, 882, 348,
475, 346, 926, 477, 345, 926, 344, 477, 476, 478,
342, 485, 479, 478, 485, 341, 340, 481, 481, 482,
482, 482, 482, 339, 338, 238, 482, 483, 483, 483,
560, 562, 562, 562, 562, 181, 563, 180, 563, 563,
565, 564, 565, 564, 564, 566, 179, 566, 566, 568,
168, 568, 568, 563, 564, 567, 167, 567, 567, 569,
164, 569, 569, 566, 162, 161, 159, 557, 563, 569,
158, 596, 157, 564, 596, 560, 568, 566, 154, 152,
151, 568, 570, 567, 570, 570, 571, 567, 571, 571,
560, 562, 562, 562, 562, 208, 563, 206, 563, 563,
565, 564, 565, 564, 564, 566, 205, 566, 566, 568,
201, 568, 568, 563, 564, 567, 199, 567, 567, 569,
198, 569, 569, 566, 197, 196, 195, 557, 563, 569,
194, 596, 193, 564, 596, 560, 568, 566, 192, 191,
190, 568, 570, 567, 570, 570, 571, 567, 571, 571,
150, 569, 572, 148, 572, 572, 146, 573, 145, 573,
573, 596, 574, 596, 574, 574, 71, 913, 68, 571,
913, 570, 915, 572, 570, 915, 66, 64, 571, 574,
575, 62, 575, 575, 572, 573, 59, 54, 576, 573,
576, 576, 51, 48, 574, 575, 47, 577, 576, 577,
577, 42, 578, 41, 578, 578, 934, 577, 579, 934,
579, 579, 575, 580, 913, 580, 580, 40, 595, 915,
576, 595, 581, 598, 581, 581, 598, 38, 580, 577,
578, 595, 579, 37, 578, 581, 582, 36, 582, 582,
579, 583, 33, 583, 583, 580, 584, 31, 584, 584,
189, 569, 572, 187, 572, 572, 186, 573, 185, 573,
573, 596, 574, 596, 574, 574, 183, 935, 182, 571,
935, 570, 937, 572, 570, 937, 181, 180, 571, 574,
575, 179, 575, 575, 572, 573, 168, 167, 576, 573,
576, 576, 164, 162, 574, 575, 161, 577, 576, 577,
577, 159, 578, 158, 578, 578, 962, 577, 579, 962,
579, 579, 575, 580, 935, 580, 580, 157, 595, 937,
576, 595, 581, 600, 581, 581, 600, 154, 580, 577,
578, 595, 579, 600, 578, 581, 582, 152, 582, 582,
579, 583, 151, 583, 583, 580, 584, 150, 584, 584,
588, 588, 588, 21, 17, 590, 586, 590, 590, 585,
0, 0, 591, 586, 591, 591, 592, 597, 592, 592,
597, 587, 593, 0, 593, 593, 589, 0, 0, 594,
0, 588, 594, 599, 587, 597, 599, 590, 0, 601,
0, 589, 601, 0, 591, 0, 594, 0, 592, 597,
592, 0, 590, 600, 593, 602, 600, 591, 602, 603,
599, 594, 603, 600, 604, 599, 0, 604, 601, 593,
588, 588, 588, 66, 64, 590, 586, 590, 590, 585,
62, 59, 591, 586, 591, 591, 592, 597, 592, 592,
597, 587, 593, 54, 593, 593, 589, 598, 51, 594,
598, 588, 594, 599, 587, 597, 599, 590, 48, 601,
602, 589, 601, 602, 591, 47, 594, 42, 592, 597,
592, 41, 590, 603, 593, 598, 603, 591, 40, 598,
599, 594, 38, 602, 604, 599, 37, 604, 601, 593,
0, 601, 605, 606, 607, 605, 606, 607, 602, 609,
603, 0, 609, 608, 607, 600, 608, 602, 606, 605,
0, 603, 604, 608, 610, 611, 604, 610, 611, 612,
613, 0, 612, 613, 605, 606, 607, 609, 0, 0,
611, 609, 612, 0, 614, 608, 613, 614, 610, 615,
616, 618, 615, 616, 618, 617, 610, 611, 617, 615,
0, 612, 613, 619, 619, 619, 619, 620, 616, 621,
620, 0, 621, 614, 622, 623, 614, 622, 623, 0,
617, 615, 616, 618, 0, 624, 938, 617, 624, 938,
684, 0, 684, 684, 716, 619, 618, 716, 0, 620,
605, 601, 602, 605, 603, 606, 607, 609, 606, 607,
609, 608, 36, 33, 608, 603, 607, 605, 31, 30,
606, 608, 604, 29, 610, 611, 604, 610, 611, 27,
613, 612, 605, 613, 612, 609, 25, 606, 607, 609,
611, 23, 614, 608, 612, 614, 613, 616, 610, 615,
616, 617, 615, 21, 617, 618, 610, 611, 618, 615,
612, 620, 613, 612, 620, 616, 619, 619, 619, 619,
621, 614, 17, 621, 614, 622, 617, 623, 622, 616,
623, 615, 624, 617, 0, 624, 686, 618, 686, 686,
0, 0, 718, 620, 685, 718, 685, 685, 619, 0,
0, 621, 686, 0, 686, 686, 622, 623, 685, 623,
685, 685, 0, 0, 620, 0, 621, 624, 684, 622,
0, 716, 684, 685, 0, 687, 716, 687, 687, 686,
0, 0, 624, 938, 686, 687, 688, 0, 688, 688,
685, 689, 0, 689, 689, 690, 688, 690, 690, 691,
0, 691, 691, 692, 689, 692, 692, 687, 697, 691,
697, 697, 693, 692, 693, 693, 0, 695, 688, 695,
695, 719, 693, 689, 719, 0, 694, 690, 694, 694,
696, 691, 696, 696, 719, 692, 694, 0, 0, 698,
697, 698, 698, 0, 693, 695, 0, 0, 699, 695,
618, 686, 621, 687, 0, 687, 687, 622, 620, 623,
0, 623, 0, 688, 624, 688, 688, 621, 686, 718,
622, 0, 685, 688, 718, 690, 685, 690, 690, 624,
687, 689, 0, 689, 689, 687, 0, 691, 690, 691,
691, 689, 0, 0, 717, 688, 692, 717, 692, 692,
693, 0, 693, 693, 690, 968, 692, 690, 968, 717,
693, 0, 694, 689, 694, 694, 0, 0, 0, 691,
0, 695, 694, 695, 695, 0, 717, 696, 692, 696,
696, 695, 693, 697, 0, 697, 697, 698, 0, 698,
698, 0, 0, 699, 694, 699, 699, 700, 0, 700,
699, 699, 700, 719, 700, 700, 0, 696, 694, 0,
0, 714, 696, 701, 714, 701, 701, 702, 0, 702,
702, 698, 703, 701, 703, 703, 704, 699, 704, 704,
699, 700, 0, 0, 700, 705, 704, 705, 705, 714,
0, 0, 702, 714, 703, 701, 0, 0, 706, 702,
706, 706, 0, 707, 703, 707, 707, 708, 704, 708,
708, 709, 0, 709, 709, 0, 710, 705, 710, 710,
711, 0, 711, 711, 0, 715, 707, 706, 715, 712,
706, 712, 712, 0, 713, 707, 713, 713, 0, 708,
715, 717, 720, 709, 717, 720, 708, 0, 710, 0,
700, 0, 968, 695, 701, 696, 701, 701, 0, 696,
697, 702, 0, 702, 702, 697, 0, 0, 0, 698,
703, 702, 703, 703, 0, 699, 700, 0, 704, 700,
704, 704, 705, 701, 705, 705, 701, 0, 706, 0,
706, 706, 0, 702, 0, 703, 716, 704, 706, 716,
0, 0, 703, 707, 705, 707, 707, 0, 0, 708,
704, 708, 708, 709, 705, 709, 709, 0, 0, 710,
706, 710, 710, 711, 716, 711, 711, 712, 716, 712,
712, 713, 0, 713, 713, 707, 709, 714, 708, 714,
714, 708, 0, 0, 715, 709, 715, 715, 0, 722,
710, 717, 711, 711, 0, 718, 0, 715, 718, 721,
722, 712, 721, 722, 727, 718, 713, 727, 723, 721,
722, 723, 724, 717, 720, 724, 712, 725, 723, 0,
725, 713, 724, 726, 0, 728, 726, 718, 728, 0,
729, 721, 722, 729, 730, 0, 727, 730, 731, 732,
723, 731, 732, 733, 724, 725, 733, 0, 731, 725,
726, 734, 0, 735, 734, 726, 735, 728, 0, 729,
0, 734, 729, 730, 732, 733, 730, 0, 0, 736,
731, 732, 736, 737, 738, 733, 737, 738, 739, 741,
0, 739, 741, 734, 740, 735, 0, 740, 742, 743,
719, 710, 722, 719, 721, 711, 0, 721, 710, 712,
719, 712, 720, 713, 713, 720, 0, 721, 723, 714,
724, 723, 720, 724, 728, 0, 715, 728, 723, 0,
724, 722, 719, 721, 714, 725, 721, 726, 725, 0,
726, 715, 0, 727, 720, 725, 727, 726, 0, 0,
723, 728, 724, 0, 729, 730, 728, 729, 730, 731,
732, 0, 731, 732, 0, 734, 0, 725, 734, 726,
733, 727, 0, 733, 735, 727, 736, 735, 0, 736,
733, 738, 739, 0, 738, 739, 729, 730, 731, 732,
734, 731, 732, 735, 0, 0, 740, 734, 736, 740,
0, 742, 743, 0, 0, 0, 737, 792, 736, 792,
792, 736, 0, 0, 0, 737, 738, 792, 0, 0,
739, 741, 741, 738, 819, 0, 740, 819, 740, 0,
742, 743, 793, 0, 793, 793, 0, 0, 794, 792,
794, 794, 793, 0, 0, 742, 743, 795, 794, 795,
795, 796, 0, 796, 796, 797, 819, 797, 797, 798,
0, 798, 798, 799, 793, 799, 799, 0, 0, 800,
794, 800, 800, 801, 0, 801, 801, 0, 0, 795,
797, 0, 802, 796, 802, 802, 803, 797, 803, 803,
820, 798, 802, 820, 0, 799, 803, 804, 0, 804,
737, 741, 733, 737, 741, 0, 735, 0, 736, 742,
737, 739, 742, 738, 739, 743, 0, 0, 743, 740,
744, 0, 745, 744, 746, 745, 0, 746, 740, 0,
0, 0, 737, 741, 798, 0, 798, 798, 0, 0,
741, 742, 0, 801, 798, 801, 801, 743, 799, 743,
799, 799, 744, 744, 745, 0, 746, 800, 799, 800,
800, 802, 0, 802, 802, 0, 798, 800, 0, 745,
803, 746, 803, 803, 805, 801, 805, 805, 0, 804,
799, 804, 804, 806, 827, 806, 806, 827, 807, 800,
807, 807, 0, 802, 808, 803, 808, 808, 804, 0,
804, 800, 0, 0, 0, 801, 805, 804, 805, 805,
806, 0, 806, 806, 802, 0, 805, 807, 803, 807,
807, 808, 820, 808, 808, 809, 0, 809, 809, 804,
810, 0, 810, 810, 0, 0, 808, 0, 805, 807,
810, 811, 806, 811, 811, 812, 0, 812, 812, 807,
0, 0, 813, 808, 813, 813, 811, 809, 814, 0,
814, 814, 810, 815, 816, 815, 815, 816, 817, 818,
0, 817, 818, 811, 816, 0, 0, 812, 817, 818,
821, 0, 822, 821, 813, 822, 0, 813, 823, 812,
814, 823, 0, 0, 824, 815, 816, 824, 0, 0,
0, 0, 803, 0, 0, 0, 805, 809, 0, 809,
809, 804, 0, 0, 0, 806, 827, 809, 0, 810,
807, 810, 810, 0, 0, 811, 808, 811, 811, 810,
812, 0, 812, 812, 813, 811, 813, 813, 0, 809,
812, 814, 0, 814, 814, 815, 0, 815, 815, 0,
816, 810, 816, 816, 0, 0, 817, 811, 817, 817,
0, 828, 812, 814, 828, 816, 813, 815, 818, 0,
818, 818, 819, 814, 819, 819, 824, 815, 818, 824,
0, 820, 816, 820, 820, 0, 824, 819, 817, 821,
0, 821, 821, 828, 822, 825, 822, 822, 825, 823,
817, 818, 814, 825, 0, 821, 825, 826, 827, 0,
826, 827, 821, 828, 822, 0, 828, 826, 827, 829,
823, 830, 829, 828, 830, 831, 824, 832, 831, 829,
832, 833, 0, 834, 833, 825, 834, 0, 0, 826,
827, 835, 832, 834, 835, 828, 836, 831, 0, 836,
0, 829, 837, 830, 0, 837, 835, 831, 0, 832,
0, 838, 0, 833, 838, 834, 839, 0, 871, 839,
871, 871, 872, 835, 872, 872, 0, 873, 836, 873,
873, 0, 0, 0, 837, 0, 874, 837, 874, 874,
836, 0, 875, 838, 875, 875, 0, 0, 839, 876,
818, 823, 823, 829, 819, 825, 829, 826, 824, 831,
826, 830, 831, 820, 830, 832, 833, 826, 832, 833,
834, 821, 0, 834, 821, 820, 822, 825, 829, 0,
830, 823, 0, 839, 835, 829, 839, 835, 822, 826,
0, 831, 840, 830, 835, 840, 836, 832, 833, 836,
837, 838, 834, 837, 838, 841, 836, 0, 841, 843,
837, 838, 843, 0, 840, 839, 835, 0, 0, 842,
844, 0, 842, 844, 840, 0, 846, 841, 836, 846,
844, 0, 837, 838, 842, 845, 847, 841, 845, 847,
848, 843, 849, 848, 885, 849, 885, 885, 0, 0,
871, 876, 876, 0, 872, 838, 0, 0, 874, 873,
877, 0, 877, 877, 878, 0, 878, 878, 874, 879,
0, 879, 879, 880, 875, 880, 880, 886, 0, 879,
886, 876, 881, 880, 881, 881, 0, 882, 0, 882,
882, 883, 877, 883, 883, 887, 878, 882, 887, 883,
884, 879, 884, 884, 885, 880, 885, 885, 888, 886,
890, 888, 889, 890, 881, 889, 0, 891, 892, 882,
891, 892, 893, 883, 0, 893, 896, 887, 894, 896,
0, 894, 884, 0, 889, 0, 885, 0, 894, 885,
888, 0, 890, 895, 889, 897, 895, 884, 897, 891,
845, 842, 844, 886, 0, 886, 886, 887, 846, 887,
887, 888, 0, 888, 888, 0, 0, 845, 847, 0,
846, 847, 848, 0, 849, 889, 885, 889, 889, 890,
0, 890, 890, 888, 848, 886, 0, 0, 891, 887,
891, 891, 892, 888, 892, 892, 893, 889, 893, 893,
894, 0, 894, 894, 0, 0, 895, 889, 895, 895,
894, 890, 896, 0, 896, 896, 897, 0, 897, 897,
891, 895, 896, 898, 892, 898, 898, 899, 893, 899,
899, 0, 894, 898, 900, 899, 900, 900, 895, 901,
902, 901, 901, 902, 896, 0, 903, 904, 897, 903,
904, 905, 0, 906, 905, 898, 906, 907, 908, 899,
907, 908, 909, 0, 910, 909, 900, 910, 0, 0,
0, 901, 902, 905, 901, 906, 0, 911, 903, 904,
911, 900, 0, 905, 0, 906, 0, 911, 912, 907,
908, 912, 913, 0, 909, 913, 910, 914, 915, 0,
914, 915, 913, 912, 916, 0, 0, 916, 915, 911,
917, 918, 916, 917, 918, 938, 0, 938, 938, 939,
912, 939, 939, 948, 913, 938, 948, 0, 0, 914,
915, 0, 0, 948, 939, 940, 916, 940, 940, 0,
0, 0, 917, 918, 0, 0, 918, 938, 0, 0,
892, 0, 0, 895, 893, 897, 898, 0, 896, 898,
894, 0, 899, 900, 898, 899, 900, 0, 916, 0,
916, 916, 0, 0, 0, 895, 0, 897, 916, 917,
0, 917, 917, 918, 0, 918, 918, 919, 898, 919,
919, 0, 0, 925, 899, 900, 925, 0, 900, 920,
916, 920, 920, 921, 926, 921, 921, 926, 0, 899,
922, 917, 922, 922, 923, 918, 923, 923, 0, 919,
924, 927, 0, 924, 927, 925, 928, 0, 0, 928,
924, 920, 0, 920, 929, 921, 926, 929, 930, 0,
931, 930, 922, 931, 0, 940, 923, 940, 940, 0,
941, 939, 941, 941, 0, 948, 942, 917, 942, 942,
941, 943, 950, 943, 943, 950, 944, 940, 944, 944,
945, 0, 945, 945, 946, 0, 946, 946, 947, 0,
947, 947, 941, 0, 949, 0, 951, 949, 942, 951,
0, 0, 952, 943, 950, 952, 951, 0, 944, 949,
944, 953, 945, 0, 953, 954, 946, 0, 954, 955,
947, 956, 955, 0, 956, 0, 949, 945, 951, 957,
0, 946, 957, 977, 952, 947, 977, 970, 0, 970,
970, 0, 971, 953, 971, 971, 0, 954, 0, 954,
0, 955, 971, 956, 972, 979, 972, 972, 979, 0,
921, 0, 924, 927, 0, 0, 945, 922, 928, 945,
928, 923, 941, 0, 941, 941, 929, 0, 0, 0,
930, 942, 931, 942, 942, 0, 943, 940, 943, 943,
944, 929, 944, 944, 0, 930, 946, 931, 945, 946,
947, 0, 948, 947, 941, 948, 949, 941, 954, 949,
954, 954, 956, 942, 953, 956, 953, 953, 943, 0,
955, 0, 944, 955, 959, 0, 959, 959, 946, 0,
0, 946, 947, 943, 948, 0, 0, 944, 949, 960,
954, 0, 960, 0, 956, 963, 953, 963, 963, 948,
0, 0, 955, 949, 964, 953, 959, 964, 0, 0,
973, 957, 973, 973, 980, 977, 955, 980, 956, 970,
974, 0, 974, 974, 971, 975, 957, 975, 975, 976,
978, 976, 976, 978, 0, 981, 972, 979, 981, 0,
978, 982, 973, 0, 982, 973, 980, 983, 0, 980,
983, 989, 974, 989, 989, 992, 0, 975, 992, 0,
0, 976, 978, 990, 0, 990, 990, 981, 991, 0,
991, 991, 975, 982, 993, 994, 976, 993, 994, 983,
0, 0, 997, 989, 997, 997, 998, 992, 982, 998,
1001, 0, 1001, 1001, 983, 990, 1002, 0, 0, 1002,
991, 0, 1010, 0, 990, 1010, 993, 994, 0, 1005,
967, 955, 967, 967, 968, 0, 972, 968, 959, 972,
967, 960, 0, 971, 968, 971, 971, 963, 0, 0,
0, 0, 963, 960, 0, 0, 964, 0, 0, 0,
0, 964, 967, 0, 0, 0, 968, 0, 972, 0,
0, 0, 0, 0, 0, 971, 974, 974, 974, 974,
974, 974, 975, 975, 975, 975, 975, 975, 976, 976,
976, 976, 976, 976, 977, 977, 977, 977, 977, 977,
978, 978, 978, 978, 978, 978, 979, 979, 0, 979,
979, 979, 980, 980, 980, 980, 980, 980, 981, 0,
0, 0, 981, 981, 982, 982, 982, 982, 982, 982,
1006, 1005, 1005, 1006, 997, 993, 0, 0, 998, 1005,
1006, 1009, 1001, 1009, 1009, 0, 997, 1001, 1002, 0,
998, 0, 0, 1002, 1010, 0, 0, 0, 0, 0,
0, 1005, 1006, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1009, 1012, 1012, 1012, 1012, 1012, 1012,
1013, 1013, 1013, 1013, 1013, 1013, 1014, 1014, 1014, 1014,
1014, 1014, 1015, 1015, 1015, 1015, 1015, 1015, 1016, 1016,
1016, 1016, 1016, 1016, 1017, 1017, 0, 1017, 1017, 1017,
1018, 1018, 1018, 1018, 1018, 1018, 1019, 0, 0, 0,
1019, 1019, 1020, 1020, 1020, 1020, 1020, 1020, 1021, 1021,
983, 983, 0, 0, 983, 983, 984, 984, 984, 984,
984, 984, 985, 985, 0, 985, 985, 985, 986, 986,
0, 986, 986, 986, 987, 987, 0, 0, 0, 987,
988, 988, 0, 988, 988, 988, 990, 990, 0, 0,
0, 990, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
973, 973, 973
0, 0, 1021, 1021, 1022, 1022, 1022, 1022, 1022, 1022,
1023, 1023, 0, 1023, 1023, 1023, 1024, 1024, 0, 1024,
1024, 1024, 1025, 1025, 0, 0, 0, 1025, 1026, 1026,
0, 1026, 1026, 1026, 1028, 1028, 0, 0, 0, 1028,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
1011
if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
/* Extend the array by 50%, plus the number we really need. */
yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
}
return EOF;
return 0;
#ifdef USE_TILE
unsigned int tile = _get_tile_idx(ls, 3);
if (!tile)
return (0);
if (tile_dngn_count(tile) != 9)
{
error += "'";
error += luaL_checkstring(ls, 3);
error += "' is not a valid halo tile. It has ";
error += tile_dngn_count(tile);
error += " variations, but needs exactly 9.";
luaL_argerror(ls, 3, error.c_str());
return (0);
}
#define LEVEL(lev, br, pos) \
const char *level_name = luaL_checkstring(ls, pos); \
level_area_type lev = str_to_level_area_type(level_name); \
if (lev == NUM_LEVEL_AREA_TYPES) \
luaL_error(ls, "Expected level name"); \
const char *branch_name = luaL_checkstring(ls, pos); \
branch_type br = str_to_branch(branch_name); \
if (lev == LEVEL_DUNGEON && br == NUM_BRANCHES) \
luaL_error(ls, "Expected branch name");
static int dgn_debug_dump_map(lua_State *ls)
LUAFN(dgn_lev_floortile)
{
#ifdef USE_TILE
LEVEL(lev, br, 1);
tile_flavour flv;
tile_default_flv(lev, br, flv);
const char *tile_name = tile_dngn_name(flv.floor);
PLUARET(string, tile_name);
#else
PLUARET(string, "invalid");
#endif
}
LUAFN(dgn_lev_rocktile)
{
#ifdef USE_TILE
LEVEL(lev, br, 1);
tile_flavour flv;
tile_default_flv(lev, br, flv);
const char *tile_name = tile_dngn_name(flv.wall);
PLUARET(string, tile_name);
#else
PLUARET(string, "invalid");
#endif
}
LUAFN(dgn_rocktile)
{
MAP(ls, 1, map);
#ifdef USE_TILE
unsigned short tile = _get_tile_idx(ls, 2);
map->rock_tile = tile;
const char *tile_name = tile_dngn_name(tile);
PLUARET(string, tile_name);
#else
UNUSED(map);
PLUARET(string, "invalid");
#endif
}
LUAFN(dgn_floortile)
{
MAP(ls, 1, map);
#ifdef USE_TILE
unsigned short tile = _get_tile_idx(ls, 2);
map->floor_tile = tile;
const char *tile_name = tile_dngn_name(tile);
PLUARET(string, tile_name);
#else
UNUSED(map);
PLUARET(string, "invalid");
#endif
}
LUAFN(dgn_change_rock_tile)
{
#ifdef USE_TILE
unsigned short tile = _get_tile_idx(ls, 1);
if (tile)
env.tile_default.wall = tile;
const char *tile_name = tile_dngn_name(tile);
PLUARET(string, tile_name);
#else
PLUARET(string, "invalid");
#endif
}
LUAFN(dgn_change_floor_tile)
NAME: shoalhut_rune
TAGS: shoal_rune
SHUFFLE: ABCD
SUBST: A:x, B:x, C:x=, D=+
NAME: shoalhut_rune
TAGS: shoal_rune
SHUFFLE: ABCD
SUBST: A:x, B:x, C:x=, D=+
ROCKTILE: wall_vines
end
local default = {rock="wall_vault", floor="floor_vault", halo="halo_vault"}
local tileset = {
blue = {rock="wall_brick_gray", floor="floor_grass", halo="halo_grass"},
red = {rock="wall_pebble_red", floor="floor_vault", halo="halo_vault"},
lightblue = {rock="wall_hive", floor="floor_grass", halo="halo_grass2"},
magenta = {rock="wall_stone_gray", floor="floor_dirt", halo="halo_dirt"},
green = {rock="wall_stone_gray", floor="floor_grass", halo="halo_grass"},
}
local tile = tileset[dgn.get_floor_colour()]
if (tile == nil) then
tile = default