if (live.restUntil) rows.push(`<divclass="kv"><kbd>отдых / restUntil</kbd><div>${statusCountdownLine(live.restUntil)}</div></div>`);
if (live.restUntil) rows.push(`<divclass="kv"><kbd>отдых / restUntil</kbd><div>${statusCountdownLine(live.restUntil)}</div></div>`);
if (live.townLeaveAt) rows.push(`<divclass="kv"><kbd>в городе до выхода</kbd><div>${statusCountdownLine(live.townLeaveAt)}</div></div>`);
if (live.townLeaveAt) rows.push(`<divclass="kv"><kbd>в городе до выхода</kbd><div>${statusCountdownLine(live.townLeaveAt)}</div></div>`);
if (live.nextTownNPCRollAt) rows.push(`<divclass="kv"><kbd>след. событие NPC в городе</kbd><div>${statusCountdownLine(live.nextTownNPCRollAt)}</div></div>`);
if (live.nextTownNPCRollAt) rows.push(`<divclass="kv"><kbd>след. событие NPC в городе</kbd><div>${statusCountdownLine(live.nextTownNPCRollAt)}</div></div>`);
if (live.roadsideRestActive && live.roadsideRestEndAt) {
rows.push(`<divclass="kv"><kbd>отдых у обочины</kbd><div>${statusCountdownLine(live.roadsideRestEndAt)}</div></div>`);
rows.push(`<divclass="kv"><kbd>мини-приключение</kbd><divclass="muted">герой не в игре — оставшееся время приключения не считается (нужна открытая игра)</div></div>`);
}
}
if (tp) {
if (tp) {
if (tp.restUntil) rows.push(`<divclass="kv"><kbd>отдых (из БД)</kbd><div>${e(tp.restKind || "")}: ${statusCountdownLine(tp.restUntil)}</div></div>`);
if (tp.restUntil) rows.push(`<divclass="kv"><kbd>отдых (из БД)</kbd><div>${e(tp.restKind || "")}: ${statusCountdownLine(tp.restUntil)}</div></div>`);
if (tp.townLeaveAt) rows.push(`<divclass="kv"><kbd>выход из города (из БД)</kbd><div>${statusCountdownLine(tp.townLeaveAt)}</div></div>`);
if (tp.townLeaveAt) rows.push(`<divclass="kv"><kbd>выход из города (из БД)</kbd><div>${statusCountdownLine(tp.townLeaveAt)}</div></div>`);
if (tp.nextTownNPCRollAt) rows.push(`<divclass="kv"><kbd>NPC в городе (из БД)</kbd><div>${statusCountdownLine(tp.nextTownNPCRollAt)}</div></div>`);
if (tp.nextTownNPCRollAt) rows.push(`<divclass="kv"><kbd>NPC в городе (из БД)</kbd><div>${statusCountdownLine(tp.nextTownNPCRollAt)}</div></div>`);
if (tp.roadsideRestEndAt) rows.push(`<divclass="kv"><kbd>обочина (из БД)</kbd><div>${statusCountdownLine(tp.roadsideRestEndAt)}</div></div>`);
}
}
let pollNote = "";
let pollNote = "";
if (state._heroPollTimer && state._heroPollUntil) {
if (state._heroPollTimer && state._heroPollUntil) {