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 floorsvoid 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;}elseenv.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;elseenv.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;}elseenv.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;}elseenv.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;elseenv.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;elseenv.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);elseenv.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)
elseenv.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;elseenv.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;elseenv.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;elsewall = 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);elsespecial_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_TILEunsigned 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_TILELEVEL(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);#elsePLUARET(string, "invalid");#endif}LUAFN(dgn_lev_rocktile){#ifdef USE_TILELEVEL(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);#elsePLUARET(string, "invalid");#endif}LUAFN(dgn_rocktile){MAP(ls, 1, map);#ifdef USE_TILEunsigned short tile = _get_tile_idx(ls, 2);map->rock_tile = tile;const char *tile_name = tile_dngn_name(tile);PLUARET(string, tile_name);#elseUNUSED(map);PLUARET(string, "invalid");#endif}LUAFN(dgn_floortile){MAP(ls, 1, map);#ifdef USE_TILEunsigned short tile = _get_tile_idx(ls, 2);map->floor_tile = tile;const char *tile_name = tile_dngn_name(tile);PLUARET(string, tile_name);#elseUNUSED(map);PLUARET(string, "invalid");#endif}LUAFN(dgn_change_rock_tile){#ifdef USE_TILEunsigned 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);#elsePLUARET(string, "invalid");#endif}LUAFN(dgn_change_floor_tile)
NAME: shoalhut_runeTAGS: shoal_runeSHUFFLE: ABCDSUBST: A:x, B:x, C:x=, D=+
NAME: shoalhut_runeTAGS: shoal_runeSHUFFLE: ABCDSUBST: A:x, B:x, C:x=, D=+ROCKTILE: wall_vines
endlocal 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) thentile = default