} else { $ipstr = "---"; } $auxres = mysql_query("SELECT SUM(uploaded) AS pul, SUM(downloaded) AS pdl FROM peers WHERE userid = " . $user['id']) or sqlerr(__FILE__, __LINE__); $array = mysql_fetch_array($auxres); $pul = $array['pul']; $pdl = $array['pdl']; $auxres = mysql_query("SELECT COUNT(DISTINCT p.id) FROM posts AS p LEFT JOIN topics as t ON p.topicid = t.id\r\n \tLEFT JOIN forums AS f ON t.forumid = f.id WHERE p.userid = " . $user['id'] . " AND f.minclassread <= " . $CURUSER['class']) or sqlerr(__FILE__, __LINE__); $n = mysql_fetch_row($auxres); $n_posts = $n[0]; $auxres = mysql_query("SELECT COUNT(id) FROM comments WHERE user = "******"SELECT COUNT(c.id) FROM comments AS c LEFT JOIN torrents as t ON c.torrent = t.id WHERE c.user = '******'id']."'") or sqlerr(__FILE__, __LINE__); $n = mysql_fetch_row($auxres); $n_comments = $n[0]; echo "<tr><td><b><a href='userdetails.php?id=" . $user['id'] . "'>" . $user['username'] . "</a></b>" . get_user_icons($user) . "</td>" . "<td>" . ratios($user['uploaded'], $user['downloaded']) . "</td>\r\n <td>" . $ipstr . "</td><td>" . $user['email'] . "</td>\r\n <td><div align=center>" . $user['added'] . "</div></td>\r\n <td><div align=center>" . $user['last_access'] . "</div></td>\r\n <td><div align=center>" . $user['status'] . "</div></td>\r\n <td><div align=center>" . $user['enabled'] . "</div></td>\r\n <td><div align=center>" . ratios($pul, $pdl) . "</div></td>" . "<td><div align=right>" . prefixed($pul) . "</div></td>\r\n <td><div align=right>" . prefixed($pdl) . "</div></td>\r\n <td><div align=center>" . ($n_posts ? "<a href=/userhistory.php?action=viewposts&id=" . $user['id'] . ">{$n_posts}</a>" : $n_posts) . "|" . ($n_comments ? "<a href=/userhistory.php?action=viewcomments&id=" . $user['id'] . ">{$n_comments}</a>" : $n_comments) . "</div></td></tr>\n"; } echo "</table>"; if ($count > $perpage) { echo "{$pagerbottom}"; } ?> <br><br> <form method=post action=/new_announcement.php> <table border="1" cellpadding="5" cellspacing="0"> <tr> <td> <div align="center"> <input name="n_pms" type="hidden" value="<?php print $count; ?>
} else { $ipstr = "<a href='/testip.php?ip=" . $user['last_ip'] . "'><font color='#FF0000'><b>" . $user['last_ip'] . "</b></font></a>"; } } else { $ipstr = "---"; } $resip = mysql_query("SELECT ip FROM iplog WHERE userid=" . $user['id'] . " GROUP BY userid") or sqlerr(__FILE__, __LINE__); $iphistory = mysql_num_rows($resip); if ($user["invited_by"] > 0) { $auxres = mysql_query("SELECT username FROM users WHERE id={$user['invited_by']}"); $array = mysql_fetch_array($auxres); $invited_by = $array["username"]; if ($invited_by == "") { $invited_by = "<i>[Deleted]</i>"; } else { $invited_by = "<a href=userdetails.php?id={$user['invited_by']}>{$invited_by}</a>"; } } else { $invited_by = "--"; } echo "<tr><td><b><a href='userdetails.php?id=" . $user['id'] . "'>" . $user['username'] . "</a></b>" . get_user_icons($user) . "</td>" . "<td>" . ratios($user['uploaded'], $user['downloaded']) . "</td>\r\n<td>" . $user['email'] . "</td><td>" . $ipstr . "</td>\r\n<td><div align=center>" . $user['last_access'] . "</div></td>\r\n<td><div align=center><b><a href=iphistory.php?id=" . $user['id'] . ">" . $iphistory . "</a></b></div></td>\r\n<td><div align=center>" . $user['access'] . "</div></td>\r\n<td><div align=center>" . $user['added'] . "</div></td>\r\n<td><div align=center>" . $invited_by . "</div></td>\r\n</tr>\n"; } echo "</table>"; if ($count > $perpage) { echo $pagerbottom; } end_frame(); } end_main_frame(); stdfoot(); die;
$tmpip = explode(".", $CURUSER["ip"]); $ip = $tmpip[0] . "." . $tmpip[1] . "." . $tmpip[2] . ".0"; $regex = "/^(((1?\\d{1,2})|(2[0-4]\\d)|(25[0-5]))(\\.\\b|\$)){4}\$/"; if (substr($mask, 0, 1) == "/") { $n = substr($mask, 1, strlen($mask) - 1); if (!is_numeric($n) or $n < 0 or $n > 32) { stdmsg($tracker_lang['error'], "Неверная маска подсети."); stdfoot(); die; } else { $mask = long2ip(pow(2, 32) - pow(2, 32 - $n)); } } elseif (!preg_match($regex, $mask)) { stdmsg("Оишбка", "Неверная маска подсети."); stdfoot(); die; } $res = sql_query("SELECT id, username, class, last_access, added, uploaded, downloaded FROM users WHERE enabled='yes' AND status='confirmed' AND id <> {$CURUSER['id']} AND INET_ATON(ip) & INET_ATON('{$mask}') = INET_ATON('{$ip}') & INET_ATON('{$mask}')") or sqlerr(__FILE__, __LINE__); if (mysql_num_rows($res)) { stdhead("Сетевые соседи"); print "<table border=1 cellspacing=0 cellpadding=5>\n"; print "<tr><td class=colhead align=center colspan=8>:: Сетевые соседи ::</td></tr><tr><td colspan=8>Эти пользователи ваши сетевые соседи, что означает что вы получите от них скорость выше.</td></tr>"; print "<tr><td class=colhead align=left>Пользователь</td>\r\n<td class=colhead>Раздал</td><td class=colhead>Скачал</td>\r\n<td class=colhead>Рейтинг</td><td class=colhead>Зарегистрирован</td>\r\n<td class=colhead>Последний доступ</td><td class=colhead align=left>Класс</td>\r\n<td class=colhead>IP</td></tr>\n"; while ($arr = mysql_fetch_assoc($res)) { print "<tr><td align=left><b><a href=userdetails.php?id={$arr['id']}>" . get_user_class_color($arr["class"], $arr["username"]) . "</a></b></td>\r\n<td>" . mksize($arr["uploaded"]) . "</td>\r\n<td>" . mksize($arr["downloaded"]) . "</td>\r\n<td>" . ratios($arr["uploaded"], $arr["downloaded"]) . "</td>\r\n<td>{$arr['added']}</td><td>{$arr['last_access']}</td>\r\n<td align=left>" . get_user_class_name($arr["class"]) . "</td>\r\n<td>" . $tmpip[0] . "." . $tmpip[1] . "." . $tmpip[2] . ".*</td></tr>\n"; } print "</table>"; stdfoot(); } else { stderr("Информация", "Сетевых соседей не обнаружено."); }
$comment = $_POST['comment']; $snapshot = $_POST['snap']; // add a custom text or stats snapshot to comments in profile if ($comment || $snapshot) { $res = mysql_query("SELECT u.id, u.uploaded, u.downloaded, u.modcomment " . $from_is) or sqlerr(__FILE__, __LINE__); if (mysql_num_rows($res) > 0) { $l = 0; while ($user = mysql_fetch_assoc($res)) { unset($new); $new = ''; $old = $user['modcomment']; if ($comment) { $new .= $comment; } if ($snapshot) { $new .= ($new ? "\n" : "") . "{$lang['takemessage_mmed']}, " . gmdate("Y-m-d") . ", " . "{$lang['takemessage_ul']}: " . mksize($user['uploaded']) . ", " . "{$lang['takemessage_dl']}: " . mksize($user['downloaded']) . ", " . "{$lang['takemessage_r']}: " . ratios($user['uploaded'], $user['downloaded']) . " - " . ($_POST['sender'] == $lang['takemessage_system'] ? $lang['takemessage_System'] : $CURUSER['username']); } $new .= $old ? "\n" . $old : $old; mysql_query("UPDATE users SET modcomment = " . sqlesc($new) . " WHERE id = " . $user['id']) or sqlerr(__FILE__, __LINE__); if (mysql_affected_rows()) { $l++; } } } } } else { ////// PM /// $receiver = isset($_POST["receiver"]) ? $_POST["receiver"] : false; $origmsg = isset($_POST["origmsg"]) ? $_POST["origmsg"] : false; $save = isset($_POST["save"]) ? $_POST["save"] : false; $returnto = isset($_POST["returnto"]) ? $_POST["returnto"] : '';
$comment = $_POST['comment']; $snapshot = $_POST['snap']; // add a custom text or stats snapshot to comments in profile if ($comment || $snapshot) { $res = mysql_query("SELECT u.id, u.uploaded, u.downloaded, u.modcomment " . $from_is) or sqlerr(__FILE__, __LINE__); if (mysql_num_rows($res) > 0) { $l = 0; while ($user = mysql_fetch_assoc($res)) { unset($new); $new = ''; $old = $user['modcomment']; if ($comment) { $new .= $comment; } if ($snapshot) { $new .= ($new ? "\n" : "") . "MMed, " . gmdate("Y-m-d") . ", " . "UL: " . mksize($user['uploaded']) . ", " . "DL: " . mksize($user['downloaded']) . ", " . "r: " . ratios($user['uploaded'], $user['downloaded']) . " - " . ($_POST['sender'] == "system" ? "System" : $CURUSER['username']); } $new .= $old ? "\n" . $old : $old; mysql_query("UPDATE users SET modcomment = " . sqlesc($new) . " WHERE id = " . $user['id']) or sqlerr(__FILE__, __LINE__); if (mysql_affected_rows()) { $l++; } } } } } else { ////// PM /// $receiver = isset($_POST["receiver"]) ? $_POST["receiver"] : false; $origmsg = isset($_POST["origmsg"]) ? $_POST["origmsg"] : false; $save = isset($_POST["save"]) ? $_POST["save"] : false; $returnto = isset($_POST["returnto"]) ? $_POST["returnto"] : '';
$user['last_access'] = '---'; } if ($user['ip']) { $ipstr = $user['ip']; } else { $ipstr = "---"; } $pul = $user['uploaded']; $pdl = $user['downloaded']; $auxres = SQL_Query_exec("SELECT COUNT(DISTINCT p.id) FROM forum_posts AS p LEFT JOIN forum_topics as t ON p.topicid = t.id\n\t\t\tLEFT JOIN forum_forums AS f ON t.forumid = f.id WHERE p.userid = " . $user['id'] . " AND f.minclassread <= " . $CURUSER['class']); $n = mysql_fetch_row($auxres); $n_posts = $n[0]; $auxres = SQL_Query_exec("SELECT COUNT(id) FROM comments WHERE user = "******"<tr><td class='table_col1' align='center'><b><a href='account-details.php?id={$user['id']}'>{$user['username']}</a></b></td>" . "<td class='table_col2' align='center'>" . $ipstr . "</td><td class='table_col1' align='center'>" . $user['email'] . "</td>" . "<td class='table_col2' align='center'>" . utc_to_tz($user['added']) . "</td>" . "<td class='table_col1' align='center'>" . $user['last_access'] . "</td>" . "<td class='table_col2' align='center'>" . $user['status'] . "</td>" . "<td class='table_col1' align='center'>" . $user['enabled'] . "</td>" . "<td class='table_col2' align='center'>" . ratios($pul, $pdl) . "</td>" . "<td class='table_col1' align='center'>" . mksize($user['uploaded']) . "</td>" . "<td class='table_col2' align='center'>" . mksize($user['downloaded']) . "</td>" . "<td class='table_col1' align='center'>{$n_posts} " . P_("POST", $n_posts) . "<br />{$n_comments} " . P_("COMMENT", $n_comments) . "</td>" . "<td class='table_col2' align='center'>" . ($user["enabled"] == "yes" && $user["warned"] == "no" ? "--" : ($user["enabled"] == "no" ? "<img src=\"images/disable.png\" title=\"" . T_("DISABLED") . "\" alt=\"Disabled\" />" : "") . ($user["warned"] == "yes" ? "<img src=\"images/warned.png\" title=\"" . T_("WARNED") . "\" alt=\"Warned\" />" : "")) . "</td>" . "<td class='table_col1' align='center'><input type='checkbox' name=\"warndisable[]\" value='" . $user['id'] . "' /><input type='hidden' name=\"referer\" value=\"{$_SERVER['REQUEST_URI']}\" /></td></tr>\n"; } echo "</table>\n <br />\n\t\t\t<table border='0' align='center' cellspacing='0' cellpadding='0'>\n\t\t\t<tr><td colspan='2'></td></tr>\n\t\t\t<tr><td align='right'><img src=\"images/disable.png\" alt=\"Disabled\" /> <input type='submit' name='disable' value=\"Disable Selected Accounts\" /></td><td style=\"border: none; padding: 2px;\" align='left'><input type='submit' name='enable' value=\"Enable Selected Accounts\" /> <img src=\"images/disable.png\" alt=\"Disabled\" /> <img src=\"images/check.gif\" alt=\"Ok\" /></td></tr>\n\t\t\t<tr><td colspan='2'><br /><br /></td></tr>\n\t\t\t<tr><td align='center'><img src=\"images/warned.png\" alt=\"Warned\" /> <input type='submit' name='warn' value=\"Warn Selected\" /></td><td align='left'><input type='submit' name='unwarn' value=\"Remove Warning Selected\" /> <img src=\"images/warned.png\" alt=\"Warned\" /> <img src=\"images/check.gif\" alt=\"Ok\" /></td></tr>\n\t\t\t<tr><td align='center' colspan='2'>Mod Comment (reason):<input type='text' size='30' name='warnpm' /></td></tr>\n\t\t\t</table></form>\n"; if ($count > $perpage) { echo $pagerbottom; } } } end_frame(); stdfoot(); } // End Advanced User Search // Forum management if ($action == "forum") { $error_ac == ""; if ($_POST["do"] == "add_this_forum") {
} else { $ipstr = "<a href='{$TBDEV['baseurl']}/admin.php?action=testip&ip=" . $user['last_ip'] . "'><font color='#FF0000'><b>" . htmlspecialchars($user["last_ip"]) . "</b></font></a>"; } } else { $ipstr = "---"; } $resip = sql_query("SELECT ip FROM iplog WHERE userid=" . sqlesc($user["id"]) . " GROUP BY iplog.ip") or sqlerr(__FILE__, __LINE__); $iphistory = mysql_num_rows($resip); if ($user["invitedby"] > 0) { $res2 = sql_query("SELECT username FROM users WHERE id=" . sqlesc($user["invitedby"]) . ""); $array = mysql_fetch_array($res2); $invitedby = $array["username"]; if ($invitedby == "") { $invitedby = "<i>[Deleted]</i>"; } else { $invitedby = "<a href='{$TBDEV['baseurl']}/userdetails.php?id={$user['invitedby']}'>" . htmlspecialchars($invitedby) . "</a>"; } } else { $invitedby = "--"; } $HTMLOUT .= "<tr>\r\n\t \t<td><b><a href='{$TBDEV['baseurl']}/userdetails.php?id=" . $user['id'] . "'></a></b>" . format_username($user) . "</td>" . "<td>" . ratios($user['uploaded'], $user['downloaded']) . "</td>\r\n\t\t <td>" . $user['email'] . "</td><td>" . $ipstr . "</td>\r\n\t\t <td><div align='center'>" . get_date($user['last_access'], 'DATE', 1, 0) . "</div></td>\r\n\t\t <td><div align='center'><b><a href='{$TBDEV['baseurl']}/admin.php?action=iphistory&id=" . $user['id'] . "'>" . htmlspecialchars($iphistory) . "</a></b></div></td>\r\n\t\t <td><div align='center'>" . get_date($user['access'], 'DATE', 1, 0) . "</div></td>\r\n\t\t <td><div align='center'>" . get_date($user['added'], 'DATE', 1, 0) . "</div></td>\r\n\t\t <td><div align='center'>" . $invitedby . "</div></td>\r\n\t\t </tr>\n"; } $HTMLOUT .= "</table>"; if ($count > $perpage) { $pager['pagerbottom']; } $HTMLOUT .= end_frame(); } $HTMLOUT .= end_main_frame(); print stdhead("Ip Search") . $HTMLOUT . stdfoot(); die;
// Use LEFT JOIN to exclude orphan comments // $auxres = mysql_query("SELECT COUNT(c.id) FROM comments AS c LEFT JOIN torrents as t ON c.torrent = t.id WHERE c.user = '******'id']."'") or sqlerr(__FILE__, __LINE__); $n = mysql_fetch_row($auxres); $n_comments = $n[0]; echo "<tr><td><b><a href='userdetails.php?id=" . $user['id'] . "'>" . $user['username']."</a></b>" . ($user["donor"] == "yes" ? "<img src=pic/star.gif alt=\"Donor\">" : "") . ($user["warned"] == "yes" ? "<img src=\"/pic/warned.gif\" alt=\"Warned\">" : "") . "</td> <td>" . ratios($user['uploaded'], $user['downloaded']) . "</td> <td>" . $ipstr . "</td><td>" . $user['email'] . "</td> <td><div align=center>" . $user['added'] . "</div></td> <td><div align=center>" . $user['last_access'] . "</div></td> <td><div align=center>" . $user['status'] . "</div></td> <td><div align=center>" . $user['enabled']."</div></td> <td><div align=center>" . ratios($pul,$pdl) . "</div></td> <td><div align=right>" . number_format($pul / 1048576) . "</div></td> <td><div align=right>" . number_format($pdl / 1048576) . "</div></td> <td><div align=center>".($n_posts?"<a href=/userhistory.php?action=viewposts&id=".$user['id'].">$n_posts</a>":$n_posts). "|".($n_comments?"<a href=/userhistory.php?action=viewcomments&id=".$user['id'].">$n_comments</a>":$n_comments). "</div></td></tr>\n"; } echo "</table>"; if ($count > $perpage) echo "$pagerbottom"; /* <br><br> <form method=post action=/sendmessage.php> <table border="1" cellpadding="5" cellspacing="0"> <tr>
} else { $ipstr = "---"; } $auxres = sql_query("SELECT SUM(uploaded) AS pul, SUM(downloaded) AS pdl FROM peers WHERE userid = " . $user['id']) or sqlerr(__FILE__, __LINE__); $array = mysql_fetch_array($auxres); $pul = $array['pul']; $pdl = $array['pdl']; $auxres = sql_query("SELECT COUNT(DISTINCT p.id) FROM posts AS p LEFT JOIN topics as t ON p.topicid = t.id\n \tLEFT JOIN forums AS f ON t.forumid = f.id WHERE p.userid = " . $user['id'] . " AND f.minclassread <= " . $CURUSER['class']) or sqlerr(__FILE__, __LINE__); $n = mysql_fetch_row($auxres); $n_posts = $n[0]; $auxres = sql_query("SELECT COUNT(id) FROM comments WHERE user = "******"SELECT COUNT(c.id) FROM comments AS c LEFT JOIN torrents as t ON c.torrent = t.id WHERE c.user = '******'id']."'") or sqlerr(__FILE__, __LINE__); $n = mysql_fetch_row($auxres); $n_comments = $n[0]; echo "<tr><td>" . get_username($user['id']) . "</td>" . "<td>" . ratios($user['uploaded'], $user['downloaded']) . "</td>\n <td>" . $ipstr . "</td><td>" . $user['email'] . "</td>\n <td><div align=center>" . $user['added'] . "</div></td>\n <td><div align=center>" . $user['last_access'] . "</div></td>\n <td><div align=center>" . $user['status'] . "</div></td>\n <td><div align=center>" . $user['enabled'] . "</div></td>\n <td><div align=center>" . ratios($pul, $pdl) . "</div></td>" . "<td><div align=right>" . mksize($pul) . "</div></td>\n <td><div align=right>" . mksize($pdl) . "</div></td>\n <td><div align=center>" . ($n_posts ? "<a href=userhistory.php?action=viewposts&id=" . $user['id'] . ">{$n_posts}</a>" : $n_posts) . "|" . ($n_comments ? "<a href=userhistory.php?action=viewcomments&id=" . $user['id'] . ">{$n_comments}</a>" : $n_comments) . "</div></td></tr>\n"; } echo "</table>"; if ($count > $perpage) { echo "{$pagerbottom}"; } /* <br /><br /> <form method=post action=/sendmessage.php> <table border="1" cellpadding="5" cellspacing="0"> <tr> <td> <div align="center"> <input name="pmees" type="hidden" value="<?php echo $querypm?>" size=10> <input name="PM" type="submit" value="PM" class=btn> <input name="n_pms" type="hidden" value="<?php echo $count?>" size=10>
$partial = "Inf. " . mksize($pul) . "/" . mksize($pdl) . ")"; } else { $partial = "---"; } } // $auxres = mysql_query("SELECT COUNT(id) FROM posts WHERE userid = ".$user['id']) or sqlerr(__FILE__, __LINE__); $auxres = sql_query("SELECT COUNT(DISTINCT p.id)\r\n FROM posts AS p LEFT JOIN topics as t ON p.topic_id = t.id\r\n LEFT JOIN forums AS f ON t.forum_id = f.id\r\n WHERE p.user_id = " . $user['id'] . " AND f.min_class_read <= " . $CURUSER['class']) or sqlerr(__FILE__, __LINE__); $n = mysql_fetch_row($auxres); $n_posts = $n[0]; $auxres = sql_query("SELECT COUNT(id) FROM comments WHERE user = "******"SELECT COUNT(c.id) FROM comments AS c LEFT JOIN torrents as t ON c.torrent = t.id WHERE c.user = '******'id']."'") or sqlerr(__FILE__, __LINE__); $n = mysql_fetch_row($auxres); $n_comments = $n[0]; $ids .= $user['id'] . ':'; echo "<tr><td><b><a href='userdetails.php?id=" . $user['id'] . "'>" . $user['username'] . "</a></b>" . ($user["donor"] == "yes" ? "<img src='pic/star.gif' alt=\"Donor\" />" : "") . ($user["warned"] == "yes" ? "<img src=\"pic/warned.gif\" alt=\"Warned\" />" : "") . "</td>\r\n <td>" . ratios($user['uploaded'], $user['downloaded']) . "</td>\r\n <td>" . $ipstr . "</td><td>" . $user['email'] . "</td>\r\n <td><div align='center'>" . get_date($user['added'], '') . "</div></td>\r\n <td><div align='center'>" . get_date($user['last_access'], '', 0, 1) . "</div></td>\r\n <td><div align='center'>" . $user['status'] . "</div></td>\r\n <td><div align='center'>" . $user['enabled'] . "</div></td>\r\n <td><div align='center'>" . ratios($pul, $pdl) . "</div></td>\r\n <td><div align='right'>" . number_format($pul / 1048576) . "</div></td>\r\n <td><div align='right'>" . number_format($pdl / 1048576) . "</div></td>\r\n <td><div align='center'>" . ($n_posts ? "<a href='userhistory.php?action=viewposts&id=" . $user['id'] . "'>{$n_posts}</a>" : $n_posts) . "|" . ($n_comments ? "<a href='userhistory.php?action=viewcomments&id=" . $user['id'] . "'>{$n_comments}</a>" : $n_comments) . "</div></td></tr>\n"; } echo "</table>"; if ($count > $perpage) { echo $pager['pagerbottom']; } ?> <br /><br /> <form method='post' action='sendmessage.php'> <table border="1" cellpadding="5" cellspacing="0"> <tr> <td> <div align="center"> <!--<input name="pmees" type="hidden" value="<?php echo $querypm; ?>
if ($user["invitari"] > 0) { $auxres = mysql_query("SELECT username FROM users WHERE id=$user[invitari]"); $array = mysql_fetch_array($auxres); $invitari = $array["username"]; if ($invitari == "") $invitari = "<i>[Deleted]</i>"; else $invitari = "<a href=userdetails.php?id=$user[invitari]>$invitari</a>"; } else $invitari = "--"; echo "<tr><td><b><a href='userdetails.php?id=" . $user['id'] . "'>" . $user['username']."</a></b>" . get_user_icons($user) . "</td>". "<td>" . ratios($user['uploaded'], $user['downloaded']) . "</td> <td>" . $user['email'] . "</td><td>" . $ipstr . "</td> <td><div align=center>" . $user['last_access'] . "</div></td> <td><div align=center><b><a href=iphistory.php?id=" . $user['id'] . ">" . $iphistory. "</a></b></div></td> <td><div align=center>" . $user['access'] . "</div></td> <td><div align=center>" . $user['added'] . "</div></td> <td><div align=center>" . $invitari . "</div></td> </tr>\n"; } echo "</table>"; if ($count > $perpage) echo $pagerbottom; end_frame();