From 2b80ce93daf4bd86a2041fcc699e17db6c241f38 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Wed, 16 Jan 2013 20:53:56 +0100 Subject: [PATCH] edit: Fix integer argument range checking Upper bounds corrected: cmd key struct member wrong correct notes ------------------------------------------------- edit l m sct_mobil 255 127 1 t sct_ptime 255 32767 edit c b nat_btu 1024 max_btus edit p m pln_mobil 255 127 1 edit u F lnd_harden 255 127 1 Missing bounds supplied, arguments out of bounds are silently clipped unless noted otherwise: cmd key struct member bounds notes --------------------------------------------------- edit c t nat_tgms 0 USHRT_MAX 2 m nat_reserve 0 INT_MAX T... nat_level[] 0 infinity edit s a shp_pstage 0 PLG_EXPOSED 3 b shp_ptime 0 32767 M shp_mobil -127 127 c... shp_item[] 0 load limit 4 edit u Y lnd_land -1 size of table 5 M lnd_mobil -127 127 S lnd_ship -1 size of table 5 Z lnd_retreat 0 100 c... lnd_item[] 0 load limit 4 edit p r pln_range 0 max range s pln_ship -1 size of table 5 y pln_land -1 size of table 5 Notes: 1. Values between SCHAR_MAX and 255 were cast to signed char, changing the sign. 2. The real upper bound is the number of telegrams in the mailbox, but counting them isn't worth it. 3. This check is particularly important, because values out of bounds make the server refuse to start without -F, and empdump -x warn "export has errors, not importable as is". 4. Values outside 0..ITEM_MAX got caught and clipped by item_prewrite(). This check avoids the oops, and tightens the upper bound for units. 5. Argument out-of-bounds are rejected. This check is particularly important, because unit numbers beyond the size of the table trigger oopses. Signed-off-by: Markus Armbruster --- src/lib/commands/edit.c | 65 ++++++++++++++++++++++++++++++----- tests/actofgod/actofgod.xdump | 30 ++++++++-------- tests/actofgod/journal.log | 24 +++++++------ tests/actofgod/server.log | 4 --- 4 files changed, 85 insertions(+), 38 deletions(-) diff --git a/src/lib/commands/edit.c b/src/lib/commands/edit.c index 200c1eaa..c8b494f4 100644 --- a/src/lib/commands/edit.c +++ b/src/lib/commands/edit.c @@ -468,7 +468,7 @@ edit_sect(struct sctstr *sect, char op, int arg, char *p) sect->sct_effic = new; break; case 'm': - new = LIMIT_TO(arg, -127, 255); + new = LIMIT_TO(arg, -127, 127); noise(sect, "Mobility", sect->sct_mobil, new); sect->sct_mobil = new; break; @@ -534,7 +534,7 @@ edit_sect(struct sctstr *sect, char op, int arg, char *p) sect->sct_pstage = new; break; case 't': - new = LIMIT_TO(arg, 0, 255); + new = LIMIT_TO(arg, 0, 32767); pr("Plague time of %s changed from %d to %d\n", xyas(sect->sct_x, sect->sct_y, player->cnum), sect->sct_ptime, new); @@ -635,14 +635,16 @@ edit_nat(struct natstr *np, char op, int arg, char *p) strncpy(np->nat_pnam, p, sizeof(np->nat_pnam) - 1); break; case 't': + arg = LIMIT_TO(arg, 0, USHRT_MAX); np->nat_tgms = arg; break; case 'b': - arg = LIMIT_TO(arg, 0, 1024); + arg = LIMIT_TO(arg, 0, max_btus); pr("BTU's changed from %d to %d\n", np->nat_btu, arg); np->nat_btu = arg; break; case 'm': + arg = LIMIT_TO(arg, 0, INT_MAX); benefit(nat, np->nat_reserve < arg); pr("Military reserves changed from %d to %d\n", np->nat_reserve, arg); @@ -686,21 +688,25 @@ edit_nat(struct natstr *np, char op, int arg, char *p) np->nat_money = arg; break; case 'T': + farg = MAX(0.0, farg); pr("Tech changed from %.2f to %.2f.\n", np->nat_level[NAT_TLEV], farg); np->nat_level[NAT_TLEV] = farg; break; case 'R': + farg = MAX(0.0, farg); pr("Research changed from %.2f to %.2f.\n", np->nat_level[NAT_RLEV], farg); np->nat_level[NAT_RLEV] = farg; break; case 'E': + farg = MAX(0.0, farg); pr("Education changed from %.2f to %.2f.\n", np->nat_level[NAT_ELEV], farg); np->nat_level[NAT_ELEV] = farg; break; case 'H': + farg = MAX(0.0, farg); pr("Happiness changed from %.2f to %.2f.\n", np->nat_level[NAT_HLEV], farg); np->nat_level[NAT_HLEV] = farg; @@ -716,14 +722,17 @@ edit_nat(struct natstr *np, char op, int arg, char *p) static int edit_ship(struct shpstr *ship, char op, int arg, char *p) { + struct mchrstr *mcp = &mchr[ship->shp_type]; coord newx, newy; newx = newy = 0; switch (op) { case 'a': + arg = LIMIT_TO(arg, 0, PLG_EXPOSED); ship->shp_pstage = arg; break; case 'b': + arg = LIMIT_TO(arg, 0, 32767); ship->shp_ptime = arg; break; case 'R': @@ -753,13 +762,14 @@ edit_ship(struct shpstr *ship, char op, int arg, char *p) ship->shp_y = newy; break; case 'T': - arg = LIMIT_TO(arg, mchr[(int)ship->shp_type].m_tech, SHRT_MAX); + arg = LIMIT_TO(arg, mcp->m_tech, SHRT_MAX); shp_set_tech(ship, arg); break; case 'E': ship->shp_effic = LIMIT_TO(arg, SHIP_MINEFF, 100); break; case 'M': + arg = LIMIT_TO(arg, -127, 127); ship->shp_mobil = arg; break; case 'F': @@ -773,42 +783,55 @@ edit_ship(struct shpstr *ship, char op, int arg, char *p) } break; case 'c': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_CIVIL]); ship->shp_item[I_CIVIL] = arg; break; case 'm': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_MILIT]); ship->shp_item[I_MILIT] = arg; break; case 'u': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_UW]); ship->shp_item[I_UW] = arg; break; case 'f': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_FOOD]); ship->shp_item[I_FOOD] = arg; break; case 's': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_SHELL]); ship->shp_item[I_SHELL] = arg; break; case 'g': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_GUN]); ship->shp_item[I_GUN] = arg; break; case 'p': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_PETROL]); ship->shp_item[I_PETROL] = arg; break; case 'i': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_IRON]); ship->shp_item[I_IRON] = arg; break; case 'd': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_DUST]); ship->shp_item[I_DUST] = arg; break; case 'o': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_OIL]); ship->shp_item[I_OIL] = arg; break; case 'l': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_LCM]); ship->shp_item[I_LCM] = arg; break; case 'h': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_HCM]); ship->shp_item[I_HCM] = arg; break; case 'r': + arg = LIMIT_TO(arg, 0, mcp->m_item[I_RAD]); ship->shp_item[I_RAD] = arg; break; default: @@ -821,11 +844,14 @@ edit_ship(struct shpstr *ship, char op, int arg, char *p) static int edit_land(struct lndstr *land, char op, int arg, char *p) { + struct lchrstr *lcp = &lchr[land->lnd_type]; coord newx, newy; newx = newy = 0; switch (op) { case 'Y': + if (arg < -1 || arg >= ef_nelem(EF_LAND)) + return RET_SYN; land->lnd_land = arg; break; case 'U': @@ -852,10 +878,11 @@ edit_land(struct lndstr *land, char op, int arg, char *p) land->lnd_effic = LIMIT_TO(arg, LAND_MINEFF, 100); break; case 'M': + arg = LIMIT_TO(arg, -127, 127); land->lnd_mobil = arg; break; case 't': - arg = LIMIT_TO(arg, lchr[(int)land->lnd_type].l_tech, SHRT_MAX); + arg = LIMIT_TO(arg, lcp->l_tech, SHRT_MAX); lnd_set_tech(land, arg); break; case 'a': @@ -869,12 +896,15 @@ edit_land(struct lndstr *land, char op, int arg, char *p) } break; case 'F': - land->lnd_harden = LIMIT_TO(arg, 0, 255); + land->lnd_harden = LIMIT_TO(arg, 0, 127); break; case 'S': + if (arg < -1 || arg >= ef_nelem(EF_SHIP)) + return RET_SYN; land->lnd_ship = arg; break; case 'Z': + arg = LIMIT_TO(arg, 0, 100); land->lnd_retreat = arg; break; case 'R': @@ -884,42 +914,55 @@ edit_land(struct lndstr *land, char op, int arg, char *p) land->lnd_rflags = arg; break; case 'c': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_CIVIL]); land->lnd_item[I_CIVIL] = arg; break; case 'm': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_MILIT]); land->lnd_item[I_MILIT] = arg; break; case 'u': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_UW]); land->lnd_item[I_UW] = arg; break; case 'f': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_FOOD]); land->lnd_item[I_FOOD] = arg; break; case 's': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_SHELL]); land->lnd_item[I_SHELL] = arg; break; case 'g': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_GUN]); land->lnd_item[I_GUN] = arg; break; case 'p': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_PETROL]); land->lnd_item[I_PETROL] = arg; break; case 'i': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_IRON]); land->lnd_item[I_IRON] = arg; break; case 'd': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_DUST]); land->lnd_item[I_DUST] = arg; break; case 'o': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_OIL]); land->lnd_item[I_OIL] = arg; break; case 'l': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_LCM]); land->lnd_item[I_LCM] = arg; break; case 'h': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_HCM]); land->lnd_item[I_HCM] = arg; break; case 'r': + arg = LIMIT_TO(arg, 0, lcp->l_item[I_RAD]); land->lnd_item[I_RAD] = arg; break; default: @@ -932,6 +975,7 @@ edit_land(struct lndstr *land, char op, int arg, char *p) static int edit_plane(struct plnstr *plane, char op, int arg, char *p) { + struct plchrstr *pcp = &plchr[plane->pln_type]; coord newx, newy; switch (op) { @@ -960,10 +1004,10 @@ edit_plane(struct plnstr *plane, char op, int arg, char *p) plane->pln_effic = LIMIT_TO(arg, PLANE_MINEFF, 100); break; case 'm': - plane->pln_mobil = LIMIT_TO(arg, -127, 255); + plane->pln_mobil = LIMIT_TO(arg, -127, 127); break; case 't': - arg = LIMIT_TO(arg, plchr[(int)plane->pln_type].pl_tech, SHRT_MAX); + arg = LIMIT_TO(arg, pcp->pl_tech, SHRT_MAX); pln_set_tech(plane, arg); break; case 'w': @@ -977,12 +1021,17 @@ edit_plane(struct plnstr *plane, char op, int arg, char *p) } break; case 'r': + arg = LIMIT_TO(arg, 0, pl_range(pcp, plane->pln_tech)); plane->pln_range = (unsigned char)arg; break; case 's': + if (arg < -1 || arg >= ef_nelem(EF_SHIP)) + return RET_SYN; plane->pln_ship = arg; break; case 'y': + if (arg < -1 || arg >= ef_nelem(EF_LAND)) + return RET_SYN; plane->pln_land = arg; break; case 'f': diff --git a/tests/actofgod/actofgod.xdump b/tests/actofgod/actofgod.xdump index b01245ce..df98f2db 100644 --- a/tests/actofgod/actofgod.xdump +++ b/tests/actofgod/actofgod.xdump @@ -14,8 +14,8 @@ owner xloc yloc des effic mobil off loyal terr0 terr1 terr2 terr3 dterr xdist yd 0 -2 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0 1 1 1 4 0 -127 0 0 0 0 0 0 0 1 1 0 0 0 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0 1 3 1 4 0 -127 0 0 0 0 0 0 0 3 1 0 0 0 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0 -1 5 1 4 100 127 0 127 0 0 0 0 0 5 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 255 255 0 9999 0 100 100 100 -1 7 1 4 100 -128 0 127 0 0 0 0 0 7 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 255 255 0 9999 0 100 100 100 +1 5 1 4 100 127 0 127 0 0 0 0 0 5 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 32767 255 0 9999 0 100 100 100 +1 7 1 4 100 127 0 127 0 0 0 0 0 7 1 9999 0 100 1 4 127 127 127 127 127 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 32767 exposed 32767 255 0 9999 0 100 100 100 1 9 1 4 0 0 0 0 0 0 0 0 0 9 1 0 0 100 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0 1 11 1 4 0 0 0 0 0 0 0 0 0 11 1 0 0 100 1 4 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0 2 -11 1 4 0 0 0 0 0 0 0 0 0 -11 1 0 0 100 1 4 0 0 0 0 0 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 0 0 0 0 0 @@ -198,9 +198,9 @@ uid owner xloc yloc type effic mobil off tech opx opy mission radius fleet xstar 0 0 1 -1 2 0 2 0 100 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 healthy 0 0 0 "" 0 "" 1 -1 3 () "" 1 98 1 -1 2 20 0 0 100 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 1 "" 1 -1 3 () "" 2 2 3 -1 2 20 -127 0 20 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 2 "" 1 -1 3 (group) "" -3 3 1 -1 2 20 -128 0 20 0 0 none 0 "a" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 "" 3 "" 1 -1 3 (injured) "jj" +3 3 1 -1 2 20 -127 0 20 0 0 none 0 "a" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 3 "" 1 -1 3 (injured) "jj" 4 3 1 -1 2 100 127 0 32767 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 exposed 32767 0 0 "" 4 "" 1 -1 3 () "" -5 3 1 -1 2 100 -128 0 32767 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 51 0 0 0 0 0 0 0 0 0 0 0 0 5 -32768 0 0 "" 3 "" 1 -1 3 () "" +5 3 1 -1 2 100 127 0 32767 0 0 none 0 "" 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 0 0 0 0 exposed 32767 0 0 "" 3 "" 1 -1 3 () "" 6 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 0 "" 0 0 0 () "" 7 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 0 "" 0 0 0 () "" 8 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 0 0 "" 0 "" 0 0 0 () "" @@ -250,10 +250,10 @@ config plane uid owner xloc yloc type effic mobil off tech opx opy mission radius wing range harden ship land flags access theta 0 0 1 -1 0 0 2 0 100 0 0 none 0 "" 9 0 -1 -1 () 0 0.00000 1 98 1 -1 0 10 0 0 100 0 0 none 0 "" 9 0 -1 -1 () 0 0.00000 -2 2 3 -1 0 10 -127 0 50 0 0 none 0 "" 0 0 9999 -1 (airburst) 0 0.00000 -3 3 1 -1 0 10 -127 0 50 0 0 none 0 "a" 4 0 3 -1 () 0 0.00000 +2 2 3 -1 0 10 -127 0 50 0 0 none 0 "" 0 0 -1 -1 (airburst) 0 0.00000 +3 3 1 -1 0 10 -127 0 50 0 0 none 0 "a" 0 0 3 -1 () 0 0.00000 4 3 1 -1 0 100 127 0 32767 0 0 none 0 "" 18 0 4 -1 () 0 0.00000 -5 3 1 -1 0 100 -128 0 32767 0 0 none 0 "" 18 0 -1 -1 () 0 0.00000 +5 3 1 -1 0 100 127 0 32767 0 0 none 0 "" 18 0 -1 -1 () 0 0.00000 6 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 -1 -1 () 0 0.00000 7 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 -1 -1 () 0 0.00000 8 0 0 0 0 0 0 0 0 0 0 none 0 "" 0 0 -1 -1 () 0 0.00000 @@ -303,10 +303,10 @@ config land uid owner xloc yloc type effic mobil off tech opx opy mission radius army ship harden retreat rflags rpath civil milit shell gun petrol iron dust bar food oil lcm hcm uw rad pstage ptime land access 0 0 1 -1 6 0 2 0 100 0 0 none 0 "" -1 0 42 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 1 98 1 -1 6 10 0 0 100 0 0 none 0 "" -1 0 42 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 -2 2 3 -1 6 10 -127 0 50 0 0 none 0 "" 9999 0 0 (group) "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 -3 3 1 -1 6 10 -128 0 50 0 0 none 0 "a" 3 0 -1 (injured) "jj" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 +2 2 3 -1 6 10 -127 0 50 0 0 none 0 "" -1 0 0 (group) "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 +3 3 1 -1 6 10 -127 0 50 0 0 none 0 "a" 3 0 0 (injured) "jj" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 4 3 1 -1 6 100 127 0 32767 0 0 none 0 "" 4 127 100 () "" 0 25 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 -5 3 1 -1 6 100 -128 0 32767 0 0 none 0 "" -1 -128 101 () "" 0 26 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 +5 3 1 -1 6 100 127 0 32767 0 0 none 0 "" -1 127 100 () "" 0 25 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 6 0 0 0 0 0 0 0 0 0 0 none 0 "" -1 0 0 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 7 0 0 0 0 0 0 0 0 0 0 none 0 "" -1 0 0 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 8 0 0 0 0 0 0 0 0 0 0 none 0 "" -1 0 0 () "" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 healthy 0 -1 0 @@ -379,12 +379,12 @@ config nat cnum stat flags cname passwd ip hostname userid xcap ycap xorg yorg update tgms ann timeused btu access milreserve money login logout newstim annotim tech research education happiness relations(0) relations(1) relations(2) relations(3) relations(4) relations(5) relations(6) relations(7) relations(8) relations(9) relations(10) relations(11) relations(12) relations(13) relations(14) relations(15) relations(16) relations(17) relations(18) relations(19) relations(20) relations(21) relations(22) relations(23) relations(24) relations(25) relations(26) relations(27) relations(28) relations(29) relations(30) relations(31) relations(32) relations(33) relations(34) relations(35) relations(36) relations(37) relations(38) relations(39) relations(40) relations(41) relations(42) relations(43) relations(44) relations(45) relations(46) relations(47) relations(48) relations(49) relations(50) relations(51) relations(52) relations(53) relations(54) relations(55) relations(56) relations(57) relations(58) relations(59) relations(60) relations(61) relations(62) relations(63) relations(64) relations(65) relations(66) relations(67) relations(68) relations(69) relations(70) relations(71) relations(72) relations(73) relations(74) relations(75) relations(76) relations(77) relations(78) relations(79) relations(80) relations(81) relations(82) relations(83) relations(84) relations(85) relations(86) relations(87) relations(88) relations(89) relations(90) relations(91) relations(92) relations(93) relations(94) relations(95) relations(96) relations(97) relations(98) contacts(0) contacts(1) contacts(2) contacts(3) contacts(4) contacts(5) contacts(6) contacts(7) contacts(8) contacts(9) contacts(10) contacts(11) contacts(12) contacts(13) contacts(14) contacts(15) contacts(16) contacts(17) contacts(18) contacts(19) contacts(20) contacts(21) contacts(22) contacts(23) contacts(24) contacts(25) contacts(26) contacts(27) contacts(28) contacts(29) contacts(30) contacts(31) contacts(32) contacts(33) contacts(34) contacts(35) contacts(36) contacts(37) contacts(38) contacts(39) contacts(40) contacts(41) contacts(42) contacts(43) contacts(44) contacts(45) contacts(46) contacts(47) contacts(48) contacts(49) contacts(50) contacts(51) contacts(52) contacts(53) contacts(54) contacts(55) contacts(56) contacts(57) contacts(58) contacts(59) contacts(60) contacts(61) contacts(62) contacts(63) contacts(64) contacts(65) contacts(66) contacts(67) contacts(68) contacts(69) contacts(70) contacts(71) contacts(72) contacts(73) contacts(74) contacts(75) contacts(76) contacts(77) contacts(78) contacts(79) contacts(80) contacts(81) contacts(82) contacts(83) contacts(84) contacts(85) contacts(86) contacts(87) contacts(88) contacts(89) contacts(90) contacts(91) contacts(92) contacts(93) contacts(94) contacts(95) contacts(96) contacts(97) contacts(98) rejects(0) rejects(1) rejects(2) rejects(3) rejects(4) rejects(5) rejects(6) rejects(7) rejects(8) rejects(9) rejects(10) rejects(11) rejects(12) rejects(13) rejects(14) rejects(15) rejects(16) rejects(17) rejects(18) rejects(19) rejects(20) rejects(21) rejects(22) rejects(23) rejects(24) rejects(25) rejects(26) rejects(27) rejects(28) rejects(29) rejects(30) rejects(31) rejects(32) rejects(33) rejects(34) rejects(35) rejects(36) rejects(37) rejects(38) rejects(39) rejects(40) rejects(41) rejects(42) rejects(43) rejects(44) rejects(45) rejects(46) rejects(47) rejects(48) rejects(49) rejects(50) rejects(51) rejects(52) rejects(53) rejects(54) rejects(55) rejects(56) rejects(57) rejects(58) rejects(59) rejects(60) rejects(61) rejects(62) rejects(63) rejects(64) rejects(65) rejects(66) rejects(67) rejects(68) rejects(69) rejects(70) rejects(71) rejects(72) rejects(73) rejects(74) rejects(75) rejects(76) rejects(77) rejects(78) rejects(79) rejects(80) rejects(81) rejects(82) rejects(83) rejects(84) rejects(85) rejects(86) rejects(87) rejects(88) rejects(89) rejects(90) rejects(91) rejects(92) rejects(93) rejects(94) rejects(95) rejects(96) rejects(97) rejects(98) 0 deity (flash beep coastwatch sonar techlists) "POGO" "peter" "127.0.0.1" "" "tester" 0 0 0 0 0 0 0 255 640 0 0 123455839 0 0 0 0 400.000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 1 active (flash beep coastwatch sonar techlists) "1" "1" "" "" "" 0 0 0 0 0 1 0 255 0 0 0 -2147483648 0 0 0 0 3.14000 3.14000 3.14000 3.14000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () -2 active (flash beep coastwatch sonar techlists) "2" "0123456789012345678" "" "" "" 2 0 2 0 0 1 0 255 0 0 -1 0 0 0 0 0 100.000 100.000 100.000 100.000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () -3 active (flash beep coastwatch sonar techlists) "drei" "3" "" "" "" 0 0 0 0 0 1 0 255 640 0 0 0 0 0 0 0 -1.00000 -1.00000 -1.00000 -1.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () -4 deity (flash beep coastwatch sonar techlists) "4" "4" "" "" "" 0 0 0 0 0 0 0 255 641 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () +2 active (flash beep coastwatch sonar techlists) "2" "0123456789012345678" "" "" "" 2 0 2 0 0 1 0 255 0 0 0 0 0 0 0 0 100.000 100.000 100.000 100.000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () +3 active (flash beep coastwatch sonar techlists) "drei" "3" "" "" "" 0 0 0 0 0 1 0 255 640 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () +4 deity (flash beep coastwatch sonar techlists) "4" "4" "" "" "" 0 0 0 0 0 0 0 255 640 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 5 deity (flash beep coastwatch sonar techlists) "5" "5" "" "" "" 0 0 0 0 0 0 0 255 640 0 0 0 0 0 0 0 1.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () -6 unused (flash beep coastwatch sonar techlists) "6" "6" "" "" "" 0 0 0 0 0 65535 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () -7 unused (flash beep coastwatch sonar techlists) "7" "7" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () +6 unused (flash beep coastwatch sonar techlists) "6" "6" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () +7 unused (flash beep coastwatch sonar techlists) "7" "7" "" "" "" 0 0 0 0 0 65535 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 8 unused () "" "" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 9 unused () "" "" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 10 unused () "" "" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () diff --git a/tests/actofgod/journal.log b/tests/actofgod/journal.log index 5ca2388a..b29b35e4 100644 --- a/tests/actofgod/journal.log +++ b/tests/actofgod/journal.log @@ -180,7 +180,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 7,1 m 128 Play#0 command edit - Play#0 output Play#0 1 Mobility of 7,1 changed from 0 to 128 + Play#0 output Play#0 1 Mobility of 7,1 changed from 0 to 127 Play#0 output Play#0 6 0 640 Play#0 input setsect mo 1,3 -2147483648 Play#0 command setsector @@ -542,11 +542,11 @@ Play#0 output Play#0 6 0 640 Play#0 input edit l 5,1 t 32767 Play#0 command edit - Play#0 output Play#0 1 Plague time of 5,1 changed from 0 to 255 + Play#0 output Play#0 1 Plague time of 5,1 changed from 0 to 32767 Play#0 output Play#0 6 0 640 Play#0 input edit l 7,1 t 32768 Play#0 command edit - Play#0 output Play#0 1 Plague time of 7,1 changed from 0 to 255 + Play#0 output Play#0 1 Plague time of 7,1 changed from 0 to 32767 Play#0 output Play#0 6 0 640 Play#0 input edit l 1,1 F 0 Play#0 command edit @@ -1122,6 +1122,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit p 2 s -1 s 9999 Play#0 command edit + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit p 3 s 3 Play#0 command edit @@ -1131,6 +1132,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit u 2 S -1 S 9999 Play#0 command edit + Play#0 output Play#0 1 Usage: edit [ ]... Play#0 output Play#0 6 0 640 Play#0 input edit u 3 S 3 Play#0 command edit @@ -1241,7 +1243,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit c 4 b 641 Play#0 command edit - Play#0 output Play#0 1 BTU's changed from 0 to 641 + Play#0 output Play#0 1 BTU's changed from 0 to 640 Play#0 output Play#0 6 0 640 Play#0 input edit c 1 m 0 Play#0 command edit @@ -1249,7 +1251,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit c 2 m -1 Play#0 command edit - Play#0 output Play#0 1 Military reserves changed from 0 to -1 + Play#0 output Play#0 1 Military reserves changed from 0 to 0 Play#0 output Play#0 6 0 640 Play#0 input edit c 3 m 2147483647 Play#0 command edit @@ -1295,7 +1297,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit c 3 T -1 Play#0 command edit - Play#0 output Play#0 1 Tech changed from 0.00 to -1.00. + Play#0 output Play#0 1 Tech changed from 0.00 to 0.00. Play#0 output Play#0 6 0 640 Play#0 input edit c 1 R 3.14 Play#0 command edit @@ -1307,7 +1309,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit c 3 R -1 Play#0 command edit - Play#0 output Play#0 1 Research changed from 0.00 to -1.00. + Play#0 output Play#0 1 Research changed from 0.00 to 0.00. Play#0 output Play#0 6 0 640 Play#0 input edit c 1 E 3.14 Play#0 command edit @@ -1319,7 +1321,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit c 3 E -1 Play#0 command edit - Play#0 output Play#0 1 Education changed from 0.00 to -1.00. + Play#0 output Play#0 1 Education changed from 0.00 to 0.00. Play#0 output Play#0 6 0 640 Play#0 input edit c 1 H 3.14 Play#0 command edit @@ -1331,7 +1333,7 @@ Play#0 output Play#0 6 0 640 Play#0 input edit c 3 H -1 Play#0 command edit - Play#0 output Play#0 1 Happiness changed from 0.00 to -1.00. + Play#0 output Play#0 1 Happiness changed from 0.00 to 0.00. Play#0 output Play#0 6 0 640 Play#0 input edit c 1 n POGO Play#0 command edit @@ -1432,7 +1434,7 @@ Play#0 output Play#0 1 Mobility in 1,1 was changed from 0 to -127 by an act of POGO Play#0 output Play#0 1 Mobility in 3,1 was changed from 0 to -127 by an act of POGO Play#0 output Play#0 1 Mobility in 5,1 was changed from 0 to 127 by an act of POGO - Play#0 output Play#0 1 Mobility in 7,1 was changed from 0 to 128 by an act of POGO + Play#0 output Play#0 1 Mobility in 7,1 was changed from 0 to 127 by an act of POGO Play#0 output Play#0 1 Iron ore content in 1,1 was changed from 0 to 0 by an act of POGO Play#0 output Play#0 1 Iron ore content in 3,1 was changed from 0 to 0 by an act of POGO Play#0 output Play#0 1 Iron ore content in 5,1 was changed from 0 to 127 by an act of POGO @@ -1551,7 +1553,7 @@ Play#0 output Play#0 1 cs cargo ship (#2) given to you by deity intervention! Play#0 output Play#0 1 f1 Sopwith Camel #2 given to you by deity intervention! Play#0 output Play#0 1 sup supply #2 given to you by deity intervention! - Play#0 output Play#0 1 Military reserves changed from 0 to -1 by divine intervention. + Play#0 output Play#0 1 Military reserves changed from 0 to 0 by divine intervention. Play#0 output Play#0 6 0 640 Play#0 input read 3 Play#0 command read diff --git a/tests/actofgod/server.log b/tests/actofgod/server.log index f7ea409f..ad2aae2f 100644 --- a/tests/actofgod/server.log +++ b/tests/actofgod/server.log @@ -10,11 +10,7 @@ tester@127.0.0.1 logged in as country #0 Oops: id < 0 in ../src/lib/common/file.c:973 Oops: id < 0 in ../src/lib/common/file.c:973 Oops: id < 0 in ../src/lib/common/file.c:973 -Oops: item[i] < 0 in ../src/lib/subs/sect.c:98 -Oops: item[i] < 0 in ../src/lib/subs/sect.c:98 -Oops: new >= nclink[type] in ../src/lib/common/cargo.c:190 Oops: ship >= 0 && land >= 0 in ../src/lib/subs/plane.c:77 -Oops: new >= nclink[type] in ../src/lib/common/cargo.c:190 Oops: ship >= 0 && land >= 0 in ../src/lib/subs/land.c:78 tester@127.0.0.1 logged out, country #0 Shutdown commencing (cleaning up threads.)