From 3a333716a29462325c1f6eda644513ab8d769e0a Mon Sep 17 00:00:00 2001 From: Newcomer1989 Date: Tue, 22 Sep 2020 18:56:47 +0200 Subject: [PATCH] release 1.3.12 --- install.php | 4 +- jobs/bot.php | 58 ++-- jobs/calc_serverstats.php | 1 + jobs/calc_user.php | 60 ++-- jobs/calc_userstats.php | 4 +- jobs/check_db.php | 23 +- jobs/handle_messages.php | 77 +++-- jobs/reset_rs.php | 12 +- jobs/server_usage.php | 2 +- jobs/update_groups.php | 22 +- ...\330\261\330\250\331\212\330\251_arab.php" | 27 +- "languages/core_az_Az\311\231rbaycan_az.php" | 27 +- .../core_cz_\304\214e\305\241tina_cz.php" | 36 ++- languages/core_de_Deutsch_de.php | 33 +- languages/core_en_english_gb.php | 33 +- "languages/core_es_espa\303\261ol_es.php" | 27 +- "languages/core_fr_fran\303\247ais_fr.php" | 27 +- languages/core_hu_Hungary_hu.php | 47 +-- languages/core_it_Italiano_it.php | 27 +- languages/core_nl_Nederlands_nl.php | 29 +- languages/core_pl_polski_pl.php | 31 +- "languages/core_pt_Portugu\303\252s_pt.php" | 27 +- .../core_ro_Rom\303\242n\304\203_ro.php" | 27 +- ...01\321\201\320\272\320\270\320\271_ru.php" | 27 +- languages/nations_pl.php | 2 +- libs/combined_st.css | 4 +- libs/combined_wi.css | 2 +- other/config.php | 5 +- stats/_footer.php | 15 + stats/{nav.php => _nav.php} | 0 stats/_preload.php | 26 ++ stats/assign_groups.php | 26 +- stats/footer.php | 5 - stats/imprint.php | 106 +++---- stats/index.php | 26 +- stats/info.php | 29 +- stats/list_rankup.php | 48 +-- stats/my_stats.php | 38 +-- stats/nations.php | 26 +- stats/platforms.php | 26 +- stats/privacy-policy.php | 57 ---- stats/privacy_policy.php | 32 ++ stats/top_all.php | 26 +- stats/top_month.php | 26 +- stats/top_week.php | 26 +- stats/update_graph.php | 1 - stats/verify.php | 28 +- stats/versions.php | 26 +- webinterface/_nav.php | 50 +-- webinterface/imprint.php | 290 ++++++++++-------- webinterface/msg.php | 28 +- webinterface/nav.php | 269 ---------------- webinterface/rank.php | 75 +++-- webinterface/stats.php | 28 +- 54 files changed, 842 insertions(+), 1192 deletions(-) create mode 100644 stats/_footer.php rename stats/{nav.php => _nav.php} (100%) create mode 100644 stats/_preload.php delete mode 100644 stats/footer.php delete mode 100644 stats/privacy-policy.php create mode 100644 stats/privacy_policy.php delete mode 100644 webinterface/nav.php diff --git a/install.php b/install.php index 1b3f7e2..bb8b28f 100644 --- a/install.php +++ b/install.php @@ -1,6 +1,6 @@  @@ -293,7 +293,7 @@ function install($type, $host, $user, $pass, $dbname, $lang, $mysqlcon, &$err_ms $nextupinfomsg3 = $mysqlcon->quote("You are excepted from the Ranksystem. If you wish to rank contact an admin on the TS3 server."); $servernews = $mysqlcon->quote("Message
This is an example Message.
Change this Message inside the webinterface."); $rankupmsg = $mysqlcon->quote('Hey, you reached a higher rank, since you already connected for %1$s days, %2$s hours and %3$s minutes to our TS3 server.[B]Keep it up![/B] ;-) '); - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_date_format', $dateformat), ('default_language', 'en'), ('logs_path', '{$logpath}'), ('logs_timezone', 'Europe/Berlin'), ('logs_debug_level', '5'), ('logs_rotation_size', '5'), ('rankup_boost_definition', ''), ('rankup_clean_clients_period', '86400'), ('rankup_clean_clients_switch', '1'), ('rankup_client_database_id_change_switch', '0'), ('rankup_definition', '31536000=>7'), ('rankup_excepted_channel_id_list', ''), ('rankup_excepted_group_id_list', ''), ('rankup_excepted_mode', '0'), ('rankup_excepted_unique_client_id_list', ''), ('rankup_hash_ip_addresses_mode', '2'), ('rankup_ignore_idle_time', '600'), ('rankup_message_to_user', $rankupmsg), ('rankup_message_to_user_switch', '1'), ('rankup_next_message_1', $nextupinfomsg1), ('rankup_next_message_2', $nextupinfomsg2), ('rankup_next_message_3', $nextupinfomsg3), ('rankup_next_message_mode', '1'), ('rankup_time_assess_mode', '0'), ('stats_api_keys', ''), ('stats_column_active_time_switch', '0'), ('stats_column_current_group_since_switch', '1'), ('stats_column_current_server_group_switch', '1'), ('stats_column_client_db_id_switch', '0'), ('stats_column_client_name_switch', '1'), ('stats_column_idle_time_switch', '1'), ('stats_column_last_seen_switch', '1'), ('stats_column_next_rankup_switch', '1'), ('stats_column_next_server_group_switch', '1'), ('stats_column_online_time_switch', '1'), ('stats_column_rank_switch', '1'), ('stats_column_unique_id_switch', '0'), ('stats_column_default_sort', 'rank'), ('stats_column_default_order', 'asc'), ('stats_server_news', $servernews), ('stats_show_clients_in_highest_rank_switch', '1'), ('stats_show_excepted_clients_switch', '1'), ('stats_show_maxclientsline_switch', 0), ('stats_show_site_navigation_switch', '1'), ('stats_time_bronze','50'), ('stats_time_silver','100'), ('stats_time_gold','250'), ('stats_time_legend','500'), ('stats_connects_bronze','50'), ('stats_connects_silver','100'), ('stats_connects_gold','250'), ('stats_connects_legend','500'), ('teamspeak_avatar_download_delay', '0'), ('teamspeak_default_channel_id', '0'), ('teamspeak_host_address', '127.0.0.1'), ('teamspeak_query_command_delay', '0'), ('teamspeak_query_encrypt_switch', '0'), ('teamspeak_query_nickname', 'Ranksystem'), ('teamspeak_query_pass', ''), ('teamspeak_query_port', '10011'), ('teamspeak_query_user', 'serveradmin'), ('teamspeak_verification_channel_id', '0'), ('teamspeak_voice_port', '9987'), ('version_current_using', '{$rsversion}'), ('version_latest_available', '{$rsversion}'), ('version_update_channel', 'stable'), ('webinterface_access_count', '0'), ('webinterface_access_last', '0'), ('webinterface_admin_client_unique_id_list', ''), ('webinterface_advanced_mode', '0'), ('webinterface_fresh_installation', '1'), ('webinterface_pass', '{$pass}'), ('webinterface_user', '{$user}');") === false) { + if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('default_date_format', $dateformat), ('default_language', 'en'), ('logs_path', '{$logpath}'), ('logs_timezone', 'Europe/Berlin'), ('logs_debug_level', '5'), ('logs_rotation_size', '5'), ('rankup_boost_definition', ''), ('rankup_clean_clients_period', '86400'), ('rankup_clean_clients_switch', '1'), ('rankup_client_database_id_change_switch', '0'), ('rankup_definition', '31536000=>7'), ('rankup_excepted_channel_id_list', ''), ('rankup_excepted_group_id_list', ''), ('rankup_excepted_mode', '0'), ('rankup_excepted_unique_client_id_list', ''), ('rankup_hash_ip_addresses_mode', '2'), ('rankup_ignore_idle_time', '600'), ('rankup_message_to_user', $rankupmsg), ('rankup_message_to_user_switch', '1'), ('rankup_next_message_1', $nextupinfomsg1), ('rankup_next_message_2', $nextupinfomsg2), ('rankup_next_message_3', $nextupinfomsg3), ('rankup_next_message_mode', '1'), ('rankup_time_assess_mode', '0'), ('stats_api_keys', ''), ('stats_column_active_time_switch', '0'), ('stats_column_current_group_since_switch', '1'), ('stats_column_current_server_group_switch', '1'), ('stats_column_client_db_id_switch', '0'), ('stats_column_client_name_switch', '1'), ('stats_column_idle_time_switch', '1'), ('stats_column_last_seen_switch', '1'), ('stats_column_next_rankup_switch', '1'), ('stats_column_next_server_group_switch', '1'), ('stats_column_online_time_switch', '1'), ('stats_column_rank_switch', '1'), ('stats_column_unique_id_switch', '0'), ('stats_column_default_sort', 'rank'), ('stats_column_default_order', 'asc'), ('stats_imprint_switch', '0'), ('stats_imprint_address', 'Max Mustermann
Musterstraße 13
05172 Musterhausen
Germany'), ('stats_imprint_address_url', 'https://site.url/imprint/'), ('stats_imprint_email', 'info@example.com'), ('stats_imprint_notes', NULL), ('stats_imprint_phone', '+49 171 1234567'), ('stats_imprint_privacypolicy', 'Add your own privacy policy here. (editable in the webinterface)'), ('stats_imprint_privacypolicy_url', 'https://site.url/privacy/'), ('stats_server_news', $servernews), ('stats_show_clients_in_highest_rank_switch', '1'), ('stats_show_excepted_clients_switch', '1'), ('stats_show_maxclientsline_switch', 0), ('stats_show_site_navigation_switch', '1'), ('stats_time_bronze','50'), ('stats_time_silver','100'), ('stats_time_gold','250'), ('stats_time_legend','500'), ('stats_connects_bronze','50'), ('stats_connects_silver','100'), ('stats_connects_gold','250'), ('stats_connects_legend','500'), ('teamspeak_avatar_download_delay', '0'), ('teamspeak_default_channel_id', '0'), ('teamspeak_host_address', '127.0.0.1'), ('teamspeak_query_command_delay', '0'), ('teamspeak_query_encrypt_switch', '0'), ('teamspeak_query_nickname', 'Ranksystem'), ('teamspeak_query_pass', ''), ('teamspeak_query_port', '10011'), ('teamspeak_query_user', 'serveradmin'), ('teamspeak_verification_channel_id', '0'), ('teamspeak_voice_port', '9987'), ('version_current_using', '{$rsversion}'), ('version_latest_available', '{$rsversion}'), ('version_update_channel', 'stable'), ('webinterface_access_count', '0'), ('webinterface_access_last', '0'), ('webinterface_admin_client_unique_id_list', ''), ('webinterface_advanced_mode', '0'), ('webinterface_fresh_installation', '1'), ('webinterface_pass', '{$pass}'), ('webinterface_user', '{$user}');") === false) { $err_msg = $lang['isntwidbmsg'].$mysqlcon->errorCode()." ".print_r($mysqlcon->errorInfo(), true); $err_lvl = 2; } else { $err_msg = $lang['isntwiusr'].'

'; diff --git a/jobs/bot.php b/jobs/bot.php index 0cca18e..e5418ae 100644 --- a/jobs/bot.php +++ b/jobs/bot.php @@ -133,32 +133,51 @@ function check_shutdown($cfg) { } enter_logfile($cfg,4,"Loading addons [done]"); -function sendmessage($ts3, $cfg, $uuid, $msg, $erromsg=NULL, $errcode=NULL, $successmsg=NULL, $nolog=NULL) { +function sendmessage($ts3, $cfg, $uuid, $targetmode, $targetid=NULL, $msg, $erromsg=NULL, $loglevel=NULL, $successmsg=NULL, $nolog=NULL) { try { if(strlen($msg) > 1024) { $fragarr = explode("##*##", wordwrap($msg, 1022, "##*##", TRUE), 1022); foreach($fragarr as $frag) { usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGetSelected()->clientGetByUid($uuid)->message("\n".$frag); - if($nolog==NULL) { - enter_logfile($cfg,6,"sendmessage to uuid $uuid (fragment): ".$frag); + if ($targetmode==2 && $targetid!=NULL) { + $ts3->serverGetSelected()->channelGetById($targetid)->message("\n".$frag); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage fragment to channel (ID: $targetid): ".$frag); + } elseif ($targetmode==3) { + $ts3->serverGetSelected()->message("\n".$frag); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage fragment to server: ".$frag); + } elseif ($targetmode==1 && $targetid!=NULL) { + $ts3->serverGetSelected()->clientGetById($targetid)->message("\n".$frag); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage fragment to connectionID $targetid (uuid $uuid): ".$frag); + } else { + $ts3->serverGetSelected()->clientGetByUid($uuid)->message("\n".$frag); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage fragment to uuid $uuid (connectionID $targetid): ".$frag); } } } else { usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGetSelected()->clientGetByUid($uuid)->message($msg); - if($nolog==NULL) { - enter_logfile($cfg,6,"sendmessage to uuid $uuid: ".$msg); + if ($targetmode==2 && $targetid!=NULL) { + $ts3->serverGetSelected()->channelGetById($targetid)->message($msg); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage to channel (ID: $targetid): ".$msg); + } elseif ($targetmode==3) { + $ts3->serverGetSelected()->message($msg); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage to server: ".$msg); + } elseif ($targetmode==1 && $targetid!=NULL) { + $ts3->serverGetSelected()->clientGetById($targetid)->message($msg); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage to connectionID $targetid (uuid $uuid): ".$msg); + } else { + $ts3->serverGetSelected()->clientGetByUid($uuid)->message($msg); + if($nolog==NULL) enter_logfile($cfg,6,"sendmessage to uuid $uuid (connectionID $targetid): ".$msg); } + } if($successmsg!=NULL) { enter_logfile($cfg,5,$successmsg); } } catch (Exception $e) { - if($errcode!=NULL) { - enter_logfile($cfg,$errcode,$erromsg." TS3: ".$e->getCode().': '.$e->getMessage()); + if($loglevel!=NULL) { + enter_logfile($cfg,$loglevel,$erromsg." TS3: ".$e->getCode().': '.$e->getMessage()); } else { - enter_logfile($cfg,3,"sendmessage: ".$e->getCode().': '.$e->getMessage()); + enter_logfile($cfg,3,"sendmessage: ".$e->getCode().': '.$e->getMessage().", targetmode: $targetmode, targetid: $targetid"); } } } @@ -297,7 +316,6 @@ function run_bot() { enter_logfile($cfg,9," Log Level: ".$loglevel); enter_logfile($cfg,6," Serverside config 'max_execution_time' (PHP.ini): ".$max_execution_time." sec."); enter_logfile($cfg,6," Serverside config 'memory_limit' (PHP.ini): ".$memory_limit); - $cfg['rankup_definition_flipped'] = array_flip($cfg['rankup_definition']); krsort($cfg['rankup_definition']); if(($groupslist = $mysqlcon->query("SELECT * FROM `$dbname`.`groups`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { @@ -307,8 +325,8 @@ function run_bot() { $checkgroups = 0; if(isset($groupslist) && $groupslist != NULL) { if(isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != NULL) { - foreach($cfg['rankup_definition'] as $time => $groupid) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { + foreach($cfg['rankup_definition'] as $rank) { + if(!isset($groupslist[$rank['group']]) && $rank['group'] != NULL) { $checkgroups++; } } @@ -351,9 +369,9 @@ function run_bot() { if(isset($groupslist) && $groupslist != NULL) { if(isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != NULL) { - foreach($cfg['rankup_definition'] as $time => $groupid) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - enter_logfile($cfg,1,' '.sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime'])); + foreach($cfg['rankup_definition'] as $rank) { + if(!isset($groupslist[$rank['group']]) && $rank['group'] != NULL) { + enter_logfile($cfg,1,' '.sprintf($lang['upgrp0001'], $rank['group'], $lang['wigrptime'])); $errcnf++; } } @@ -385,8 +403,8 @@ function run_bot() { } else { if($lastupdate['timestamp'] != 0 && ($lastupdate['timestamp'] + 10) > time()) { if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach(array_flip($cfg['webinterface_admin_client_unique_id_list']) as $clientid) { - sendmessage($ts3server, $cfg, $clientid, sprintf($lang['upmsg2'], $cfg['version_current_using'], 'https://ts-ranksystem.com/#changelog'), sprintf($lang['upusrerr'], $clientid), 6, sprintf($lang['upusrinf'], $clientid)); + foreach(array_flip($cfg['webinterface_admin_client_unique_id_list']) as $clientuuid) { + sendmessage($ts3server, $cfg, $clientuuid, NULL, sprintf($lang['upmsg2'], $cfg['version_current_using'], 'https://ts-ranksystem.com/#changelog'), sprintf($lang['upusrerr'], $clientuuid), 6, sprintf($lang['upusrinf'], $clientuuid)); } } } @@ -541,8 +559,8 @@ function run_bot() { if($looptime < 1) { $loopsleep = (1 - $looptime); - if($cfg['teamspeak_query_encrypt_switch'] == 1) { - // no wait for data to become available on the stream on SSH due issues with non-blocking mode + if($cfg['teamspeak_query_encrypt_switch'] == 1 || version_compare($ts3version['version'],'1.4.0','>=') && version_compare($ts3version['version'],'2.9.9','<=')) { + // no wait for data to become available on the stream on SSH due issues with non-blocking mode or TeaSpeak usleep(round($loopsleep * 1000000)); } else { $ts3server->getAdapter()->waittsn($loopsleep, 50000); // 50ms delay for CPU reason diff --git a/jobs/calc_serverstats.php b/jobs/calc_serverstats.php index d0ec7a8..24185f6 100644 --- a/jobs/calc_serverstats.php +++ b/jobs/calc_serverstats.php @@ -377,6 +377,7 @@ function calc_serverstats($ts3,$mysqlcon,&$cfg,$dbname,$dbtype,$serverinfo,&$db_ if ($db_cache['job_check']['get_version']['timestamp'] < ($nowtime - 43199)) { $db_cache['job_check']['get_version']['timestamp'] = $nowtime; + enter_logfile($cfg,6,"Get the latest Ranksystem Version."); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://ts-n.net/ranksystem/'.$cfg['version_update_channel']); curl_setopt($ch, CURLOPT_REFERER, 'TSN Ranksystem'); diff --git a/jobs/calc_user.php b/jobs/calc_user.php index 6f7ff4b..892d853 100644 --- a/jobs/calc_user.php +++ b/jobs/calc_user.php @@ -172,13 +172,15 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,&$d $dtT = new DateTime("@".round($activetime)); foreach($sgroups as $clientgroup => $dummy) { - if(isset($cfg['rankup_definition_flipped'][$clientgroup])) { - $client_groups_rankup[$clientgroup] = 0; + foreach($cfg['rankup_definition'] as $rank) { + if($rank['group'] == $clientgroup && $rank['keep'] == 0) { + $client_groups_rankup[$clientgroup] = 0; + } } } $grpcount=0; - foreach ($cfg['rankup_definition'] as $time => $groupid) { + foreach ($cfg['rankup_definition'] as $rank) { $grpcount++; if(isset($cfg['rankup_excepted_channel_id_list'][$client['cid']]) || (($db_cache['all_user'][$uid]['except'] == 3 || $db_cache['all_user'][$uid]['except'] == 2) && $cfg['rankup_excepted_mode'] == 1)) { $count = $db_cache['all_user'][$uid]['count']; @@ -186,41 +188,49 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,&$d if($except != 2 && $except != 3) { $except = 1; } - } elseif ($activetime > $time && !isset($cfg['rankup_excepted_unique_client_id_list'][$uid]) && ($cfg['rankup_excepted_group_id_list'] == NULL || !array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list']))) { - if (!isset($sgroups[$groupid])) { + } elseif ($activetime > $rank['time'] && !isset($cfg['rankup_excepted_unique_client_id_list'][$uid]) && ($cfg['rankup_excepted_group_id_list'] == NULL || !array_intersect_key($sgroups, $cfg['rankup_excepted_group_id_list']))) { + if (!isset($sgroups[$rank['group']])) { if ($db_cache['all_user'][$uid]['grpid'] != NULL && $db_cache['all_user'][$uid]['grpid'] != 0 && isset($sgroups[$db_cache['all_user'][$uid]['grpid']])) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->serverGroupClientDel($db_cache['all_user'][$uid]['grpid'], $client['client_database_id']); - enter_logfile($cfg,5,sprintf($lang['sgrprm'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'], $name, $uid, $client['client_database_id'])); - if(isset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']])) unset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']]); - } catch (Exception $e) { - enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); + $donotremove = 0; + foreach($cfg['rankup_definition'] as $rank2) { + if($rank2['group'] == $db_cache['all_user'][$uid]['grpid'] && $rank2['keep'] == 1 && $activetime > $rank2['time']) { + $donotremove = 1; break; + } + } + if($donotremove == 0) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->serverGroupClientDel($db_cache['all_user'][$uid]['grpid'], $client['client_database_id']); + enter_logfile($cfg,5,sprintf($lang['sgrprm'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'], $name, $uid, $client['client_database_id'])); + if(isset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']])) unset($client_groups_rankup[$db_cache['all_user'][$uid]['grpid']]); + } catch (Exception $e) { + enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$db_cache['all_user'][$uid]['grpid']]['sgidname'], $db_cache['all_user'][$uid]['grpid'])); + } } } usleep($cfg['teamspeak_query_command_delay']); try { - $ts3->serverGroupClientAdd($groupid, $client['client_database_id']); + $ts3->serverGroupClientAdd($rank['group'], $client['client_database_id']); $db_cache['all_user'][$uid]['grpsince'] = $nowtime; - enter_logfile($cfg,5,sprintf($lang['sgrpadd'], $db_cache['groups'][$groupid]['sgidname'], $groupid, $name, $uid, $client['client_database_id'])); + enter_logfile($cfg,5,sprintf($lang['sgrpadd'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'], $name, $uid, $client['client_database_id'])); if ($cfg['rankup_message_to_user_switch'] == 1) { $days = $dtF->diff($dtT)->format('%a'); $hours = $dtF->diff($dtT)->format('%h'); $mins = $dtF->diff($dtT)->format('%i'); $secs = $dtF->diff($dtT)->format('%s'); - sendmessage($ts3, $cfg, $uid, sprintf($cfg['rankup_message_to_user'],$days,$hours,$mins,$secs,$db_cache['groups'][$groupid]['sgidname'],$client['client_nickname']), sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$groupid]['sgidname'],$groupid), 2); + sendmessage($ts3, $cfg, $uid, 1, NULL, sprintf($cfg['rankup_message_to_user'],$days,$hours,$mins,$secs,$db_cache['groups'][$rank['group']]['sgidname'],$client['client_nickname']), sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$rank['group']]['sgidname'],$rank['group']), 2); } } catch (Exception $e) { - enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$groupid]['sgidname'], $groupid)); + enter_logfile($cfg,2,"TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $name, $uid, $client['client_database_id'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'])); } - $db_cache['all_user'][$uid]['grpid'] = $groupid; } if($grpcount == 1) { $db_cache['all_user'][$uid]['nextup'] = 0; } + $db_cache['all_user'][$uid]['grpid'] = $rank['group']; break; } else { - $db_cache['all_user'][$uid]['nextup'] = $time - $activetime; + $db_cache['all_user'][$uid]['nextup'] = $rank['time'] - $activetime; } } @@ -260,20 +270,20 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,&$d $db_cache['all_user'][$uid]['except'] = $except; } else { $db_cache['all_user'][$uid]['grpid'] = 0; - foreach ($cfg['rankup_definition'] as $time => $groupid) { - if (isset($sgroups[$groupid])) { - $db_cache['all_user'][$uid]['grpid'] = $groupid; + foreach ($cfg['rankup_definition'] as $rank) { + if (isset($sgroups[$rank['group']])) { + $db_cache['all_user'][$uid]['grpid'] = $rank['group']; break; } } $insertdata[] = array( "uuid" => $mysqlcon->quote($client['client_unique_identifier'], ENT_QUOTES), "cldbid" => $client['client_database_id'], - "count" => 0, + "count" => $addtime, "name" => $name, "lastseen" => $nowtime, "grpid" => $db_cache['all_user'][$uid]['grpid'], - "nextup" => (key($cfg['rankup_definition']) - 1), + "nextup" => (key($cfg['rankup_definition']) - $addtime), "idle" => 0, "cldgroup" => $client['client_servergroups'], "boosttime" => 0, @@ -286,9 +296,9 @@ function calc_user($ts3,$mysqlcon,$lang,$cfg,$dbname,$allclients,$phpcommand,&$d "cid" => $client['cid'] ); $db_cache['all_user'][$uid]['cldbid'] = $client['client_database_id']; - $db_cache['all_user'][$uid]['count'] = 0; + $db_cache['all_user'][$uid]['count'] = $addtime; $db_cache['all_user'][$uid]['idle'] = 0; - $db_cache['all_user'][$uid]['nextup'] = (key($cfg['rankup_definition']) - 1); + $db_cache['all_user'][$uid]['nextup'] = (key($cfg['rankup_definition']) - $addtime); $db_cache['all_user'][$uid]['firstcon'] = $nowtime; $db_cache['all_user'][$uid]['boosttime'] = 0; $db_cache['all_user'][$uid]['grpsince'] = 0; diff --git a/jobs/calc_userstats.php b/jobs/calc_userstats.php index 53b6822..c110941 100644 --- a/jobs/calc_userstats.php +++ b/jobs/calc_userstats.php @@ -79,11 +79,11 @@ function calc_userstats($ts3,$mysqlcon,$cfg,$dbname,&$db_cache) { $sqlexec .= "UPDATE `$dbname`.`user` SET `cldbid`={$getcldbid[0]} WHERE `uuid`='$uuid';\n"; // select current user_snapshot entries and insert this with the new database-ID foreach($userdata[$userstats['cldbid']] as $id => $data) { - $allinsert .= "('{$getcldbid[0]}',$id,{$data['count']},{$data['idle']}),"; + $allinsert .= "($id,'{$getcldbid[0]}',{$data['count']},{$data['idle']}),"; } if ($allinsert != '') { $allinsert = substr($allinsert, 0, -1); - $sqlexec .= "INSERT INTO `$dbname`.`user_snapshot` (`cldbid`,`id`,`count`,`idle`) VALUES $allinsert ON DUPLICATE KEY UPDATE `count_week`=VALUES(`count_week`),`count_month`=VALUES(`count_month`),`idle_week`=VALUES(`idle_week`);\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}';\n"; + $sqlexec .= "INSERT INTO `$dbname`.`user_snapshot` (`id`,`cldbid`,`count`,`idle`) VALUES $allinsert ON DUPLICATE KEY UPDATE `count`=VALUES(`count`),`idle`=VALUES(`idle`);\nDELETE FROM `$dbname`.`user_snapshot` WHERE `cldbid`='{$userstats['cldbid']}';\n"; } unset($allinsert); enter_logfile($cfg,4," Store new cldbid ".$getcldbid[0]." for client (uuid: ".$uuid." old cldbid: ".$userstats['cldbid'].")"); diff --git a/jobs/check_db.php b/jobs/check_db.php index b4b6a02..687f574 100644 --- a/jobs/check_db.php +++ b/jobs/check_db.php @@ -1,6 +1,6 @@ exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { } - if($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { } - if($mysqlcon->exec("INSERT INTO `$dbname`.`addons_config` (`param`,`value`) VALUES ('assign_groups_excepted_groupids','');") === false) { } else { enter_logfile($cfg,4," [1.3.11] Adjusted table addons_config successfully."); } @@ -360,10 +357,20 @@ function check_writable($cfg,$mysqlcon) { if($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { } } - if(version_compare($cfg['version_current_using'], '1.3.11', '<')) { - if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('imprint_enabled', '0'),('imprint_address', 'Max Mustermann
Musterstraße 13
05172 Musterhausen
Germany'),('imprint_email', 'info@example.com'),('imprint_phone', '+49 171 1234567'),('imprint_notes', NULL),('imprint_privacy-policy', 'Add your own privacy policy here. (editable in the webinterface)');") === false) { } else { - enter_logfile($cfg,4," [1.3.11] Added new imprint values."); + if(version_compare($cfg['version_current_using'], '1.3.12', '<')) { + if($mysqlcon->exec("DELETE FROM `$dbname`.`admin_addtime`;") === false) { } + if($mysqlcon->exec("DELETE FROM `$dbname`.`addon_assign_groups`;") === false) { } + + if($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('stats_imprint_switch', '0'),('stats_imprint_address', 'Max Mustermann
Musterstraße 13
05172 Musterhausen
Germany'),('stats_imprint_address_url', 'https://site.url/imprint/'), ('stats_imprint_email', 'info@example.com'),('stats_imprint_phone', '+49 171 1234567'),('stats_imprint_notes', NULL),('stats_imprint_privacypolicy', 'Add your own privacy policy here. (editable in the webinterface)'),('stats_imprint_privacypolicy_url', 'https://site.url/privacy/');") === false) { } else { + enter_logfile($cfg,4," [1.3.12] Added new imprint values."); } + + if($mysqlcon->exec("CREATE INDEX `snapshot_id` ON `$dbname`.`user_snapshot` (`id`)") === false) { } + if($mysqlcon->exec("CREATE INDEX `snapshot_cldbid` ON `$dbname`.`user_snapshot` (`cldbid`)") === false) { } + if($mysqlcon->exec("CREATE INDEX `serverusage_timestamp` ON `$dbname`.`server_usage` (`timestamp`)") === false) { } + if($mysqlcon->exec("CREATE INDEX `user_version` ON `$dbname`.`user` (`version`)") === false) { } + if($mysqlcon->exec("CREATE INDEX `user_cldbid` ON `$dbname`.`user` (`cldbid` ASC,`uuid`,`rank`)") === false) { } + if($mysqlcon->exec("CREATE INDEX `user_online` ON `$dbname`.`user` (`online`,`lastseen`)") === false) { } } $cfg = set_new_version($mysqlcon,$cfg,$dbname); } diff --git a/jobs/handle_messages.php b/jobs/handle_messages.php index 2ab8a43..267dd12 100644 --- a/jobs/handle_messages.php +++ b/jobs/handle_messages.php @@ -2,8 +2,18 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3_Node_Host $host) { global $lang,$cfg,$mysqlcon,$dbname,$phpcommand,$ts3,$whoami; + enter_logfile($cfg,6,"whoami: ".print_r($host->whoami(),true)); + if($event["targetmode"] == 1) { + $targetid = $event["invokerid"]; + } elseif($event["targetmode"] == 2) { + $targetid = $host->whoami()["client_channel_id"]; + } else { + $targetid = NULL; + } - if($host->whoami()["client_unique_identifier"] != $event["invokeruid"] && substr($event["msg"],0,1) === "!") { + enter_logfile($cfg,6,"event: ".print_r($event,true)); + + if($host->whoami()["client_id"] != $event["invokerid"] && substr($event["msg"],0,1) === "!") { $uuid = $event["invokeruid"]; $admin = 0; foreach(array_flip($cfg['webinterface_admin_client_unique_id_list']) as $auuid) { @@ -11,9 +21,9 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 $admin = 1; } } - + enter_logfile($cfg,6,"Client ".$event["invokername"]." (".$event["invokeruid"].") sent textmessage: ".$event["msg"]); - + if((strstr($event["msg"], '!nextup') || strstr($event["msg"], '!next')) && $cfg['rankup_next_message_mode'] != 0) { if(($user = $mysqlcon->query("SELECT `count`,`nextup`,`idle`,`except`,`name`,`rank`,`grpsince`,`grpid` FROM `$dbname`.`user` WHERE `uuid`='$uuid'")->fetch()) === false) { enter_logfile($cfg,2,"handle_messages 1:".print_r($mysqlcon->errorInfo(), true)); @@ -26,11 +36,12 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 ksort($cfg['rankup_definition']); $countgrp = count($cfg['rankup_definition']); $grpcount = 0; - foreach ($cfg['rankup_definition'] as $time => $groupid) { + + foreach ($cfg['rankup_definition'] as $rank) { if ($cfg['rankup_time_assess_mode'] == 1) { - $nextup = $time - $user['count'] + $user['idle']; + $nextup = $rank['time'] - $user['count'] + $user['idle']; } else { - $nextup = $time - $user['count']; + $nextup = $rank['time'] - $user['count']; } $dtF = new DateTime("@0"); $dtT = new DateTime("@".round($nextup)); @@ -40,15 +51,16 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 $secs = $dtF->diff($dtT)->format('%s'); $name = $user['name']; $grpcount++; - if ($nextup > 0 && $nextup < $time || $grpcount == $countgrp && $nextup <= 0) { + if ($nextup > 0 && $nextup < $rank['time'] || $grpcount == $countgrp && $nextup <= 0) { if ($grpcount == $countgrp && $nextup <= 0) { - $msg = sprintf($cfg['rankup_next_message_2'], $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); + $msg = sprintf($cfg['rankup_next_message_2'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); } elseif ($user['except'] == 2 || $user['except'] == 3) { - $msg = sprintf($cfg['rankup_next_message_3'], $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); + $msg = sprintf($cfg['rankup_next_message_3'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); } else { - $msg = sprintf($cfg['rankup_next_message_1'], $days, $hours, $mins, $secs, $sqlhisgroup[$groupid]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); + $msg = sprintf($cfg['rankup_next_message_1'], $days, $hours, $mins, $secs, $sqlhisgroup[$rank['group']]['sgidname'], $name, $user['rank'], $sqlhisgroup[$user['grpid']]['sgidname'], date('Y-m-d H:i:s', $user['grpsince'])); } - sendmessage($host,$cfg,$event["invokeruid"],$msg); + $targetid = $event["invokerid"]; + sendmessage($host, $cfg, $event["invokeruid"], 1, $targetid, $msg); if($cfg['rankup_next_message_mode'] == 1) { break; } @@ -60,22 +72,22 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 if(strstr($event["msg"], '!version')) { if(version_compare($cfg['version_latest_available'], $cfg['version_current_using'], '>') && $cfg['version_latest_available'] != '') { - sendmessage($host,$cfg,$event["invokeruid"],sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog')); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, sprintf($lang['upmsg'], $cfg['version_current_using'], $cfg['version_latest_available'], 'https://ts-ranksystem.com/#changelog')); } else { - sendmessage($host,$cfg,$event["invokeruid"],sprintf($lang['msg0001'], $cfg['version_current_using'])); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, sprintf($lang['msg0001'], $cfg['version_current_using'])); } return; } if(strstr($event["msg"], '!help') || strstr($event["msg"], '!info') || strstr($event["msg"], '!commands') || strstr($event["msg"], '!cmd')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0002']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0002']); return; } if((strstr($event["msg"], '!shutdown') || strstr($event["msg"], '!quit') || strstr($event["msg"], '!stop')) && $admin == 1) { enter_logfile($cfg,5,sprintf($lang['msg0004'], $event["invokername"], $event["invokeruid"])); $path = substr(__DIR__, 0, -4); - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0005']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0005']); if (substr(php_uname(), 0, 7) == "Windows") { exec("start ".$phpcommand." ".$path."worker.php stop"); file_put_contents(substr(__DIR__,0,-4).'logs\autostart_deactivated',""); @@ -85,14 +97,14 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 } shutdown($mysql,$cfg,4,"Stop command received!"); } elseif (strstr($event["msg"], '!shutdown') || strstr($event["msg"], '!quit') || strstr($event["msg"], '!stop')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0003']); return; } if((strstr($event["msg"], '!restart') || strstr($event["msg"], '!reboot')) && $admin == 1) { enter_logfile($cfg,5,sprintf($lang['msg0007'], $event["invokername"], $event["invokeruid"], "restart")); $path = substr(__DIR__, 0, -4); - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0006']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0006']); if (substr(php_uname(), 0, 7) == "Windows") { exec("start ".$phpcommand." ".$path."worker.php restart"); } else { @@ -100,7 +112,7 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 } return; } elseif (strstr($event["msg"], '!restart') || strstr($event["msg"], '!reboot')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0003']); return; } @@ -108,10 +120,10 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('check_update','get_version','calc_server_stats')") === false) { enter_logfile($cfg,4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); } - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0008']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0008']); return; } elseif(strstr($event["msg"], '!checkupdate') || strstr($event["msg"], '!update')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0003']); return; } @@ -120,10 +132,10 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 if($mysqlcon->exec("UPDATE `$dbname`.`job_check` SET `timestamp`='0' WHERE `job_name` IN ('clean_db','clean_clients')") === false) { enter_logfile($cfg,4,"handle_messages 13:".print_r($mysqlcon->errorInfo(), true)); } - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0009'] ." ". $lang['msg0010']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0009'] ." ". $lang['msg0010']); return; } elseif(strstr($event["msg"], '!clean')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0003']); return; } @@ -135,25 +147,25 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 enter_logfile($cfg,4,"handle_messages 15:".print_r($mysqlcon->errorInfo(), true)); } } - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0011'] ." ". $lang['msg0010']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0011'] ." ". $lang['msg0010']); return; } elseif(strstr($event["msg"], '!reloadgroups')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0003']); return; } if(strstr($event["msg"], '!online') || strstr($event["msg"], '!uptime')) { - sendmessage($host, $cfg, $event["invokeruid"], sprintf("Bot is online since %s, now %s.", (DateTime::createFromFormat('U', $cfg['temp_last_botstart'])->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s")), (new DateTime("@0"))->diff(new DateTime("@".(time()-$cfg['temp_last_botstart'])))->format($cfg['default_date_format']))); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, sprintf("Bot is online since %s, now %s.", (DateTime::createFromFormat('U', $cfg['temp_last_botstart'])->setTimeZone(new DateTimeZone($cfg['logs_timezone']))->format("Y-m-d H:i:s")), (new DateTime("@0"))->diff(new DateTime("@".(time()-$cfg['temp_last_botstart'])))->format($cfg['default_date_format']))); return; } if(strstr($event["msg"], '!runtime') || strstr($event["msg"], '!runtimes')) { - sendmessage($host, $cfg, $event["invokeruid"], sprintf("Last 10 runtimes (in seconds):\n%s\n\nØ %s sec. (Σ %s)", str_replace(";","\n",$cfg['temp_last_laptime']), round(($cfg['temp_whole_laptime'] / $cfg['temp_count_laptime']),5), $cfg['temp_count_laptime'])); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, sprintf("Last 10 runtimes (in seconds):\n%s\n\nØ %s sec. (Σ %s)", str_replace(";","\n",$cfg['temp_last_laptime']), round(($cfg['temp_whole_laptime'] / $cfg['temp_count_laptime']),5), $cfg['temp_count_laptime'])); return; } if(strstr($event["msg"], '!memory')) { - sendmessage($host, $cfg, $event["invokeruid"], sprintf("Allocated memory of PHP for the Ranksystem Bot..\ncurrent using: %s KiB\npeak using: %s KiB", round((memory_get_usage()/1024),2), round((memory_get_peak_usage()/1024),2))); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, sprintf("Allocated memory of PHP for the Ranksystem Bot..\ncurrent using: %s KiB\npeak using: %s KiB", round((memory_get_usage()/1024),2), round((memory_get_peak_usage()/1024),2))); return; } @@ -199,7 +211,7 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 } } } else { - $lines[] = "Perhaps the logfile got rotated or something goes wrong due opening file!\n"; + $lines[] = "Perhaps the logfile got rotated or something goes wrong due opening the file!\n"; $lines[] = "No log entry found...\n"; } $lines = array_reverse($lines); @@ -207,12 +219,13 @@ function handle_messages(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3 foreach ($lines as $line) { $message .= $line; } - sendmessage($host, $cfg, $event["invokeruid"], $message, NULL, NULL, NULL, $nolog=1); + $targetid = $event["invokerid"]; + sendmessage($host, $cfg, $event["invokeruid"], 1, $targetid, $message, NULL, NULL, NULL, $nolog=1); } elseif(strstr($event["msg"], '!logs') || strstr($event["msg"], '!log')) { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0003']); + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0003']); } - } elseif($host->whoami()["client_unique_identifier"] != $event["invokeruid"] && $event["targetmode"] == "1") { - sendmessage($host, $cfg, $event["invokeruid"], $lang['msg0002']); + + sendmessage($host, $cfg, $event["invokeruid"], $event["targetmode"], $targetid, $lang['msg0002']); } } ?> \ No newline at end of file diff --git a/jobs/reset_rs.php b/jobs/reset_rs.php index b24ca2c..9b73465 100644 --- a/jobs/reset_rs.php +++ b/jobs/reset_rs.php @@ -22,20 +22,20 @@ function reset_rs($ts3,$mysqlcon,$lang,$cfg,$dbname,&$db_cache) { shutdown($mysqlcon,$cfg,1,"Select on DB failed: ".print_r($mysqlcon->errorInfo(), true)); } - foreach ($cfg['rankup_definition'] as $time => $groupid) { - enter_logfile($cfg,5," Getting TS3 servergrouplist for ".$db_cache['groups'][$groupid]['sgidname']." (ID: ".$groupid.")"); + foreach ($cfg['rankup_definition'] as $rank) { + enter_logfile($cfg,5," Getting TS3 servergrouplist for ".$db_cache['groups'][$rank['group']]['sgidname']." (ID: ".$rank['group'].")"); try { usleep($cfg['teamspeak_query_command_delay']); - $tsclientlist = $ts3->servergroupclientlist($groupid); + $tsclientlist = $ts3->servergroupclientlist($rank['group']); foreach ($tsclientlist as $tsclient) { if (isset($all_clients[$tsclient['cldbid']])) { try { usleep($cfg['teamspeak_query_command_delay']); - $ts3->serverGroupClientDel($groupid, $tsclient['cldbid']); - enter_logfile($cfg,5," ".sprintf($lang['sgrprm'], $db_cache['groups'][$groupid]['sgidname'], $groupid, $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'])); + $ts3->serverGroupClientDel($rank['group'], $tsclient['cldbid']); + enter_logfile($cfg,5," ".sprintf($lang['sgrprm'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'], $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'])); } catch (Exception $e) { - enter_logfile($cfg,2," TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'], $db_cache['groups'][$groupid]['sgidname'], $groupid)); + enter_logfile($cfg,2," TS3 error: ".$e->getCode().': '.$e->getMessage()." ; ".sprintf($lang['sgrprerr'], $all_clients[$tsclient['cldbid']]['name'], $all_clients[$tsclient['cldbid']]['uuid'], $tsclient['cldbid'], $db_cache['groups'][$rank['group']]['sgidname'], $rank['group'])); $err_cnt++; } } diff --git a/jobs/server_usage.php b/jobs/server_usage.php index 53d57cd..93ab144 100644 --- a/jobs/server_usage.php +++ b/jobs/server_usage.php @@ -29,7 +29,7 @@ function server_usage($mysqlcon,$cfg,$dbname,$serverinfo,&$db_cache) { $dtT = new DateTime("@".round($count)); } $grpcount=0; - foreach ($cfg['rankup_definition'] as $time => $groupid) { + foreach ($cfg['rankup_definition'] as $time => $dummy) { $grpcount++; if ($activetime > $time) { if($grpcount == 1) { diff --git a/jobs/update_groups.php b/jobs/update_groups.php index 9934c27..334e799 100644 --- a/jobs/update_groups.php +++ b/jobs/update_groups.php @@ -170,15 +170,19 @@ function update_groups($ts3,$mysqlcon,$lang,$cfg,$dbname,$serverinfo,&$db_cache, if(!isset($tsgroupids[$sgid]) && $sgid != 0 && $sgid != NULL) { $delsgroupids .= $sgid . ","; unset($db_cache['groups'][$sgid]); - if(in_array($sgid, $cfg['rankup_definition'])) { - enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); - if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { - foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { - usleep($cfg['teamspeak_query_command_delay']); - try { - $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); - } catch (Exception $e) { - enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + foreach($cfg['rankup_definition'] as $rank) { + if(in_array($sgid, $rank)) { + if(in_array($sgid, $cfg['rankup_definition'])) { + enter_logfile($cfg,2,sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); + if(isset($cfg['webinterface_admin_client_unique_id_list']) && $cfg['webinterface_admin_client_unique_id_list'] != NULL) { + foreach ($cfg['webinterface_admin_client_unique_id_list'] as $clientid) { + usleep($cfg['teamspeak_query_command_delay']); + try { + $ts3->clientGetByUid($clientid)->message(sprintf($lang['upgrp0001'], $sgid, $lang['wigrptime'])); + } catch (Exception $e) { + enter_logfile($cfg,6," ".sprintf($lang['upusrerr'], $clientid)); + } + } } } } diff --git "a/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" "b/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" index 8d11678..b8549b2 100644 --- "a/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" +++ "b/languages/core_ar_\330\247\331\204\330\271\330\261\330\250\331\212\330\251_arab.php" @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "تم الوصول الى اعلى رتبة"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Installation"; $lang['instdb'] = "تنصيب قاعدة البيانات"; @@ -120,7 +116,7 @@ $lang['pass3'] = "old password"; $lang['pass4'] = "new password"; $lang['pass5'] = "Forgot Password?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "repeat"; $lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; $lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "ترفيع رتبة"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9=>0,120=>10=>0,180=>11=>0
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "List Rankup (Admin-Mode)"; $lang['wihladm0'] = "Function description (click)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "إعدادات"; $lang['wiignidle'] = "Ignoriere Idle"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that point for the Ranksystem as idle time.

This function matters only in conjunction with the mode 'active time'.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 Sec. = disable this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes as active time."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Logpath"; $lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; $lang['wilogout'] = "تسجيل الخروج"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; $lang['winav11'] = "Please define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; $lang['winav12'] = "Addons"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Other"; diff --git "a/languages/core_az_Az\311\231rbaycan_az.php" "b/languages/core_az_Az\311\231rbaycan_az.php" index 1693dc2..1f27ed6 100644 --- "a/languages/core_az_Az\311\231rbaycan_az.php" +++ "b/languages/core_az_Az\311\231rbaycan_az.php" @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "ən yüksək dərəcəyə çatdı"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Quraşdırma"; $lang['instdb'] = "Verilənlər bazasını quraşdırın"; @@ -120,7 +116,7 @@ $lang['pass3'] = "köhnə şifrə"; $lang['pass4'] = "yeni şifrə"; $lang['pass5'] = "Şifrənizi unutmusunuz?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "təkrar"; $lang['resettime'] = "Istifadəçi %s (unikal Müştəri-ID: %s; Client-database-ID: %s) onlayn və boş vaxtını sıfırla bərpa et, bir istisna (server və ya müştəri istisnası) həyata çıxardı."; $lang['sccupcount'] = "Unikal Müştərilər üçün ID (%s) üçün %s saniyəlik aktiv vaxt bir neçə saniyə əlavə olunacaq (Ranksystem jurnalına baxın)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "sıralama tərifi"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Burada müəyyən olunduqdan sonra istifadəçi avtomatik olaraq əvvəlcədən təyin edilmiş server qrupunu almalıdır.

vaxt (saniyə)=>server qrup ID

Maks. dəyər 999.999.999 saniyə (31 ildən çoxdur)

Bunun üçün mühüm rejimdən asılı olaraq istifadəçinin 'onlayn vaxt' və ya 'aktiv vaxt' olması vacibdir.

Hər bir giriş vergüllə bir-birindən ayrı olmalıdır.

Vaxt kumulyativ şəkildə təqdim edilməlidir

Məsələn:
60=>9,120=>10,180=>11
Bu nümunədə bir istifadəçi 60 saniyə sonra server qrup 9, server qrup 10 digər 60 saniyə sonra, server qrup 11 digər 60 saniyə sonra alır."; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Burada müəyyən olunduqdan sonra istifadəçi avtomatik olaraq əvvəlcədən təyin edilmiş server qrupunu almalıdır.

vaxt (saniyə) => server qrup ID  => permanent flag

Maks. dəyər 999.999.999 saniyə (31 ildən çoxdur)

Bunun üçün mühüm rejimdən asılı olaraq istifadəçinin 'onlayn vaxt' və ya 'aktiv vaxt' olması vacibdir.

Hər bir giriş vergüllə bir-birindən ayrı olmalıdır.

Vaxt kumulyativ şəkildə təqdim edilməlidir

Məsələn:
60=>9=>0,120=>10=>0,180=>11=>0
Bu nümunədə bir istifadəçi 60 saniyə sonra server qrup 9, server qrup 10 digər 60 saniyə sonra, server qrup 11 digər 60 saniyə sonra alır."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Siyahı sıralaması (Admin-Mod)"; $lang['wihladm0'] = "Təsvirin açıqlaması (klikləyin)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "ayarlar"; $lang['wiignidle'] = "Boş vaxt"; $lang['wiignidledesc'] = "Bir istifadəçinin boş vaxtını nəzərə almadan bir müddət müəyyənləşdirin.

Bir müştəri serverdə heç bir şey etməzsə (=idle), bu dəfə Ranksystem tərəfindən müəyyən edilir. Bu funksiya ilə müəyyən bir limitə qədər istifadəçinin boş vaxtları onlayn kimi qiymətləndirilmir, əksinə, aktiv vaxt hesab olunur. Yalnız müəyyən edilmiş həddən artıq olduqda, bu nöqtədən Ranks System üçün boş vaxt kimi sayılır.

Bu funksiya yalnız rejimi ilə əlaqəli məsələdir 'active time'.

Bu funksiyanın mənası, məs. söhbətlərdə dinləmə müddətini bir fəaliyyət kimi qiymətləndirir

0 saniyə = funksiyanı dayandırır

Məsələn:
Boş vaxt = 600 (saniyə)
Müştəri 8 dəqiqə dayanır.
└ 8 dəqiqəlik boşluqlar göz ardı olunacaq və istifadəçi buna görə də bu vaxtı aktiv olaraq alır. Kəsintilər artıq 12 dəqiqə artıb, onda vaxt 10 dəqiqə və bu halda 2 dəqiqə boş vaxt kimi hesablanır olunacaq, ilk 10 dəqiqə hələ də fəal vaxt kimi qəbul olunacaqdır."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Jurnal yolları"; $lang['wilogdesc'] = "Sıralama sistemi log fayl yolu.

Məsələn:
/var/logs/Ranksystem/

Əmin olun ki, Webuser (= veb sahəsi istifadəçisi) günlük faylına yazma icazəsi var."; $lang['wilogout'] = "Çıxış"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Xahiş edirik web saytını yalnız %sHTTPS%s istifadə edin. Şifrələmə gizlilik və təhlükəsizliyinizə əmin olmaq üçün vacibdir.%sTelefonunuzun HTTPS istifadə edə bilməsi üçün SSL bağlantısını dəstəkləmək lazımdır."; $lang['winav11'] = "Xahiş edirik, Ranksystem (TeamSpeak -> Bot-Admin) administratorunun unikal Müştəri ID daxil edin. Veb interfeys üçün giriş məlumatlarınızı unutmusunuzsa (sıfırlamaq üçün) çox vacibdir."; $lang['winav12'] = "Əlavələr"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Verilənlər bazası"; $lang['winav3'] = "Əsas Parametr"; $lang['winav4'] = "Başqa"; diff --git "a/languages/core_cz_\304\214e\305\241tina_cz.php" "b/languages/core_cz_\304\214e\305\241tina_cz.php" index c9504f7..ccbdac0 100644 --- "a/languages/core_cz_\304\214e\305\241tina_cz.php" +++ "b/languages/core_cz_\304\214e\305\241tina_cz.php" @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "Nejvyšší rank byl již dosažen!"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Adresa"; -$lang['imprint_email'] = "E-Mailová adresa"; -$lang['imprint_notes'] = "Dodatečné informace"; -$lang['imprint_phone'] = "Telefon"; $lang['insec'] = "v Sekundách"; $lang['install'] = "Instalace"; $lang['instdb'] = "Nainstalovat databázi"; @@ -120,7 +116,7 @@ $lang['pass3'] = "Staré heslo"; $lang['pass4'] = "Nové heslo"; $lang['pass5'] = "Zapomenuté heslo?"; -$lang['privacy-policy'] = "Zásady ochrany osobních údajů"; +$lang['privacy'] = "Zásady ochrany osobních údajů"; $lang['repeat'] = "Opakovat (obnovit)"; $lang['resettime'] = "Obnovení času online a nečinnosti uživatele% s (jedinečné ID klienta:% s; klientské databáze-ID% s) na nulu, což způsobilo, že uživatel byl odstraněn z výjimky."; $lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; @@ -155,7 +151,7 @@ $lang['stag0011'] = "Maximální počet ikonek: "; $lang['stag0012'] = "nastavit skupiny"; $lang['stag0013'] = "Modul ON/OFF"; -$lang['stag0014'] = "Zapněte doplněk ON (zapnuto) nebo OFF (vypnuto).

Při deaktivaci doplňku se možná část na statistiku / webu skryje."; +$lang['stag0014'] = "Zapněte doplněk ON (enabled) nebo OFF (disabled).

Při deaktivaci doplňku se možná část na statistiku / webu skryje."; $lang['stag0015'] = "Nemohl jsem tě najít na TeamSpeak serveru. %sKlikni zde%s pro ověření své identity."; $lang['stag0016'] = "Je třeba ověření!"; $lang['stag0017'] = "Ověření zde.."; @@ -432,9 +428,12 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Čas v sekundách"; $lang['wigrpt2'] = "Servergroup"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "definice pořadí"; -$lang['wigrptime2desc'] = "Definujte čas, po kterém by měl uživatel automaticky získat předdefinovanou serverovou skupinu.

čas v sekundách => ID serverové skupiny

Max. hodnota je 999.999.999 sekund (přes 31 let).

Zadané sekundy budou hodnoceny jako 'online čas' nebo 'aktivní čas', v závislosti na zvoleném „časovém režimu“.


Čas v sekundách je potřeba zadávat kumulativně!

špatně:

100 seconds, 100 seconds, 50 seconds
správně:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Definujte zde a po uplynutí této doby by měl uživatel automaticky získat předdefinovanou serverovou skupinu.

Max. value are 999.999.999 seconds (over 31 years)

čas (sekund)=>ID skupiny serverů

Důležité pro toto je 'online čas' nebo 'aktivní čas' uživatel v závislosti na nastavení režimu.

Každý záznam se oddělí od dalšího čárkou.

Čas musí být zadán kumulativní

Příklad:
60=>9,120=>10,180=>11
Na tomto uživatelé dostanou po 60 sekundách servergroup 9, poté po 60 sekundách servergroup 10 a tak dále ..."; +$lang['wigrptime2desc'] = " +Definujte čas, po kterém by měl uživatel automaticky získat předdefinovanou serverovou skupinu.

čas v sekundách => ID serverové skupiny => permanent flag

Max. hodnota je 999.999.999 sekund (přes 31 let).

Zadané sekundy budou hodnoceny jako 'online čas' nebo 'aktivní čas', v závislosti na zvoleném „časovém režimu“.


Čas v sekundách je potřeba zadávat kumulativně!

špatně:

100 seconds, 100 seconds, 50 seconds
správně:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Definujte zde a po uplynutí této doby by měl uživatel automaticky získat předdefinovanou serverovou skupinu.

Max. value are 999.999.999 seconds (over 31 years)

čas (sekund) => ID skupiny serverů => permanent flag

Důležité pro toto je 'online čas' nebo 'aktivní čas' uživatel v závislosti na nastavení režimu.

Každý záznam se oddělí od dalšího čárkou.

Čas musí být zadán kumulativní

Příklad:
60=>9=>0,120=>10=>0,180=>11=>0
Na tomto uživatelé dostanou po 60 sekundách servergroup 9, poté po 60 sekundách servergroup 10 a tak dále ..."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Seznam hodnocení (režim administrátora)"; $lang['wihladm0'] = "Popis funkce (klikni)"; @@ -476,26 +475,35 @@ $lang['wihlset'] = "nastavení"; $lang['wiignidle'] = "Ignorování nečinnosti"; $lang['wiignidledesc'] = "Definujte dobu, po kterou bude ignorována doba nečinnosti uživatele.

Když klient na serveru nečiní nic (= nečinný), tento čas je zaznamenán systémem Ranks. S touto funkcí nebude doba pohotovosti uživatele započítána, dokud nedojde k definovanému limitu. Pouze při překročení definovaného limitu se počítá od tohoto data pro systém Ranks jako nečinný čas.

Tato funkce se přehrává pouze ve spojení s rolí 'aktivní čas'. funkce je např vyhodnotit čas poslechu v konverzacích jako aktivita.

0 = vypnout funkci

Příklad:
Ignorovat nečinnost = 600 (vteřin)
Klient má nečinnost 8 minuntes
důsledky:
8 minut nečinnosti jsou ignorovány, a proto přijímá tento čas jako aktivní čas. Pokud se doba volnoběhu nyní zvýší na více než 12 minut, takže je čas delší než 10 minut, v tomto případě by se 2 minuty považovaly za nečinné."; -$lang['wiimpswitch'] = "Imprint funkce"; -$lang['wiimpswitchdesc'] = "Aktivujte tuto funkci pro veřejné zobrazení Imprintu a prohlášení o ochraně dat."; -$lang['wiimpaddrdesc'] = "Sem zadejte své jméno a adresu.
Například:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddr'] = "Adresa"; +$lang['wiimpaddrdesc'] = "Sem zadejte své jméno a adresu.
Například:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mailová adresa"; $lang['wiimpemaildesc'] = "Sem zadejte svou emailovou adresu.
Například:
info@example.com
"; -$lang['wiimpphonedesc'] = "Zde zadejte své telefonní číslo s mezinárodní předvolbou.
Například:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Dodatečné informace"; $lang['wiimpnotesdesc'] = "Zde přidejte další informace, například odmítnutí odpovědnosti.
Ponechejte pole prázdné, aby se tato část nezobrazila.
HTML kód pro formátování je povolen."; +$lang['wiimpphone'] = "Telefon"; +$lang['wiimpphonedesc'] = "Zde zadejte své telefonní číslo s mezinárodní předvolbou.
Například:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Sem vložte své zásady ochrany osobních údajů (maximálně 21,588 znaků).
HTML kód pro formátování je povolen."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint funkce"; +$lang['wiimpswitchdesc'] = "Aktivujte tuto funkci pro veřejné zobrazení Imprintu a prohlášení o ochraně dat."; $lang['wilog'] = "Cesta k logům"; $lang['wilogdesc'] = "Cesta souboru protokolu systému Ranks.

Příklad:
/ var / logs / ranksystem /

Ujistěte se, že webuser má oprávnění zápisu do protokolu."; $lang['wilogout'] = "Odhlásit se"; $lang['wimsgmsg'] = "Zprávy"; $lang['wimsgmsgdesc'] = "Definujte zprávu, která bude odeslána uživateli, když se zvedne další vyšší hodnost.

Tato zpráva bude odeslána prostřednictvím soukromé zprávy TS3. Takže každý znalý bb-kód může být použit, což také funguje pro normální soukromou zprávu.
%s

dříve strávený čas lze vyjádřit argumenty:
%1\$s - dny
%2\$s - hodiny
%3\$s - minuty
%4\$s - sekundy
%5\$s - jméno dosažené serverové skupiny
%6$s - jméno uživatele (příjemce)

Příklad:
Hey,\\nyou reached a higher rank, since you already connected for %1\$s days, %2\$s hours and %3\$s minutes to our TS3 server.[B]Keep it up![/B] ;-)
"; $lang['wimsgsn'] = "Serverové zprávy"; -$lang['wimsgsndesc'] = "Definujte zprávu, která se zobrazí na stránce /stats/ jako serverové novinky

Můžeš použít základní HTML funkce pro úpravu

Například:
<b> - pro tučné písmo
<u> - pro podtržené písmo
<i> - pro písmo s kurzívou
<br> - pro zalamování textu (nový řádek)"; +$lang['wimsgsndesc'] = "Definujte zprávu, která se zobrazí na stránce /stats/ jako serverové novinky

Můžeš použít základní HTML funkce pro úpravu

Například:
<b> - pro tučné písmo
<u> - pro podtržené písmo
<i> - pro písmo s kurzívou
<br> - pro zalamování textu (nový řádek)"; $lang['wimsgusr'] = "Oznámení o hodnocení"; $lang['wimsgusrdesc'] = "Informujte uživatele se soukromou textovou zprávou o jeho pozici."; $lang['winav1'] = "TeamSpeak"; $lang['winav10'] = "Použijte webinterface pouze přes% s HTTPS% s Šifrování je důležité pro zajištění ochrany osobních údajů a zabezpečení.% SPomocí použití protokolu HTTPS, který potřebuje webový server k podpoře připojení SSL."; $lang['winav11'] = "Zadejte prosím jedinečné ID klienta administrátora Ranksystem (TeamSpeak -> Bot-Admin). To je velmi důležité v případě, že jste přišli o své přihlašovací údaje pro webinterface (resetovat je)."; $lang['winav12'] = "Moduly"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Databáze"; $lang['winav3'] = "Hlavní nastavení"; $lang['winav4'] = "Ostatní"; @@ -512,7 +520,7 @@ $lang['winxmsg1'] = "Zpráva"; $lang['winxmsg2'] = "Zpráva (nejvyšší)"; $lang['winxmsg3'] = "Zpráva (s výjimkou)"; -$lang['winxmsgdesc1'] = "Definujte zprávu, kterou uživatel obdrží jako odpověď příkazem \"!nextup\".

Argumenty:
%1\$s - dny na další rankup
%2\$s - hodiny next rankup
%3\$s - minuty do dalšího rankupu
%4\$s - sekundy do dalšího rankupu
%5\$s - název další skupiny serverů
%6\$s - název uživatel (příjemce)
%7$s - aktuální uživatelova hodnost
%8$s - jméno aktuální serverové skupiny
%9$s - doba aktuální serverové skupiny


Příklad:
Vaše další hodnocení bude v %1\$s dny, %2\$s hodinách a %3\$s minut a %4\$s vteřin. Další skupina serverů, které dosáhnete, je [B]%5\$s[/ B].
"; +$lang['winxmsgdesc1'] = "Definujte zprávu, kterou uživatel obdrží jako odpověď příkazem \"!nextup\".

Argumenty:
%1\$s - dny na další rankup
%2\$s - hodiny next rankup
%3\$s - minuty do dalšího rankupu
%4\$s - sekundy do dalšího rankupu
%5\$s - název další skupiny serverů
%6\$s - název uživatel (příjemce)
%7$s - aktuální uživatelova hodnost
%8$s - jméno aktuální serverové skupiny
%9$s - doba aktuální serverové skupiny


Příklad:
Vaše další hodnocení bude v %1\$s dny, %2\$s hodinách a %3\$s minut a %4\$s vteřin. Další skupina serverů, které dosáhnete, je [B]%5\$s[/B].
"; $lang['winxmsgdesc2'] = "Definujte zprávu, kterou uživatel obdrží jako odpověď na příkaz \"!nextup\", když uživatel již dosáhl nejvyšší pozici.

Argumenty:
%1\$s - dny na další rankup
%2\$s - hodiny do dalšího rankupu
%3\$s - minuty do dalšího rankupu
%4\$s - sekundy do dalšího rankupu
%5\$s - název další skupiny serverů
%6\$s - jméno uživatele (příjemce)
%7$s - aktuální uživatelova hodnost
%8$s - jméno aktuální serverové skupiny
%9$s - doba aktuální serverové skupiny


Příklad:
Dosáhli jste nejvyšší pozici za %1\$s dní, %2\$s hodin a %3\$s minut a %4\$s sekund.
"; $lang['winxmsgdesc3'] = "Definujte zprávu, kterou uživatel obdrží jako odpověď na příkaz \"!nextup\", když je uživatel vyloučen z Ranksystemu.

Argumenty:
%1\$s - dny na další rankup
%2\$s - hodiny do dalšího rankupu
%3\$s - minuty do dalšího rankupu
%4\$s - sekund do dalšího rankupu
%5\$s - název další skupiny serverů
%6\$s - jméno uživatele (příjemce)
%7$s - aktuální uživatelova hodnost
%8$s - jméno aktuální serverové skupiny
%9$s - doba aktuální serverové skupiny


Příklad:
Máte výjimku z Ranksystému. Pokud to chcete změnit, kontaktujte administrátora na serveru TS3.
"; $lang['wirtpw1'] = "Promiň Bro, už jste zapomněli zadat vaše Bot-Admin do webového rozhraní dříve. The only way to reset is by updating your database! A description how to do can be found here:
%s"; diff --git a/languages/core_de_Deutsch_de.php b/languages/core_de_Deutsch_de.php index 4228c22..ee2cb3f 100644 --- a/languages/core_de_Deutsch_de.php +++ b/languages/core_de_Deutsch_de.php @@ -51,10 +51,6 @@ $lang['factor'] = "Faktor"; $lang['highest'] = "höchster Rang erreicht"; $lang['imprint'] = "Impressum"; -$lang['imprint_address'] = "Anschrift"; -$lang['imprint_email'] = "E-Mail-Adresse"; -$lang['imprint_notes'] = "Zusätzliche Informationen"; -$lang['imprint_phone'] = "Telefon"; $lang['insec'] = "in Sekunden"; $lang['install'] = "Installation"; $lang['instdb'] = "Installiere Datenbank"; @@ -120,7 +116,7 @@ $lang['pass3'] = "altes Passwort"; $lang['pass4'] = "neues Passwort"; $lang['pass5'] = "Passwort vergessen?"; -$lang['privacy-policy'] = "Datenschutzerklärung"; +$lang['privacy'] = "Datenschutzerklärung"; $lang['repeat'] = "wiederholen"; $lang['resettime'] = "Setze die online und aktive Zeit des Benutzers %s (eindeutige Client-ID: %s; Client-Datenbank-ID: %s) auf Null zurück, da er aus der Ausnahme entfernt wurde."; $lang['sccupcount'] = "Aktive Zeit von %s Sekunden für die eindeutige Client-ID (%s) wird in wenigen Sekunden hinzugefügt (siehe Ranksystem-Log)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Modus"; $lang['wigrpt1'] = "Zeit in Sekunden"; $lang['wigrpt2'] = "Servergruppe"; -$lang['wigrptime'] = "Rangsteigerung Definition"; -$lang['wigrptime2desc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID

Maximaler Wert sind 999.999.999 Sekunden (über 31 Jahre)

Die eingegebenen Sekunden werden als 'online Zeit' oder 'aktive Zeit' gewertet, je nach dem welcher 'Zeit-Modus' gewählt ist.

Die Zeiten sind kumulativ zu hinterlegen.

falsch:

100 Sekunden, 100 Sekunden, 50 Sekunden
richtig:

100 Sekunden, 200 Sekunden, 250 Sekunden
"; -$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden)=>Servergruppen ID

Maximaler Wert sind 999.999.999 Sekunden (über 31 Jahre)

Die eingegebenen Sekunden werden als 'online Zeit' oder 'aktive Zeit' gewertet, je nach dem welcher 'Zeit-Modus' gewählt ist.

Jeder Eintrag ist vom nächsten durch ein Komma zu separieren.

Die Zeiten sind kumulativ zu hinterlegen.

Beispiel:
60=>9,120=>10,180=>11
In diesem Beispiel erhält ein User die Servergruppe 9 nach 60 Sekunden, die Servergruppe 10 nach weiteren 60 Sekunden, die Servergruppe 11 nach weiteren 60 Sekunden."; +$lang['wigrpt3'] = "Permanente Gruppe"; +$lang['wigrptime'] = "Rank Definition"; +$lang['wigrptime2desc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID => Permanente Gruppe

Maximaler Wert sind 999.999.999 Sekunden (über 31 Jahre)

Die eingegebenen Sekunden werden als 'online Zeit' oder 'aktive Zeit' gewertet, je nach dem welcher 'Zeit-Modus' gewählt ist.

Die Zeiten sind kumulativ zu hinterlegen.

falsch:

100 Sekunden, 100 Sekunden, 50 Sekunden
richtig:

100 Sekunden, 200 Sekunden, 250 Sekunden
"; +$lang['wigrptime3desc'] = "

Permanente Gruppe
Dies ermöglicht es, eine Servergruppe als 'permanent' zu kennzeichnen, die dann bei der nächsten Rangsteigerung nicht entfernt werden soll. Die Zeile, mit dieser Kennzeichnung (='ON'), bleibt vom Ranksystem dauerhaft erhalten.
Mit der Voreinstellung (='OFF'), wird die aktuelle Servergruppe zu dem Zeitpunkt entfernt, zu dem der User einen höheren Rang erreicht."; +$lang['wigrptimedesc'] = "Definiere hier, nach welcher Zeit ein User automatisch in eine vorgegebene Servergruppe gelangen soll.

Zeit (Sekunden) => Servergruppen ID => Permanente Gruppe

Maximaler Wert sind 999.999.999 Sekunden (über 31 Jahre)

Die eingegebenen Sekunden werden als 'online Zeit' oder 'aktive Zeit' gewertet, je nach dem welcher 'Zeit-Modus' gewählt ist.

Jeder Eintrag ist vom nächsten durch ein Komma zu separieren.

Die Zeiten sind kumulativ zu hinterlegen.

Beispiel:
60=>9=>0,120=>10=>0,180=>11=>0
In diesem Beispiel erhält ein User die Servergruppe 9 nach 60 Sekunden, die Servergruppe 10 nach weiteren 60 Sekunden, die Servergruppe 11 nach weiteren 60 Sekunden."; $lang['wigrptk'] = "kumulativ"; $lang['wihladm'] = "List Rankup (Admin-Modus)"; $lang['wihladm0'] = "Funktions-Beschreibung (hier klicken)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "Einstellungen"; $lang['wiignidle'] = "Ignoriere Idle"; $lang['wiignidledesc'] = "Lege eine Zeit fest, bis zu der die Idle-Zeit eines Users ignoriert werden soll.

Unternimmt ein Client nichts auf dem Server (=Idle), kann diese Zeit vom Ranksystem festgestellt werden. Mit dieser Funktion wird die Idle-Zeit eines User bis zur definierten Grenze nicht als Idle-Zeit gewertet, sprich sie zählt dennoch als aktive Zeit. Erst wenn der definierte Wert überschritten wird, zählt sie ab diesem Zeitpunkt für das Ranksystem auch als Idle-Zeit.

Diese Funktion spielt nur in Verbindung mit dem Modus 'aktive Zeit' eine Rolle.
Sinn der Funktion ist es z.B. die Zeit des Zuhörens bei Gesprächen als Aktivität zu werten.

0 Sec. = Deaktivieren der Funktion

Beispiel:
Ignoriere Idle = 600 (Sekunden)
Ein Client hat einen Idle von 8 Minuten.
Folge:
Die 8 Minuten Idle werden ignoriert und der User erhält demnach diese Zeit als aktive Zeit. Wenn sich die Idle-Zeit nun auf 12 Minuten erhöht, so wird die Zeit über 10 Minuten, also 2 Minuten, auch als Idle-Zeit gewertet. Die ersten 10 Minuten zählen weiterhin als aktive Zeit."; -$lang['wiimpswitch'] = "Impressums-Funktion"; -$lang['wiimpswitchdesc'] = "Aktiviere diese Funktion, um das Impressum und die Datenschutzerklärung öffentlich anzuzeigen."; -$lang['wiimpaddrdesc'] = "Trage hier deinen Namen und Anschrift ein.
Beispiel:
Max Mustermann<br>
Musterstraße 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpemaildesc'] = "Trage hier deine E-Mail-Adresse ein.
Beispiel:
info@example.com
"; -$lang['wiimpphonedesc'] = "Trage hier deine Telefonnummer mit internationaler Vorwahl ein.
Beispiel:
+49 171 1234567
"; +$lang['wiimpaddr'] = "Anschrift"; +$lang['wiimpaddrdesc'] = "Trage hier deinen Namen und Anschrift ein.

Beispiel:
Max Mustermann<br>
Musterstraße 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Impressum URL"; +$lang['wiimpaddrurldesc'] = "Füge eine URL zu einer eigenen Impressum-Seite hinzu.

Beispiel:
https://site.url/imprint/

Um die anderen Felder für die Anzeige direkt auf der Ranksystem Satistik-Seite zu nutzen, leere dieses Feld."; +$lang['wiimpemail'] = "E-Mail Addresse"; +$lang['wiimpemaildesc'] = "Trage hier deine E-Mail-Adresse ein.

Beispiel:
info@example.com
"; +$lang['wiimpnotes'] = "Zusätzliche Informationen"; $lang['wiimpnotesdesc'] = "Füge hier zusätzliche Informationen, wie zum Beispiel einen Haftungsausschluss ein.
Lasse das Feld leer, damit dieser Abschnitt nicht angezeigt wird.
HTML-Code für die Formatierung ist zulässig."; +$lang['wiimpphone'] = "Telefon"; +$lang['wiimpphonedesc'] = "Trage hier deine Telefonnummer mit internationaler Vorwahl ein.

Beispiel:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Füge hier deine Datenschutzerklärung ein (maximal 21588 Zeichen).
HTML-Code für die Formatierung ist zulässig."; +$lang['wiimpprivurl'] = "Datenschutz URL"; +$lang['wiimpprivurldesc'] = "Füge eine URL zu einer eigenen Datenschutz-Seite hinzu.

Beispiel:
https://site.url/privacy/

Um die anderen Felder für die Anzeige direkt auf der Ranksystem Satistik-Seite zu nutzen, leere dieses Feld."; +$lang['wiimpswitch'] = "Impressums-Funktion"; +$lang['wiimpswitchdesc'] = "Aktiviere diese Funktion, um das Impressum und die Datenschutzerklärung öffentlich anzuzeigen."; $lang['wilog'] = "Log-Pfad"; $lang['wilogdesc'] = "Pfad in dem die Log-Datei des Ranksystems geschrieben werden soll.

Beispiel:
/var/logs/ranksystem/

Beachte, dass der User des Webservers Schreibrechte in dem Verzeichnis hat."; $lang['wilogout'] = "Abmelden"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Bitte nutze das Webinterface nur via %s HTTPS%s Eine Verschlüsselung ist wichtig um die Privatsphäre und Sicherheit zu gewährleisten.%sUm HTTPS nutzen zu können, muss der Webserver eine SSL-Verbindung unterstützen."; $lang['winav11'] = "Bitte definiere einen Bot-Admin, welcher der Administrator des Ranksystems ist (TeamSpeak -> Bot-Admin). Dies ist sehr wichtig im Falle des Verlustes der Login-Daten für das Webinterface."; $lang['winav12'] = "Addons"; +$lang['winav13'] = "Allgemein (Statistiken)"; $lang['winav2'] = "Datenbank"; $lang['winav3'] = "Kern"; $lang['winav4'] = "Anderes"; diff --git a/languages/core_en_english_gb.php b/languages/core_en_english_gb.php index 78f13f9..56931e1 100644 --- a/languages/core_en_english_gb.php +++ b/languages/core_en_english_gb.php @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "highest rank reached"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Installation"; $lang['instdb'] = "Install database"; @@ -120,7 +116,7 @@ $lang['pass3'] = "old password"; $lang['pass4'] = "new password"; $lang['pass5'] = "Forgot password?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "repeat"; $lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of an exception (servergroup or client exception)."; $lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptime'] = "rank up definition"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrpt3'] = "Permanent Group"; +$lang['wigrptime'] = "Rank Definition"; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9=>0,120=>10=>0,180=>11=>0
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "List Rankup (Admin-Mode)"; $lang['wihladm0'] = "Description of function (click)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "settings"; $lang['wiignidle'] = "Ignore idle"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a user will be ignored.

If a client does nothing on the server (=idle), this time can be determined by the Ranksystem. With this function the idle time of a user up to the defined limit is not evaluated as idle time, rather it counts as active time. Only when the defined limit is exceeded, it counts from that point on for the Ranksystem as idle time.

This function does matter only in conjunction with the mode 'active time'.

Meaning the function is e.g. to evaluate the time of listening in conversations as an activity.

0 Sec. = disables this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle will be ignored and the user therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes still as active time."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpaddr'] = "Address"; +$lang['wiimpaddrdesc'] = "Enter your name and address here.

Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; +$lang['wiimpemaildesc'] = "Enter your email address here.

Example:
info@example.com
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.

Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Logpath"; $lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/Ranksystem/

Be sure, the Webuser (= user of the web space) has the write-out permissions to the log file."; $lang['wilogout'] = "Logout"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to make sure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; $lang['winav11'] = "Please define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; $lang['winav12'] = "Add-ons"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Other"; diff --git "a/languages/core_es_espa\303\261ol_es.php" "b/languages/core_es_espa\303\261ol_es.php" index 39b5754..9036ad5 100644 --- "a/languages/core_es_espa\303\261ol_es.php" +++ "b/languages/core_es_espa\303\261ol_es.php" @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "rango más alto alcanzado"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Instalación"; $lang['instdb'] = "Instalar base de datos"; @@ -120,7 +116,7 @@ $lang['pass3'] = "Antigua contraseña"; $lang['pass4'] = "Nueva contraseña"; $lang['pass5'] = "¿Se te olvidó tu contraseña?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "repetir"; $lang['resettime'] = "Restablecer el tiempo en línea y inactivo del usuario %s (ID de cliente unica: %s; ID de cliente en base de datos %s) a cero, causa que el usuario sea eliminado de la excepción."; $lang['sccupcount'] = "Tiempo activo de %s segundos para el ID de cliente unica (%s) se agregará en unos segundos (echa un vistazo al log de Ranksystem)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "subir de rango definición"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Defina aquí después de qué momento un usuario debe obtener automáticamente un grupo de servidores predefinido.

tiempo (segundos)=>grupo de servidores ID

Max. valor son 999.999.999 segundos (más de 31 años)

Importante para esto es el 'tiempo en línea' o el 'tiempo activo' de un usuario, dependiendo de la configuración del modo.

Cada entrada tiene que separarse de la siguiente con una coma.

El tiempo debe ser ingresado acumulativo

Ejemplo:
60=>9,120=>10,180=>11
En esto, un usuario obtiene después de 60 segundos el grupo de servidores 9, a su vez después de 60 segundos el grupo de servidores 10, y así sucesivamente ..."; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Defina aquí después de qué momento un usuario debe obtener automáticamente un grupo de servidores predefinido.

tiempo (segundos) => grupo de servidores ID => permanent flag

Max. valor son 999.999.999 segundos (más de 31 años)

Importante para esto es el 'tiempo en línea' o el 'tiempo activo' de un usuario, dependiendo de la configuración del modo.

Cada entrada tiene que separarse de la siguiente con una coma.

El tiempo debe ser ingresado acumulativo

Ejemplo:
60=>9=>0,120=>10=>0,180=>11=>0
En esto, un usuario obtiene después de 60 segundos el grupo de servidores 9, a su vez después de 60 segundos el grupo de servidores 10, y así sucesivamente ..."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista rangos (modo de administrador)"; $lang['wihladm0'] = "Function description (click)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "Configuración"; $lang['wiignidle'] = "Ignorar idle"; $lang['wiignidledesc'] = "Defina un período, hasta el cual se ignorará el tiempo de inactividad de un usuario.

Cuando un cliente no hace nada en el servidor (=inactivo), esta vez lo notará Ranksystem. Con esta característica, el tiempo de inactividad de un usuario no se contará hasta el límite definido. Solo cuando se excede el límite definido, cuenta desde ese punto para el sistema de rangos como tiempo de inactividad.

Esta función solo importa junto con el modo 'tiempo activo'.

Lo que significa que la función es, p. evaluar el tiempo de escucha en conversaciones como actividad.

0 Segundos. = desactivar esta función

Ejemplo:
Ignorar inactivo = 600 (segundos)
Un cliente tiene una inactividad de 8 minutos.
└ Se ignoran 8 minutos inactivos y, por lo tanto, recibe esta vez como tiempo activo. Si el tiempo de inactividad ahora aumentó a 12 minutos, el tiempo es más de 10 minutos y en este caso 2 minutos se contarán como tiempo de inactividad, los primeros 10 minutos como tiempo de actividad."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Logpath"; $lang['wilogdesc'] = "Ruta del archivo de registro de Ranksystem.

Ejemplo:
/var/logs/ranksystem/

Asegúrese de que el usuario web tenga los permisos de escritura en el logpath."; $lang['wilogout'] = "Cerrar sesión"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Utilice la webinterface solo a través de %s HTTPS%s Una encriptación es fundamental para garantizar su privacidad y seguridad.%sPara poder usar HTTPS, su servidor web necesita una conexión SSL."; $lang['winav11'] = "Ingrese el ID de cliente único del administrador del Ranksystem (TeamSpeak -> Bot-Admin). Esto es muy importante en caso de que haya perdido sus datos de inicio de sesión para la webinterface (para restablecerlos)."; $lang['winav12'] = "Complementos"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Base de datos"; $lang['winav3'] = "Núcleo"; $lang['winav4'] = "Otro"; diff --git "a/languages/core_fr_fran\303\247ais_fr.php" "b/languages/core_fr_fran\303\247ais_fr.php" index 42ba2c1..5a98d22 100644 --- "a/languages/core_fr_fran\303\247ais_fr.php" +++ "b/languages/core_fr_fran\303\247ais_fr.php" @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "plus haut rang atteint"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Installation"; $lang['instdb'] = "Installer la base de données"; @@ -120,7 +116,7 @@ $lang['pass3'] = "Ancien mot de passe"; $lang['pass4'] = "Nouveau mot de passe"; $lang['pass5'] = "Mot de passe oublié ?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "Répéter"; $lang['resettime'] = "Réinitialiser le temps d'inactivité et d'inactivité de l'utilisateur %s (Identifiant unique: %s; ID dans la base de donnée %s) à zéro, parce que l'utilisateur a été supprimé de l'exception."; $lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "Définition des prochains rangs"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Définissez ici après quoi un utilisateur doit automatiquement obtenir un groupe de serveurs prédéfini.

temps (secondes)=>ID du groupe de serveur

Max. value is 999.999.999 seconds (over 31 years)

Important pour cela est le 'online time' ou le 'active time' d'un utilisateur, en fonction du réglage du mode.

Chaque entrée doit se séparer de la suivante avec une virgule.

L'heure doit être saisie cumulative

Exemple:
60=>9,120=>10,180=>11
Sur ce un utilisateur obtient après 60 secondes le groupe de serveurs 9, à son tour après 60 secondes le groupe de serveurs 10, et ainsi de suite ..."; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Définissez ici après quoi un utilisateur doit automatiquement obtenir un groupe de serveurs prédéfini.

temps (secondes) => ID du groupe de serveur => permanent flag

Max. value is 999.999.999 seconds (over 31 years)

Important pour cela est le 'online time' ou le 'active time' d'un utilisateur, en fonction du réglage du mode.

Chaque entrée doit se séparer de la suivante avec une virgule.

L'heure doit être saisie cumulative

Exemple:
60=>9=>0,120=>10=>0,180=>11=>0
Sur ce un utilisateur obtient après 60 secondes le groupe de serveurs 9, à son tour après 60 secondes le groupe de serveurs 10, et ainsi de suite ..."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Liste de classement (Mode-Admin)"; $lang['wihladm0'] = "Function description (click)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "paramètres"; $lang['wiignidle'] = "Ignorer le mode inactif"; $lang['wiignidledesc'] = "Définissez une période, jusqu'à laquelle le temps d'inactivité d'un utilisateur sera ignoré.

Lorsqu'un client ne fait rien sur le serveur (= inactif), ce temps est noté par le Ranksystem. Avec cette fonction, le temps d'inactivité d'un utilisateur ne sera compté que lorsque la limite définie. Seulement quand la limite définie est dépassée, le Ranksystem compte le temps d'inactivité

Cette fonction joue seulement en conjonction avec le mode 'active time' un rôle.

Ce qui signifie que la fonction est, par exemple, pour évaluer le temps d'écoute dans les conversations, cela est définie comme une activitée.

0 = désactiver la fonction

Exemple:
Ignorer le mode inactif = 600 (secondes)
Un client a un ralenti de 8 minutes
Conséquence:
8 minutes de ralenti sont ignorés et il reçoit donc cette fois comme temps actif. Si le temps d'inactivité augmente maintenant à plus de 12 minutes, le temps dépasse 10 minutes et, dans ce cas, 2 minutes seront comptées comme temps d'inactivité."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Emplacement des logs"; $lang['wilogdesc'] = "Chemin du fichier journal du Ranksystem.

Exemple:
/var/logs/ranksystem/

Assurez-vous que l'utilisateur Web possède les autorisations d'écriture dans le chemin d'accès aux log."; $lang['wilogout'] = "Déconnexion"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Veuillez utiliser l'interface Web uniquement via %s HTTPS%s Un cryptage est essentiel pour assurer votre confidentialité et votre sécurité.%sPour pouvoir utiliser le protocole HTTPS, votre serveur Web doit prendre en charge une connexion SSL."; $lang['winav11'] = "Veuillez saisir l'identifiant client unique de l'administrateur du Ranksystem (TeamSpeak -> Bot-Admin). Ceci est très important dans le cas où vous avez perdu vos informations de connexion pour l'interface Web (pour les réinitialiser)."; $lang['winav12'] = "Addons"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Base de données"; $lang['winav3'] = "Coeur"; $lang['winav4'] = "Autres"; diff --git a/languages/core_hu_Hungary_hu.php b/languages/core_hu_Hungary_hu.php index 081989b..d5022f8 100644 --- a/languages/core_hu_Hungary_hu.php +++ b/languages/core_hu_Hungary_hu.php @@ -50,11 +50,7 @@ $lang['errukwn'] = "Ismeretlen hiba lépett fel!"; $lang['factor'] = "Tényező"; $lang['highest'] = "Elérte a legnagyobb rangot"; -$lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; +$lang['imprint'] = "Impresszum"; $lang['insec'] = "Másodpercben"; $lang['install'] = "Telepítés"; $lang['instdb'] = "Telepítse az adatbázist"; @@ -120,7 +116,7 @@ $lang['pass3'] = "régi jelszó"; $lang['pass4'] = "új jelszó"; $lang['pass5'] = "Elfelejtett jelszó?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Adatvédelmi irányelvek"; $lang['repeat'] = "ismét"; $lang['resettime'] = "Nullázza a felhasználó online és tétlen idejét %s (unique Client-ID: %s; Client-database-ID %s) nullára, oka, hogy a felhasználót eltávolították egy kivételből (szervercsoport vagy kliens kivétel)."; $lang['sccupcount'] = "%s másodperc az (%s) unique Client-ID-hez hozzá lesz adva egy pillanat alatt (nézd meg a Ranksystem naplót)."; @@ -143,7 +139,7 @@ $lang['size_zib'] = "ZiB"; $lang['stag0001'] = "Szervercsoport hozzárendelés"; $lang['stag0001desc'] = "Az 'Szervercsoportok hozzárendelése' funkcióval lehetővé teszi a TeamSpeak felhasználó számára, hogy kiszolgálócsoportjait (önkiszolgálóként) kezelje a TeamSpeak szerveren (például játék-, ország-, nemek-csoportok).

A funkció aktiválásával egy új menüpont jelenik meg a statisztikán / oldalon. A menüpont körül a felhasználó kezelheti saját szervercsoportjait.

Ön meghatározza, mely csoportoknak legyen elérhetők.
Beállíthat egy számot is az egyidejű csoportok korlátozására."; -$lang['stag0002'] = "Engedélyezett Csoportok"; +$lang['stag0002'] = "Engedélyezett csoportok"; $lang['stag0003'] = "Határozza meg a szervercsoportok listáját, amelyekhez a felhasználó hozzárendelheti magát.

A kiszolgálócsoportokat ide kell beírni, a csoportID vesszővel elválasztva.

Példa:
23,24,28
"; $lang['stag0004'] = "Egyidejű csoportok korlátozása"; $lang['stag0005'] = "Korlátozza a kiszolgálócsoportok számát, amelyeket egyszerre lehet beállítani."; @@ -322,7 +318,7 @@ $lang['stri0026'] = "%s a spanyol fordításért"; $lang['stri0027'] = "%s a magyar fordításért"; $lang['stri0028'] = "%s azerbajdzsán fordításért"; -$lang['stri0029'] = "%s for the imprint function"; +$lang['stri0029'] = "%s az impresszum funkcióért"; $lang['stta0001'] = "Összesítve"; $lang['sttm0001'] = "A hónapban"; $lang['sttw0001'] = "Toplista"; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Importálási Mód"; $lang['wigrpt1'] = "Az idő másodpercekben"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptime'] = "rank fejlődési meghatározás"; -$lang['wigrptime2desc'] = "Adja meg azt az időtartamot, amely után a felhasználó automatikusan megkap egy előre meghatározott szervercsoportot.

time in seconds => servergroup ID

Max. érték 999 999 999 másodperc (31 év felett).

A megadott másodperceket „online idő” vagy „aktív idő” besorolásúnak tekintjük, a választott „idő mód” beállításától függően.


A másodpercben megadott időt kumulatív módon kell megadni!

helytelen:

100 másodperc, 100 másodperc, 50 másodperc
helyes:

100 másodperc, 200 másodperc, 250 másodperc
"; -$lang['wigrptimedesc'] = "Itt határozza meg, mely idő elteltével a felhasználónak automatikusan meg kell kapnia egy előre meghatározott szervercsoportot.

time (seconds)=>servergroup ID

Max. érték 999 999 999 másodperc (31 év felett).

A megadott másodperceket „online idő” vagy „aktív idő” besorolásúnak tekintjük, a választott „idő mód” beállításától függően.

Minden bejegyzést vesszővel kell elválasztani a következőtől.

Az időt kumulatív módon kell megadni

Példa:
60=>9,120=>10,180=>11
Ebben a példában a felhasználó 60 másodperc után megkapja a 9. szervercsoportot, további 60 másodperc után a 10. szervercsoportot, a 11. szervercsoport további 60 másodperc után."; +$lang['wigrpt3'] = "Permanent Group"; +$lang['wigrptime'] = "Rang meghatározás"; +$lang['wigrptime2desc'] = "Adja meg azt az időtartamot, amely után a felhasználó automatikusan megkap egy előre meghatározott szervercsoportot.

time in seconds => servergroup ID => permanent flag

Max. érték 999 999 999 másodperc (31 év felett).

A megadott másodperceket „online idő” vagy „aktív idő” besorolásúnak tekintjük, a választott „idő mód” beállításától függően.


A másodpercben megadott időt kumulatív módon kell megadni!

helytelen:

100 másodperc, 100 másodperc, 50 másodperc
helyes:

100 másodperc, 200 másodperc, 250 másodperc
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Itt határozza meg, mely idő elteltével a felhasználónak automatikusan meg kell kapnia egy előre meghatározott szervercsoportot.

time (seconds) => servergroup ID => permanent flag

Max. érték 999 999 999 másodperc (31 év felett).

A megadott másodperceket „online idő” vagy „aktív idő” besorolásúnak tekintjük, a választott „idő mód” beállításától függően.

Minden bejegyzést vesszővel kell elválasztani a következőtől.

Az időt kumulatív módon kell megadni

Példa:
60=>9=>0,120=>10=>0,180=>11=>0
Ebben a példában a felhasználó 60 másodperc után megkapja a 9. szervercsoportot, további 60 másodperc után a 10. szervercsoportot, a 11. szervercsoport további 60 másodperc után."; $lang['wigrptk'] = "halmozott"; $lang['wihladm'] = "Ranglista (Admin-Mód)"; $lang['wihladm0'] = "Funkció leírása (kattints ide)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "beállítások"; $lang['wiignidle'] = "Tétlenség figyelmen kívül hagyása"; $lang['wiignidledesc'] = "Adjon meg egy periódust, amelyig a felhasználó tétlen idejét nem veszik figyelembe.

Ha az ügyfél nem tesz semmit a szerveren (= tétlen), ezt az időt a Ranksystem határozhatja meg. Ezzel a funkcióval a felhasználó tétlen idejét a meghatározott határértékig nem értékeli tétlen időként, hanem aktív időként számolja. Csak akkor, ha a meghatározott határértéket túllépik, attól a ponttól kezdve a Ranksystem számít üresjáratnak.

Ez a funkció csak az „aktív idő” móddal együtt számít.

A funkció jelentése pl. a beszélgetések hallgatásának ideje, mint tevékenység értékelése.

0 másodperc = letiltja ezt a funkciót

Példa:
tétlenség figyelmen kívül hagyása = 600 (másodperc)
Egy kliens több, mint 8 perce tétlen.
└ A 8 perces alapjáratot nem veszik figyelembe, ezért a felhasználó ezt az időt kapja aktív időként. Ha az alapjárati idő 12 percre nőtt, akkor az idő meghaladja a 10 percet, és ebben az esetben a 2 percet alapjáratnak számítják, az első 10 perc továbbra is aktív idő."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; -$lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; -$lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; -$lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; -$lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpaddr'] = "Cím"; +$lang['wiimpaddrdesc'] = "Írja be ide nevét és címét.
Például:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Adjon meg egy URL-t a saját impresszum webhelyéhez.

Például:
https://site.url/imprint/

Üresítse ki ezt a mezőt, hogy a többi mező használatával megjelenítse az impresszumot a Ranksystem stats webhelyen."; +$lang['wiimpemail'] = "E-Mail Address"; +$lang['wiimpemaildesc'] = "Ide írja be e-mail címét.
Például:
info@example.com
"; +$lang['wiimpnotes'] = "További információ"; +$lang['wiimpnotesdesc'] = "Adjon ide további információkat, például felelősség kizárását.
Hagyja üresen a mezőt, hogy ez a szakasz ne jelenjen meg.
HTML-kód a formázás megengedett."; +$lang['wiimpphone'] = "Telefon"; +$lang['wiimpphonedesc'] = "Ide írja be telefonszámát a nemzetközi körzetszámmal.
Például:
+49 171 1234567
"; +$lang['wiimpprivacydesc'] = "Ide írja be adatvédelmi irányelveit (legfeljebb 21,588 karakter).
HTML-kód a formázás megengedett."; +$lang['wiimpprivurl'] = "Adatvédelmi URL"; +$lang['wiimpprivurldesc'] = "Adjon meg egy URL-t a saját adatvédelmi irányelvei webhelyéhez.

Például:
https://site.url/privacy/

Ha a többi mezőt szeretné használni az adatvédelmi irányelvek megjelenítésére a Ranksystem stats webhelyén, ürítse ki ezt a mezőt."; +$lang['wiimpswitch'] = "Impresszum funkció"; +$lang['wiimpswitchdesc'] = "Aktiválja ezt a funkciót az impresszum és az adatvédelmi nyilatkozat (adatvédelmi irányelv) nyilvános megjelenítéséhez.."; $lang['wilog'] = "Naplófájl-Mappa"; $lang['wilogdesc'] = "A Ranksystem naplófájljának elérési útja.

Példa:
/var/logs/Ranksystem/

Ügyeljen arra, hogy a Webuser (= a webtér felhasználói) rendelkezik a naplófájl kiírási engedélyeivel."; $lang['wilogout'] = "Kijelentkezés"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Kérjük, csak a %s HTTPS%s -en használja a webes felületet. A titkosítás elengedhetetlen az adatvédelem és biztonság érdekében.%sA HTTPS használatához a webszervernek támogatnia kell az SSL kapcsolatot."; $lang['winav11'] = "Kérjük, definiáljon egy Bot-Rendszergazdát, aki a Ranksystem adminisztrátora legyen (TeamSpeak -> Bot-Admin). Ez nagyon fontos abban az esetben, ha elvesztette a webes felület bejelentkezési adatait."; $lang['winav12'] = "Kiegészítők"; +$lang['winav13'] = "Általános (Stat.)"; $lang['winav2'] = "Adatbázis"; $lang['winav3'] = "Alapvető paraméterek"; $lang['winav4'] = "Egyéb"; @@ -546,12 +553,12 @@ $lang['wishexgrpdesc'] = "Mutassa a list_rankup.php ügyfeleit, amelyek szerepelnek az „ügyfél kivétel” listában, és amelyeket nem szabad figyelembe venni a Ranksystemnél."; $lang['wishhicld'] = "Legnagyobb szintű kliensek"; $lang['wishhiclddesc'] = "Az ügyfelek megjelenítése a list_rankup.php, amely elérte a Ranksystem legmagasabb szintjét."; -$lang['wishmax'] = "Server usage graph"; +$lang['wishmax'] = "Szerverhasználati grafikon"; $lang['wishmax0'] = "show all stats"; $lang['wishmax1'] = "hide max. clients"; $lang['wishmax2'] = "hide channel"; $lang['wishmax3'] = "hide max. clients + channel"; -$lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; +$lang['wishmaxdesc'] = "Válassza ki, hogy mely statisztikák jelenjenek meg a szerverhasználati grafikonon a 'stats/' oldalon.

Alapértelmezés szerint az összes statisztika látható. Szükség esetén elrejthet néhány statisztikát."; $lang['wishnav'] = "Webhely-navigáció mutatása"; $lang['wishnavdesc'] = "Mutassa meg a weblap navigációját a 'statisztika /' oldalon.

Ha ezt a lehetőséget deaktiválja a statisztikai oldalon, akkor a webhely navigációja rejtve marad.
Ezután elfoglalhatja az egyes webhelyeket, pl. 'stats / list_rankup.php', és ágyazza be ezt keretként a meglévő webhelyére vagy a hirdetőtáblába."; $lang['wishsort'] = "Alapértelmezett rendezési sorrend"; diff --git a/languages/core_it_Italiano_it.php b/languages/core_it_Italiano_it.php index 388ab7f..f094af2 100644 --- a/languages/core_it_Italiano_it.php +++ b/languages/core_it_Italiano_it.php @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "È stato raggiunto il rank massimo"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Installazione"; $lang['instdb'] = "Installa il database:"; @@ -120,7 +116,7 @@ $lang['pass3'] = "vecchia password"; $lang['pass4'] = "nuova password"; $lang['pass5'] = "Password Dimenticata?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "ripetere"; $lang['resettime'] = "Resetta il tempo online e in idle dell'utente %s (Client-ID univico: %s; Client-database-ID %s), perchè è stato rimmosso perchè escluso."; $lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "Definisci Rankup"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years)

Sono importanti per questa impostazione il 'Tempo online' o il 'Tempo di attività' di un utente, dipende da come impostata la modalità.

Ogni voce deve essere separate dalla successive con una virgola. br>
Dovrà essere inserito il tempo cumulativo

Esempio:
60=>9,120=>10,180=>11
Su queste basi un utente ottiene il servergroup 9 dopo 60 secondi, a sua volta il 10 dopo altri 60 secondi e così via..."; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Definisci qui dopo quanto tempo un utente debba ottenere automaticamente un servergroup predefinito.

tempo (IN SECONDI) => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years)

Sono importanti per questa impostazione il 'Tempo online' o il 'Tempo di attività' di un utente, dipende da come impostata la modalità.

Ogni voce deve essere separate dalla successive con una virgola. br>
Dovrà essere inserito il tempo cumulativo

Esempio:
60=>9=>0,120=>10=>0,180=>11=>0
Su queste basi un utente ottiene il servergroup 9 dopo 60 secondi, a sua volta il 10 dopo altri 60 secondi e così via..."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista Utenti (Modalità Admin)"; $lang['wihladm0'] = "Function description (click)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "impostazioni"; $lang['wiignidle'] = "Ignora Idle"; $lang['wiignidledesc'] = "Definisci un periodo di tempo, fino a che il tempo di inattività di un utente verrà ignorato.

Quando un cliente non fa nulla sul server (=idle), questo tempo viene conteggiato dal Ranksystem. Grazie a questa funzione il tempo di inattività di un utente non sarà conteggiato fino al limite definito. Solo quando il limite definito viene superato, conta da tale data per il Ranksystem come il tempo di inattività.

Questà funzione è compatibile solo con il tempo di attività.

Significato La funzione è ad esempio per valutare il tempo di ascolto in conversazioni come l'attività.

0 = Disabilità la funzione

Esempio:
Ignore idle = 600 (seconds)
Un utente ha un idle di 8 minunti
Conseguenza:
8 minuti in IDLE verranno ignorati e poi il tempo successivo verrà conteggiato come tempo di attività. Se il tempo di inattività ora viene aumentato a oltre 12 minuti (quindi il tempo è più di 10 minuti) 2 minuti verrebbero conteggiati come tempo di inattività."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Path dei Log"; $lang['wilogdesc'] = "La path dei log del RankSystem.

Esempio:
/var/logs/ranksystem/

Assicurati che l'utente che hai assegnato (del web server) abbia i poteri per scrivere nella directory (oppure dai direttamente chmod 777 alla cartella log)."; $lang['wilogout'] = "Esci"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Per favore utilizzare l'interfaccia solo attraverso %s HTTPS%s Una crittografia è fondamentale per garantire la privacy e la sicurezza.%sPer essere in grado di utilizzare HTTPS il vostro web server deve supportare una connessione SSL."; $lang['winav11'] = "Per favore digita lo unique Client-ID dell'admin per il Ranksystem (TeamSpeak -> Bot-Admin). Questo è molto importante nel caso perdessi le credenziali di accesso per la webinterface (per effettuarne un reset)."; $lang['winav12'] = "Addons"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Altri"; diff --git a/languages/core_nl_Nederlands_nl.php b/languages/core_nl_Nederlands_nl.php index 33b2a68..c9f7230 100644 --- a/languages/core_nl_Nederlands_nl.php +++ b/languages/core_nl_Nederlands_nl.php @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "hoogste rank bereikt"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Installatie"; $lang['instdb'] = "Installeer database"; @@ -120,7 +116,7 @@ $lang['pass3'] = "oud wachtwoord"; $lang['pass4'] = "nieuw wachtwoord"; $lang['pass5'] = "Wachtwoord Vergeten?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "herhalen"; $lang['resettime'] = "Reset the online and idle time of user %s (unique Client-ID: %s; Client-database-ID %s) to zero, cause user got removed out of exception."; $lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; -$lang['wigrptime'] = "rank up definition"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrpt3'] = "Permanent Group"; +$lang['wigrptime'] = "Rank Definition"; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9=>0,120=>10=>0,180=>11=>0
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "List Rankup (Admin-Mode)"; $lang['wihladm0'] = "Function description (click)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "instellingen"; $lang['wiignidle'] = "Ignore idle"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that point for the Ranksystem as idle time.

This function matters only in conjunction with the mode 'active time'.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 Sec. = disable this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes as active time."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Logpath"; $lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; $lang['wilogout'] = "Logout"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; $lang['winav11'] = "Please define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; $lang['winav12'] = "Addons"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Database"; $lang['winav3'] = "Core"; $lang['winav4'] = "Other"; diff --git a/languages/core_pl_polski_pl.php b/languages/core_pl_polski_pl.php index e3c2bf5..bbf7bc9 100644 --- a/languages/core_pl_polski_pl.php +++ b/languages/core_pl_polski_pl.php @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "osiągnieto najwyższą range"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Adres"; -$lang['imprint_email'] = "Adres E-Mail"; -$lang['imprint_notes'] = "Dodatkowe informacje"; -$lang['imprint_phone'] = "Telefon"; $lang['insec'] = "w sekundach"; $lang['install'] = "Instalacja"; $lang['instdb'] = "Zainstaluj bazę danych"; @@ -120,7 +116,7 @@ $lang['pass3'] = "Stare hasło"; $lang['pass4'] = "Nowe hasło"; $lang['pass5'] = "Zapomniałeś hasła?"; -$lang['privacy-policy'] = "Polityka prywatności"; +$lang['privacy'] = "Polityka prywatności"; $lang['repeat'] = "Powtórz"; $lang['resettime'] = "Zresetuj czas online i czas bezczynnosci użytkownika %s (unique Client-ID: %s; Client-database-ID %s) na zero, poniewaz uzytkownik został usuniety z wyjątku."; $lang['sccupcount'] = "Active time of %s seconds for the unique Client-ID (%s) will be added in a few seconds (have a look to the Ranksystem log)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Czas w sekundach"; $lang['wigrpt2'] = "Grupa serwerowa"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "rangowa definicja"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasię uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy)=>identyfikator grupy serwerow

Max. value is 999.999.999 seconds (over 31 years)

Wazne w tym przypadku jest 'czas online' lub 'czas aktywnosci' użytkownika, w zaleznosci od ustawienia trybu.

Kazdy wpis musi oddzielac się od nastepnego za pomocą przecinka.

Czas musi byc wprowadzony łącznie

Przykład:
60=>9,120=>10,180=>11
W tym przypadku uzytkownik dostaje po 60 sekundach grupe serwerow 9, po kolei po 60 sekundach grupa serwerow 10 itd."; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Okresl tutaj, po ktorym czasię uzytkownik powinien automatycznie uzyskac predefiniowaną grupe serwerow.

czas (sekundy) => identyfikator grupy serwerow => permanent flag

Max. value is 999.999.999 seconds (over 31 years)

Wazne w tym przypadku jest 'czas online' lub 'czas aktywnosci' użytkownika, w zaleznosci od ustawienia trybu.

Kazdy wpis musi oddzielac się od nastepnego za pomocą przecinka.

Czas musi byc wprowadzony łącznie

Przykład:
60=>9=>0,120=>10=>0,180=>11=>0
W tym przypadku uzytkownik dostaje po 60 sekundach grupe serwerow 9, po kolei po 60 sekundach grupa serwerow 10 itd."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista Rankup (tryb administratora)"; $lang['wihladm0'] = "Opis funkcji (kliknij)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "Ustawienia"; $lang['wiignidle'] = "Ignoruj bezczynność"; $lang['wiignidledesc'] = "Okresl okres, do ktorego ignorowany bedzie czas bezczynnosci użytkownika.

Gdy klient nie robi niczego na serwerze (= bezczynnosc), ten czas jest zapisywany przez system rangowy. Dzieki tej funkcji czas bezczynnosci użytkownika nie zostanie policzony do okreslonego limitu. Dopiero gdy okreslony limit zostanie przekroczony, liczy się od tej daty dla Systemu Rankow jako czas bezczynnosci.

Ta funkcja odgrywa role tylko w połączeniu z trybem 'aktywny czas'.

Znaczenie funkcji to np. ocenic czas słuchania w rozmowach jako aktywnosc.

0 = wyłącz te funkcje

Przykład:
Ignoruj bezczynnosc = 600 (sekundy)
Klient ma czas bezczynnosci wynoszący 8 minut
consequence:
8 minut bezczynnosci są ignorowane i dlatego otrzymuje ten czas jako czas aktywny. Jesli czas bezczynnosci zwiekszył się teraz do ponad 12 minut, wiec czas wynosi ponad 10 minut, w tym przypadku 2 minuty bedą liczone jako czas bezczynnosci."; -$lang['wiimpswitch'] = "Funkcja Imprint"; -$lang['wiimpswitchdesc'] = "Aktywuj tę funkcję, aby publicznie wyświetlić deklarację imprintu i ochrony danych."; +$lang['wiimpaddr'] = "Adres"; $lang['wiimpaddrdesc'] = "Wpisz tutaj swoje imię i nazwisko oraz adres.
Przykład:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "Adres E-Mail"; $lang['wiimpemaildesc'] = "Wpisz tutaj swój adres e-mail.
Przykład:
info@example.com
"; -$lang['wiimpphonedesc'] = "Wpisz tutaj swój numer telefonu z międzynarodowym numerem kierunkowym.
Przykład:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Dodatkowe informacje"; $lang['wiimpnotesdesc'] = "Dodaj dodatkowe informacje, takie jak zastrzeżenie.
Zostaw pole puste, aby ta sekcja nie pojawiła się.
Kod HTML do formatowania jest dozwolony."; +$lang['wiimpphone'] = "Telefon"; +$lang['wiimpphonedesc'] = "Wpisz tutaj swój numer telefonu z międzynarodowym numerem kierunkowym.
Przykład:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Wpisz tutaj swoją politykę prywatności (maksymalnie 21 588 znaków).
Kod HTML do formatowania jest dozwolony."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Funkcja Imprint"; +$lang['wiimpswitchdesc'] = "Aktywuj tę funkcję, aby publicznie wyświetlić deklarację imprintu i ochrony danych."; $lang['wilog'] = "Logpath"; $lang['wilogdesc'] = "Ściezka pliku dziennika systemu Ranksystem.

Przykład:
/var/logs/ranksystem/

Upewnij się, że webuser ma uprawnienia do zapisu do logpath."; $lang['wilogout'] = "Wyloguj"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Użyj interfejsu sieciowego tylko przez %s HTTPS%s Szyfrowanie ma kluczowe znaczenie dla zapewnienia prywatności i bezpieczeństwa.%sAby moc korzystać z HTTPS, twój serwer WWW musi obsługiwać połączenie SSL"; $lang['winav11'] = "Wprowadź unikalny identyfikator klienta administratora systemu Ranksystem (TeamSpeak -> Bot-Admin). Jest to bardzo wazne w przypadku, gdy straciłes dane logowania do interfejsu WWW (aby je zresetowac)."; $lang['winav12'] = "Dodatki"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Baza danych"; $lang['winav3'] = "Rdzeń"; $lang['winav4'] = "Inny"; @@ -549,7 +556,7 @@ $lang['wishmax'] = "Wykres wykorzystania serwera"; $lang['wishmax0'] = "wyświetl wszystkie statystyki"; $lang['wishmax1'] = "hide max. clients"; -$lang['wishmax2'] = "ukryj kanały"; +$lang['wishmax2'] = "ukryj kanał"; $lang['wishmax3'] = "hide max. clients + channel"; $lang['wishmaxdesc'] = "Choose which stats should be displayed on the server usage graph on 'stats/' page.

By default, all stats are visible. You can hide here some stats, if needed."; $lang['wishnav'] = "pokaż nawigacje witryny"; @@ -596,4 +603,4 @@ $lang['wiverifydesc'] = "Wprowadź tutaj identyfikator kanału weryfikacyjnego.

Ten kanał należy skonfigurować manualnie na twoim serwerze TeamSpeak. Nazwe, uprawnienia i inne własciwości można zdefiniować według własnego wyboru; Tylko użytkownik powinien mieć możliwosc dołączenia do tego kanału!

Weryfikacja jest przeprowadzana przez użytkownika na stronie statystyk (/stats/). Jest to konieczne tylko wtedy, gdy odwiedzający strone nie może automatycznie zostać dopasowany/powiązany z użytkownikiem TeamSpeak.

Aby zweryfikować, że użytkownik TeamSpeak musi znajdować się w kanale weryfikacyjnym. Tam może otrzymać token, za pomocą którego zaloguje się na stronie statystyk."; $lang['wivlang'] = "Język"; $lang['wivlangdesc'] = "Wybierz domyślny język dla systemu Ranksystem.

Język jest również dostępny na stronie dla użytkowników i będzie przechowywany dla sesji."; -?> +?> \ No newline at end of file diff --git "a/languages/core_pt_Portugu\303\252s_pt.php" "b/languages/core_pt_Portugu\303\252s_pt.php" index 52b1a1b..df84bca 100644 --- "a/languages/core_pt_Portugu\303\252s_pt.php" +++ "b/languages/core_pt_Portugu\303\252s_pt.php" @@ -51,10 +51,6 @@ $lang['factor'] = "Fator"; $lang['highest'] = "maior classificação alcançada"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "em Segundos"; $lang['install'] = "Instalação"; $lang['instdb'] = "Instalar o banco de dados"; @@ -120,7 +116,7 @@ $lang['pass3'] = "Senha antiga"; $lang['pass4'] = "Nova senha"; $lang['pass5'] = "Esqueceu a senha?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "repetir"; $lang['resettime'] = "Redefinir o tempo de inatividade e tempo livre do usuário %s (ID-Ùnica: %s; Cliente-database-ID %s) para zero, porque o usuário foi removido fora da exceção."; $lang['sccupcount'] = "Tempo ativo de %s segundos para o Client-ID única(%s) será adicionado em alguns segundos (dê uma olhada no log do Ranksystem)."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Modo de Importação"; $lang['wigrpt1'] = "Tempo em Segundos"; $lang['wigrpt2'] = "Grupo do servidor"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "Definições de classifiaões"; -$lang['wigrptime2desc'] = "Define um tempo após o qual um usuário deve obter automaticamente um grupo de servidor predefinido.

tempo em segundos => ID do grupo de servidor

máx. o valor é 999.999.999 segundos (mais de 31 anos).

Os segundos inseridos serão classificados como 'hora online' ou 'hora ativa', dependendo da configuração do 'modo de hora' escolhido.


O tempo em segundos precisa ser inserido cumulativo!

errado:

 100 segundos, 100 segundos, 50 segundos
correto:

 100 segundos, 200 segundos, 250 segundos 
"; -$lang['wigrptimedesc'] = "Defina aqui, após quanto tempo um usuário deve obter automaticamente um grupo de servidores predefinido.

Tempo (em segundos)=>ID do grupo do servidor

Max. valor é 999.999.999 segundos (mais de 31 anos)

Importante para este é o 'tempo online' ou o 'tempo ativo' de um usuário, dependendo da configuração do modo.

Cada entrada deve se separar do próximo com uma vírgula.

O tempo deve ser inserido cumulativo

Exemplo:
60=>9,120=>10,180=>11
Neste usuário, pegue após 60 segundos o grupo de servidores 9, por sua vez, após 60 segundos, o grupo de servidores 10 e assim por diante ..."; +$lang['wigrptime2desc'] = "Define um tempo após o qual um usuário deve obter automaticamente um grupo de servidor predefinido.

tempo em segundos => ID do grupo de servidor => permanent flag

máx. o valor é 999.999.999 segundos (mais de 31 anos).

Os segundos inseridos serão classificados como 'hora online' ou 'hora ativa', dependendo da configuração do 'modo de hora' escolhido.


O tempo em segundos precisa ser inserido cumulativo!

errado:

 100 segundos, 100 segundos, 50 segundos
correto:

 100 segundos, 200 segundos, 250 segundos 
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Defina aqui, após quanto tempo um usuário deve obter automaticamente um grupo de servidores predefinido.

Tempo (em segundos) => ID do grupo do servidor => permanent flag

Max. valor é 999.999.999 segundos (mais de 31 anos)

Importante para este é o 'tempo online' ou o 'tempo ativo' de um usuário, dependendo da configuração do modo.

Cada entrada deve se separar do próximo com uma vírgula.

O tempo deve ser inserido cumulativo

Exemplo:
60=>9=>0,120=>10=>0,180=>11=>0
Neste usuário, pegue após 60 segundos o grupo de servidores 9, por sua vez, após 60 segundos, o grupo de servidores 10 e assim por diante ..."; $lang['wigrptk'] = "comulativo"; $lang['wihladm'] = "Classificação (Modo Admin)"; $lang['wihladm0'] = "Function description (Clique)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "configurações"; $lang['wiignidle'] = "Ignore ocioso"; $lang['wiignidledesc'] = "Defina um período até o qual o tempo de inatividade de um usuário será ignorado.

Quando um cliente não faz nada no servidor (=ocioso), esse tempo é anotado pelo Sistema de ranking. Com este recurso, o tempo de inatividade de um usuário não será contado até o limite definido. Somente quando o limite definido é excedido, ele conta a partir dessa data para o Sistema de ranking como tempo ocioso.

Esta função só é reproduzida em conjunto com o modo 'tempo ativo' uma função.

Significado do a função é, por exemplo, para avaliar o tempo de audição em conversas como atividade.

0 = desativar o recurso

Exemplo:
Ignorar ocioso = 600 (segundos)
Um cliente tem um ocioso de 8 Minuntes
consequência:
8 minutos inativos são ignorados e, portanto, ele recebe esse tempo como tempo ativo. Se o tempo de inatividade agora aumentou para mais de 12 minutos, então o tempo é superior a 10 minutos, e nesse caso, 2 minutos serão contados como tempo ocioso."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Caminha de logs"; $lang['wilogdesc'] = "Caminho do arquivo de log do Sistema de ranking.

Exemplo:
/var/logs/ranksystem/

Certifique-se, o usuário da web tem as permissões de gravação"; $lang['wilogout'] = "Sair"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Use a interface web apenas via %s HTTPS%s Uma criptografia é fundamental para garantir sua privacidade e segurança.%sPara poder usar HTTPS, seu servidor web precisa suportar uma conexão SSL."; $lang['winav11'] = "Digite o ID-Ùnico do administrador do Sistema de ranking (TeamSpeak -> Bot-Admin). Isso é muito importante caso você perdeu seus dados de login para a interface da web (redefinir usando o ID-Ùnico)."; $lang['winav12'] = "Complementos"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "Base de dados"; $lang['winav3'] = "Núcleo"; $lang['winav4'] = "Outras configuraões"; diff --git "a/languages/core_ro_Rom\303\242n\304\203_ro.php" "b/languages/core_ro_Rom\303\242n\304\203_ro.php" index 937c8d4..c3af765 100644 --- "a/languages/core_ro_Rom\303\242n\304\203_ro.php" +++ "b/languages/core_ro_Rom\303\242n\304\203_ro.php" @@ -51,10 +51,6 @@ $lang['factor'] = "Factor"; $lang['highest'] = "Cel mai înalt rang atins"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "in Seconds"; $lang['install'] = "Instalare"; $lang['instdb'] = "Instalam baza de date:"; @@ -120,7 +116,7 @@ $lang['pass3'] = "parola veche"; $lang['pass4'] = "noua parola"; $lang['pass5'] = "Ai uitat parola?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "reptere"; $lang['resettime'] = "Reset timp online si idle pentru userul: %s (ID: %s; ID baza de date %s), motiv: a fost sters din lista de exceptie."; $lang['sccupcount'] = "Ai adaugat cu succes timp online: %s pentru userul cu ID(%s)"; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Import Mode"; $lang['wigrpt1'] = "Time in Seconds"; $lang['wigrpt2'] = "Servergroup"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "Clasificare grade"; -$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; -$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds)=>servergroup ID

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9,120=>10,180=>11
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; +$lang['wigrptime2desc'] = "Define a time after which a user should get automatically a predefined servergroup.

time in seconds => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.


The time in seconds needs to be entered cumulative!

wrong:

100 seconds, 100 seconds, 50 seconds
correct:

100 seconds, 200 seconds, 250 seconds
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Define here, after which time a user should get automatically a predefined servergroup.

time (seconds) => servergroup ID => permanent flag

Max. value is 999.999.999 seconds (over 31 years).

The entered seconds will be rated as 'online time' or 'active time', depending on the setting of the 'time mode' you have chosen.

Each entry has to separate from next with a comma.

The time must be entered cumulative

Example:
60=>9=>0,120=>10=>0,180=>11=>0
On this example a user receives servergroup 9 after 60 seconds, servergroup 10 after another 60 seconds, servergroup 11 after another 60 seconds."; $lang['wigrptk'] = "cumulative"; $lang['wihladm'] = "Lista Rank(Mod Admin)"; $lang['wihladm0'] = "Function description (click)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "setări"; $lang['wiignidle'] = "Ignora timp afk"; $lang['wiignidledesc'] = "Define a period, up to which the idle time of a user will be ignored.

When a client does not do anything on the server (=idle), this time is noted by the Ranksystem. With this feature the idle time of an user will not be counted until the defined limit. Only when the defined limit is exceeded, it counts from that point for the Ranksystem as idle time.

This function matters only in conjunction with the mode 'active time'.

Meaning the function is e.g. to evaluate the time of listening in conversations as activity.

0 Sec. = disable this function

Example:
Ignore idle = 600 (seconds)
A client has an idle of 8 minuntes.
└ 8 minutes idle are ignored and he therefore receives this time as active time. If the idle time now increased to 12 minutes, the time is over 10 minutes and in this case 2 minutes would be counted as idle time, the first 10 minutes as active time."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Folder"; $lang['wilogdesc'] = "Path of the log file of the Ranksystem.

Example:
/var/logs/ranksystem/

Be sure, the webuser has the write-permissions to the logpath."; $lang['wilogout'] = "Delogare"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Please use the webinterface only via %s HTTPS%s An encryption is critical to ensure your privacy and security.%sTo be able to use HTTPS your webserver needs to support an SSL connection."; $lang['winav11'] = "Please define a Bot-Admin, which should be the administrator of the Ranksystem (TeamSpeak -> Bot-Admin). This is very important in case you lost your login credentials for the webinterface."; $lang['winav12'] = "Addons"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "baza de date"; $lang['winav3'] = "Core"; $lang['winav4'] = "altele"; diff --git "a/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" "b/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" index 943f264..f4b2ebe 100644 --- "a/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" +++ "b/languages/core_ru_P\321\203\321\201\321\201\320\272\320\270\320\271_ru.php" @@ -51,10 +51,6 @@ $lang['factor'] = "коэффициент"; $lang['highest'] = "Достигнут максимальный ранг"; $lang['imprint'] = "Imprint"; -$lang['imprint_address'] = "Address"; -$lang['imprint_email'] = "E-Mail Address"; -$lang['imprint_notes'] = "Additional information"; -$lang['imprint_phone'] = "Phone"; $lang['insec'] = "в секундах"; $lang['install'] = "Установка"; $lang['instdb'] = "Установка базы данных"; @@ -120,7 +116,7 @@ $lang['pass3'] = "Старый пароль"; $lang['pass4'] = "Новый пароль"; $lang['pass5'] = "Забыли пароль?"; -$lang['privacy-policy'] = "Privacy Policy"; +$lang['privacy'] = "Privacy Policy"; $lang['repeat'] = "Повтор нового пароля"; $lang['resettime'] = "Сбрасываем онлайн и время простоя пользователя %s (UID: %s; DBID %s), так как пользователь был удален из исключений."; $lang['sccupcount'] = "%s секунд активного времени было добавлено клиенту с уникальным ID (UID) %s. Больше информации можно найти в лог-файле системы рангов."; @@ -432,9 +428,11 @@ $lang['wigrpimp'] = "Режим импорта"; $lang['wigrpt1'] = "Время в секундах"; $lang['wigrpt2'] = "Группа сервера"; +$lang['wigrpt3'] = "Permanent Group"; $lang['wigrptime'] = "Настройка рангов"; -$lang['wigrptime2desc'] = "Укажите время после которого пользователь должен автоматически получить выбранную группу.

время в секундах => ID группы сервера

Максимальное значение - 999.999.999 секунд (около 31 года).

Введенное время будет обрабатываться как 'время онлайн' или 'активное время', в зависимости от того что вы выбрали в 'режиме работы'.


Необходимо указывать общее время.

неправильно:

100 секунд, 100 секунд, 50 секунд
правильно:

100 секунд, 200 секунд, 250 секунд
"; -$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.

Время (в секундах)=>номер группы сервера (ServerGroupID)

К тому же, от выбранного режима будет зависеть.

Каждый параметр должен разделяться запятой.

Так же время должно быть указано по 'нарастающей'

Пример:
60=>9,120=>10,180=>11
По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечении очередных 120 секунд пользователь получает группу сервера с ID 10, и так далее..."; +$lang['wigrptime2desc'] = "Укажите время после которого пользователь должен автоматически получить выбранную группу.

время в секундах => ID группы сервера => permanent flag

Максимальное значение - 999.999.999 секунд (около 31 года).

Введенное время будет обрабатываться как 'время онлайн' или 'активное время', в зависимости от того что вы выбрали в 'режиме работы'.


Необходимо указывать общее время.

неправильно:

100 секунд, 100 секунд, 50 секунд
правильно:

100 секунд, 200 секунд, 250 секунд
"; +$lang['wigrptime3desc'] = "

Permanent Group
This allows to set a flag for a server group that shouldn't be removed at the next rank increase. The rank line, which is defined with this flag (='ON'), will stay permanent by the Ranksystem.
By default (='OFF'), the current server group will be removed at the time, the user reaches a higher rank."; +$lang['wigrptimedesc'] = "Укажите через какой промежуток времени, будут выдаваться группы сервера.

Время (в секундах) => номер группы сервера (ServerGroupID) => permanent flag

К тому же, от выбранного режима будет зависеть.

Каждый параметр должен разделяться запятой.

Так же время должно быть указано по 'нарастающей'

Пример:
60=>9=>0,120=>10=>0,180=>11=>0
По истечению 60 секунд пользователь получает сервер группу под SGID 9, по истечении очередных 120 секунд пользователь получает группу сервера с ID 10, и так далее..."; $lang['wigrptk'] = "общее"; $lang['wihladm'] = "Список пользователей (Режим администратора)"; $lang['wihladm0'] = "Описание функции (кликабельно)"; @@ -476,13 +474,21 @@ $lang['wihlset'] = "настройки"; $lang['wiignidle'] = "Игнорировать время бездействия"; $lang['wiignidledesc'] = "Задать период, в течение которого время бездействия будет игнорироваться.

Время бездействия - если клиент не выполняет каких-либо действий на сервере (=idle/бездействует), это время также учитывается системой рангов. Только когда установленный лимит будет достигнут, система рангов начнет подсчитывать время бездействия для пользователя.

Эта функция работает только при включенном режиме подсчёта за 'активное время'(при высчитывании группы-ранга, когда время бездействия вычитается из \"активного\" времени).

Использование этой функции оправдано в том случае, если пользователь \"слушает\" говорящих людей и при этом ему зачисляется \"время бездействия\", которое обнуляется при любом его действии.

0= отключить данную функцию

Пример:
Игнорировать бездействие= 600 (секунд)
Клиенту 8 минут простоя не будут засчитаны системой рангов и оно будет ему засчитано как \"активное время\". Если пользователь находился 12 минут в бездействии при \"игнорировании бездействия\" в 10 минут, то ему будет зачислены только 2 минуты простоя."; -$lang['wiimpswitch'] = "Imprint function"; -$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration."; +$lang['wiimpaddr'] = "Address"; $lang['wiimpaddrdesc'] = "Enter your name and address here.
Example:
Max Mustermann<br>
Musterstrasse 13<br>
05172 Musterhausen<br>
Germany
"; +$lang['wiimpaddrurl'] = "Imprint URL"; +$lang['wiimpaddrurldesc'] = "Add an URL to your own imprint site.

Example:
https://site.url/imprint/

To use the other fields to show the imprint on the Ranksystem stats site, empty this field."; +$lang['wiimpemail'] = "E-Mail Address"; $lang['wiimpemaildesc'] = "Enter your email address here.
Example:
info@example.com
"; -$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; +$lang['wiimpnotes'] = "Additional information"; $lang['wiimpnotesdesc'] = "Add additional information here, such as a disclaimer.
Leave the field blank so that this section does not appear.
HTML code for formatting is allowed."; +$lang['wiimpphone'] = "Phone"; +$lang['wiimpphonedesc'] = "Enter your telephone number with international area code here.
Example:
+49 171 1234567
"; $lang['wiimpprivacydesc'] = "Insert your privacy policy here (maximum 21,588 characters).
HTML code for formatting is allowed."; +$lang['wiimpprivurl'] = "Privacy URL"; +$lang['wiimpprivurldesc'] = "Add an URL to your own privacy policy site.

Example:
https://site.url/privacy/

To use the other fields to show the privacy policy on the Ranksystem stats site, empty this field."; +$lang['wiimpswitch'] = "Imprint function"; +$lang['wiimpswitchdesc'] = "Activate this function to publicly display the imprint and data protection declaration (privacy policy)."; $lang['wilog'] = "Папка логирования работы системы рангов"; $lang['wilogdesc'] = "Расположение логов системы рангов на диске.

Пример:
/var/logs/ranksystem/

Убедитесь, что веб-пользователь имеет разрешение на редактирование этой папки/файлов (chmod)."; $lang['wilogout'] = "Выход"; @@ -496,6 +502,7 @@ $lang['winav10'] = "Соединение с данным сайтом не защищено с помощью %s HTTPS%sЭто может повлечь за собой проблемы для вашей приватности и безопасности! %sДля использования HTTPS ваш веб-сервер должен поддерживать SSL-соединение."; $lang['winav11'] = "Пожалуйста, укажите себя как Администратора системы рангов в настройках, меню \"TeamSpeak\". Это очень важно, так как в случае утери пароля восстановить его (штатными средствами системы рангов) станет невозможно!"; $lang['winav12'] = "Аддоны"; +$lang['winav13'] = "General (Stats)"; $lang['winav2'] = "База данных"; $lang['winav3'] = "Система"; $lang['winav4'] = "Прочее"; diff --git a/languages/nations_pl.php b/languages/nations_pl.php index bb346b3..1e189f2 100644 --- a/languages/nations_pl.php +++ b/languages/nations_pl.php @@ -248,4 +248,4 @@ $nation['ZA']='Afryka Południowa'; $nation['ZM']='Zambia'; $nation['ZW']='Zimbabwe'; -?> +?> \ No newline at end of file diff --git a/libs/combined_st.css b/libs/combined_st.css index 060d67f..4d88e7c 100644 --- a/libs/combined_st.css +++ b/libs/combined_st.css @@ -1,11 +1,11 @@ /* bootstrap 3.4.1 */ html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*=col-]{padding-right:0;padding-left:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);opacity:.65;-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;background-image:none;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;background-image:none;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;background-image:none;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;background-image:none;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;background-image:none;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;filter:alpha(opacity=90);opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203a"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} /* custom */ -body{margin-top:100px;background-color:#222}#wrapper{padding-left:0}#page-wrapper{width:100%;padding:0;background-color:#fff}.huge{line-height:normal;font-size:40px}@media(min-width:768px){body{margin-top:50px}#wrapper{padding-left:225px}#page-wrapper{padding:10px}}.top-nav{padding:0 15px}.top-nav>li{display:inline-block;float:left}.top-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px;color:#999}.top-nav>.open>a,.top-nav>.open>a:focus,.top-nav>.open>a:hover,.top-nav>li>a:focus,.top-nav>li>a:hover{color:#fff;background-color:#000}.top-nav>.open>.dropdown-menu{float:left;position:absolute;margin-top:0;border:1px solid rgba(0,0,0,.15);border-top-left-radius:0;border-top-right-radius:0;background-color:#fff;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.top-nav>.open>.dropdown-menu>li>a{white-space:normal}ul.message-dropdown{padding:0;max-height:250px;overflow-x:hidden;overflow-y:auto}li.message-preview{width:275px;border-bottom:1px solid rgba(0,0,0,.15)}li.message-preview>a{padding-top:15px;padding-bottom:15px}li.message-footer{margin:5px 0}ul.alert-dropdown{width:200px}@media(min-width:768px){.side-nav,.side-nav>li>a{width:225px}.side-nav{position:fixed;top:51px;left:225px;margin-left:-225px;border:none;border-radius:0;overflow-y:auto;background-color:#222;bottom:0;overflow-x:hidden;padding-bottom:40px}.side-nav li a:focus,.side-nav li a:hover{outline:0;background-color:#000!important}}.side-nav>li>ul{padding:0}.side-nav>li>ul>li>a{display:block;padding:10px 15px 10px 38px;text-decoration:none;color:#999}.side-nav>li>ul>li>a:hover{color:#fff}.flot-chart{display:block;height:400px}.flot-chart-content{width:100%;height:100%}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{border-color:#5cb85c;color:#fff;background-color:#5cb85c}.panel-green>a{color:#5cb85c}.panel-green>a:hover{color:#3d8b3d}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{border-color:#d9534f;color:#fff;background-color:#d9534f}.panel-red>a{color:#d9534f}.panel-red>a:hover{color:#b52b27}.panel-yellow{border-color:#f0ad4e}.panel-yellow>.panel-heading{border-color:#f0ad4e;color:#fff;background-color:#f0ad4e}.panel-yellow>a{color:#f0ad4e}.panel-yellow>a:hover{color:#df8a13}footer{height:2em;margin-right:0.5em;font-size: 1em;color: #fff;display: flex;align-items: center;justify-content: right;}footer>a,footer>a:hover,footer>a:visited{color: #fff;} +body{margin-top:100px;background-color:#222}#wrapper{padding-left:0}#page-wrapper{width:100%;padding:0;background-color:#fff}.huge{line-height:normal;font-size:40px}@media(min-width:768px){body{margin-top:50px}#wrapper{padding-left:225px}#page-wrapper{padding:10px}}.top-nav{padding:0 15px}.top-nav>li{display:inline-block;float:left}.top-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px;color:#999}.top-nav>.open>a,.top-nav>.open>a:focus,.top-nav>.open>a:hover,.top-nav>li>a:focus,.top-nav>li>a:hover{color:#fff;background-color:#000}.top-nav>.open>.dropdown-menu{float:left;position:absolute;margin-top:0;border:1px solid rgba(0,0,0,.15);border-top-left-radius:0;border-top-right-radius:0;background-color:#fff;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.top-nav>.open>.dropdown-menu>li>a{white-space:normal}ul.message-dropdown{padding:0;max-height:250px;overflow-x:hidden;overflow-y:auto}li.message-preview{width:275px;border-bottom:1px solid rgba(0,0,0,.15)}li.message-preview>a{padding-top:15px;padding-bottom:15px}li.message-footer{margin:5px 0}ul.alert-dropdown{width:200px}@media(min-width:768px){.side-nav,.side-nav>li>a{width:225px}.side-nav{position:fixed;top:51px;left:225px;margin-left:-225px;border:none;border-radius:0;overflow-y:auto;background-color:#222;bottom:0;overflow-x:hidden;padding-bottom:40px}.side-nav li a:focus,.side-nav li a:hover{outline:0;background-color:#000!important}}.side-nav>li>ul{padding:0}.side-nav>li>ul>li>a{display:block;padding:10px 15px 10px 38px;text-decoration:none;color:#999}.side-nav>li>ul>li>a:hover{color:#fff}.flot-chart{display:block;height:400px}.flot-chart-content{width:100%;height:100%}.panel-green{border-color:#5cb85c}.panel-green>.panel-heading{border-color:#5cb85c;color:#fff;background-color:#5cb85c}.panel-green>a{color:#5cb85c}.panel-green>a:hover{color:#3d8b3d}.panel-red{border-color:#d9534f}.panel-red>.panel-heading{border-color:#d9534f;color:#fff;background-color:#d9534f}.panel-red>a{color:#d9534f}.panel-red>a:hover{color:#b52b27}.panel-yellow{border-color:#f0ad4e}.panel-yellow>.panel-heading{border-color:#f0ad4e;color:#fff;background-color:#f0ad4e}.panel-yellow>a{color:#f0ad4e}.panel-yellow>a:hover{color:#df8a13}footer{height:2em;margin-right:.5em;font-size:1em;color:#fff;display:flex;align-items:center;justify-content:center}footer>a,footer>a:hover,footer>a:visited{color:#fff} /* Morris */ .morris-hover{position:absolute;z-index:1000}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255,255,255,0.8);border:solid 2px rgba(230,230,230,0.8);font-family:sans-serif;font-size:12px;text-align:center}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0}.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0} /* Flags */ -.flag-icon,.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon-arab{background-image:url(flags/arab.svg)}.flag-icon-ptbr{background-image:url(flags/ptbr.svg)}.flag-icon-ad{background-image:url(flags/ad.svg)}.flag-icon-ae{background-image:url(flags/ae.svg)}.flag-icon-af{background-image:url(flags/af.svg)}.flag-icon-ag{background-image:url(flags/ag.svg)}.flag-icon-ai{background-image:url(flags/ai.svg)}.flag-icon-al{background-image:url(flags/al.svg)}.flag-icon-am{background-image:url(flags/am.svg)}.flag-icon-ao{background-image:url(flags/ao.svg)}.flag-icon-aq{background-image:url(flags/aq.svg)}.flag-icon-ar{background-image:url(flags/ar.svg)}.flag-icon-as{background-image:url(flags/as.svg)}.flag-icon-at{background-image:url(flags/at.svg)}.flag-icon-au{background-image:url(flags/au.svg)}.flag-icon-aw{background-image:url(flags/aw.svg)}.flag-icon-ax{background-image:url(flags/ax.svg)}.flag-icon-az{background-image:url(flags/az.svg)}.flag-icon-ba{background-image:url(flags/ba.svg)}.flag-icon-bb{background-image:url(flags/bb.svg)}.flag-icon-bd{background-image:url(flags/bd.svg)}.flag-icon-be{background-image:url(flags/be.svg)}.flag-icon-bf{background-image:url(flags/bf.svg)}.flag-icon-bg{background-image:url(flags/bg.svg)}.flag-icon-bh{background-image:url(flags/bh.svg)}.flag-icon-bi{background-image:url(flags/bi.svg)}.flag-icon-bj{background-image:url(flags/bj.svg)}.flag-icon-bl{background-image:url(flags/bl.svg)}.flag-icon-bm{background-image:url(flags/bm.svg)}.flag-icon-bn{background-image:url(flags/bn.svg)}.flag-icon-bo{background-image:url(flags/bo.svg)}.flag-icon-bq{background-image:url(flags/bq.svg)}.flag-icon-br{background-image:url(flags/br.svg)}.flag-icon-bs{background-image:url(flags/bs.svg)}.flag-icon-bt{background-image:url(flags/bt.svg)}.flag-icon-bv{background-image:url(flags/bv.svg)}.flag-icon-bw{background-image:url(flags/bw.svg)}.flag-icon-by{background-image:url(flags/by.svg)}.flag-icon-bz{background-image:url(flags/bz.svg)}.flag-icon-ca{background-image:url(flags/ca.svg)}.flag-icon-cc{background-image:url(flags/cc.svg)}.flag-icon-cd{background-image:url(flags/cd.svg)}.flag-icon-cf{background-image:url(flags/cf.svg)}.flag-icon-cg{background-image:url(flags/cg.svg)}.flag-icon-ch{background-image:url(flags/ch.svg)}.flag-icon-ci{background-image:url(flags/ci.svg)}.flag-icon-ck{background-image:url(flags/ck.svg)}.flag-icon-cl{background-image:url(flags/cl.svg)}.flag-icon-cm{background-image:url(flags/cm.svg)}.flag-icon-cn{background-image:url(flags/cn.svg)}.flag-icon-co{background-image:url(flags/co.svg)}.flag-icon-cr{background-image:url(flags/cr.svg)}.flag-icon-cu{background-image:url(flags/cu.svg)}.flag-icon-cv{background-image:url(flags/cv.svg)}.flag-icon-cw{background-image:url(flags/cw.svg)}.flag-icon-cx{background-image:url(flags/cx.svg)}.flag-icon-cy{background-image:url(flags/cy.svg)}.flag-icon-cz{background-image:url(flags/cz.svg)}.flag-icon-de{background-image:url(flags/de.svg)}.flag-icon-dj{background-image:url(flags/dj.svg)}.flag-icon-dk{background-image:url(flags/dk.svg)}.flag-icon-dm{background-image:url(flags/dm.svg)}.flag-icon-do{background-image:url(flags/do.svg)}.flag-icon-dz{background-image:url(flags/dz.svg)}.flag-icon-ec{background-image:url(flags/ec.svg)}.flag-icon-ee{background-image:url(flags/ee.svg)}.flag-icon-eg{background-image:url(flags/eg.svg)}.flag-icon-eh{background-image:url(flags/eh.svg)}.flag-icon-er{background-image:url(flags/er.svg)}.flag-icon-es{background-image:url(flags/es.svg)}.flag-icon-et{background-image:url(flags/et.svg)}.flag-icon-fi{background-image:url(flags/fi.svg)}.flag-icon-fj{background-image:url(flags/fj.svg)}.flag-icon-fk{background-image:url(flags/fk.svg)}.flag-icon-fm{background-image:url(flags/fm.svg)}.flag-icon-fo{background-image:url(flags/fo.svg)}.flag-icon-fr{background-image:url(flags/fr.svg)}.flag-icon-ga{background-image:url(flags/ga.svg)}.flag-icon-gb{background-image:url(flags/gb.svg)}.flag-icon-gd{background-image:url(flags/gd.svg)}.flag-icon-ge{background-image:url(flags/ge.svg)}.flag-icon-gf{background-image:url(flags/gf.svg)}.flag-icon-gg{background-image:url(flags/gg.svg)}.flag-icon-gh{background-image:url(flags/gh.svg)}.flag-icon-gi{background-image:url(flags/gi.svg)}.flag-icon-gl{background-image:url(flags/gl.svg)}.flag-icon-gm{background-image:url(flags/gm.svg)}.flag-icon-gn{background-image:url(flags/gn.svg)}.flag-icon-gp{background-image:url(flags/gp.svg)}.flag-icon-gq{background-image:url(flags/gq.svg)}.flag-icon-gr{background-image:url(flags/gr.svg)}.flag-icon-gs{background-image:url(flags/gs.svg)}.flag-icon-gt{background-image:url(flags/gt.svg)}.flag-icon-gu{background-image:url(flags/gu.svg)}.flag-icon-gw{background-image:url(flags/gw.svg)}.flag-icon-gy{background-image:url(flags/gy.svg)}.flag-icon-hk{background-image:url(flags/hk.svg)}.flag-icon-hm{background-image:url(flags/hm.svg)}.flag-icon-hn{background-image:url(flags/hn.svg)}.flag-icon-hr{background-image:url(flags/hr.svg)}.flag-icon-ht{background-image:url(flags/ht.svg)}.flag-icon-hu{background-image:url(flags/hu.svg)}.flag-icon-id{background-image:url(flags/id.svg)}.flag-icon-ie{background-image:url(flags/ie.svg)}.flag-icon-il{background-image:url(flags/il.svg)}.flag-icon-im{background-image:url(flags/im.svg)}.flag-icon-in{background-image:url(flags/in.svg)}.flag-icon-io{background-image:url(flags/io.svg)}.flag-icon-iq{background-image:url(flags/iq.svg)}.flag-icon-ir{background-image:url(flags/ir.svg)}.flag-icon-is{background-image:url(flags/is.svg)}.flag-icon-it{background-image:url(flags/it.svg)}.flag-icon-je{background-image:url(flags/je.svg)}.flag-icon-jm{background-image:url(flags/jm.svg)}.flag-icon-jo{background-image:url(flags/jo.svg)}.flag-icon-jp{background-image:url(flags/jp.svg)}.flag-icon-ke{background-image:url(flags/ke.svg)}.flag-icon-kg{background-image:url(flags/kg.svg)}.flag-icon-kh{background-image:url(flags/kh.svg)}.flag-icon-ki{background-image:url(flags/ki.svg)}.flag-icon-km{background-image:url(flags/km.svg)}.flag-icon-kn{background-image:url(flags/kn.svg)}.flag-icon-kp{background-image:url(flags/kp.svg)}.flag-icon-kr{background-image:url(flags/kr.svg)}.flag-icon-kw{background-image:url(flags/kw.svg)}.flag-icon-ky{background-image:url(flags/ky.svg)}.flag-icon-kz{background-image:url(flags/kz.svg)}.flag-icon-la{background-image:url(flags/la.svg)}.flag-icon-lb{background-image:url(flags/lb.svg)}.flag-icon-lc{background-image:url(flags/lc.svg)}.flag-icon-li{background-image:url(flags/li.svg)}.flag-icon-lk{background-image:url(flags/lk.svg)}.flag-icon-lr{background-image:url(flags/lr.svg)}.flag-icon-ls{background-image:url(flags/ls.svg)}.flag-icon-lt{background-image:url(flags/lt.svg)}.flag-icon-lu{background-image:url(flags/lu.svg)}.flag-icon-lv{background-image:url(flags/lv.svg)}.flag-icon-ly{background-image:url(flags/ly.svg)}.flag-icon-ma{background-image:url(flags/ma.svg)}.flag-icon-mc{background-image:url(flags/mc.svg)}.flag-icon-md{background-image:url(flags/md.svg)}.flag-icon-me{background-image:url(flags/me.svg)}.flag-icon-mf{background-image:url(flags/mf.svg)}.flag-icon-mg{background-image:url(flags/mg.svg)}.flag-icon-mh{background-image:url(flags/mh.svg)}.flag-icon-mk{background-image:url(flags/mk.svg)}.flag-icon-ml{background-image:url(flags/ml.svg)}.flag-icon-mm{background-image:url(flags/mm.svg)}.flag-icon-mn{background-image:url(flags/mn.svg)}.flag-icon-mo{background-image:url(flags/mo.svg)}.flag-icon-mp{background-image:url(flags/mp.svg)}.flag-icon-mq{background-image:url(flags/mq.svg)}.flag-icon-mr{background-image:url(flags/mr.svg)}.flag-icon-ms{background-image:url(flags/ms.svg)}.flag-icon-mt{background-image:url(flags/mt.svg)}.flag-icon-mu{background-image:url(flags/mu.svg)}.flag-icon-mv{background-image:url(flags/mv.svg)}.flag-icon-mw{background-image:url(flags/mw.svg)}.flag-icon-mx{background-image:url(flags/mx.svg)}.flag-icon-my{background-image:url(flags/my.svg)}.flag-icon-mz{background-image:url(flags/mz.svg)}.flag-icon-na{background-image:url(flags/na.svg)}.flag-icon-nc{background-image:url(flags/nc.svg)}.flag-icon-ne{background-image:url(flags/ne.svg)}.flag-icon-nf{background-image:url(flags/nf.svg)}.flag-icon-ng{background-image:url(flags/ng.svg)}.flag-icon-ni{background-image:url(flags/ni.svg)}.flag-icon-nl{background-image:url(flags/nl.svg)}.flag-icon-no{background-image:url(flags/no.svg)}.flag-icon-np{background-image:url(flags/np.svg)}.flag-icon-nr{background-image:url(flags/nr.svg)}.flag-icon-nu{background-image:url(flags/nu.svg)}.flag-icon-nz{background-image:url(flags/nz.svg)}.flag-icon-om{background-image:url(flags/om.svg)}.flag-icon-pa{background-image:url(flags/pa.svg)}.flag-icon-pe{background-image:url(flags/pe.svg)}.flag-icon-pf{background-image:url(flags/pf.svg)}.flag-icon-pg{background-image:url(flags/pg.svg)}.flag-icon-ph{background-image:url(flags/ph.svg)}.flag-icon-pk{background-image:url(flags/pk.svg)}.flag-icon-pl{background-image:url(flags/pl.svg)}.flag-icon-pm{background-image:url(flags/pm.svg)}.flag-icon-pn{background-image:url(flags/pn.svg)}.flag-icon-pr{background-image:url(flags/pr.svg)}.flag-icon-ps{background-image:url(flags/ps.svg)}.flag-icon-pt{background-image:url(flags/pt.svg)}.flag-icon-pw{background-image:url(flags/pw.svg)}.flag-icon-py{background-image:url(flags/py.svg)}.flag-icon-qa{background-image:url(flags/qa.svg)}.flag-icon-re{background-image:url(flags/re.svg)}.flag-icon-ro{background-image:url(flags/ro.svg)}.flag-icon-rs{background-image:url(flags/rs.svg)}.flag-icon-ru{background-image:url(flags/ru.svg)}.flag-icon-rw{background-image:url(flags/rw.svg)}.flag-icon-sa{background-image:url(flags/sa.svg)}.flag-icon-sb{background-image:url(flags/sb.svg)}.flag-icon-sc{background-image:url(flags/sc.svg)}.flag-icon-sd{background-image:url(flags/sd.svg)}.flag-icon-se{background-image:url(flags/se.svg)}.flag-icon-sg{background-image:url(flags/sg.svg)}.flag-icon-sh{background-image:url(flags/sh.svg)}.flag-icon-si{background-image:url(flags/si.svg)}.flag-icon-sj{background-image:url(flags/sj.svg)}.flag-icon-sk{background-image:url(flags/sk.svg)}.flag-icon-sl{background-image:url(flags/sl.svg)}.flag-icon-sm{background-image:url(flags/sm.svg)}.flag-icon-sn{background-image:url(flags/sn.svg)}.flag-icon-so{background-image:url(flags/so.svg)}.flag-icon-sr{background-image:url(flags/sr.svg)}.flag-icon-ss{background-image:url(flags/ss.svg)}.flag-icon-st{background-image:url(flags/st.svg)}.flag-icon-sv{background-image:url(flags/sv.svg)}.flag-icon-sx{background-image:url(flags/sx.svg)}.flag-icon-sy{background-image:url(flags/sy.svg)}.flag-icon-sz{background-image:url(flags/sz.svg)}.flag-icon-tc{background-image:url(flags/tc.svg)}.flag-icon-td{background-image:url(flags/td.svg)}.flag-icon-tf{background-image:url(flags/tf.svg)}.flag-icon-tg{background-image:url(flags/tg.svg)}.flag-icon-th{background-image:url(flags/th.svg)}.flag-icon-tj{background-image:url(flags/tj.svg)}.flag-icon-tk{background-image:url(flags/tk.svg)}.flag-icon-tl{background-image:url(flags/tl.svg)}.flag-icon-tm{background-image:url(flags/tm.svg)}.flag-icon-tn{background-image:url(flags/tn.svg)}.flag-icon-to{background-image:url(flags/to.svg)}.flag-icon-tr{background-image:url(flags/tr.svg)}.flag-icon-tt{background-image:url(flags/tt.svg)}.flag-icon-tv{background-image:url(flags/tv.svg)}.flag-icon-tw{background-image:url(flags/tw.svg)}.flag-icon-tz{background-image:url(flags/tz.svg)}.flag-icon-ua{background-image:url(flags/ua.svg)}.flag-icon-ug{background-image:url(flags/ug.svg)}.flag-icon-um{background-image:url(flags/um.svg)}.flag-icon-us{background-image:url(flags/us.svg)}.flag-icon-uy{background-image:url(flags/uy.svg)}.flag-icon-uz{background-image:url(flags/uz.svg)}.flag-icon-va{background-image:url(flags/va.svg)}.flag-icon-vc{background-image:url(flags/vc.svg)}.flag-icon-ve{background-image:url(flags/ve.svg)}.flag-icon-vg{background-image:url(flags/vg.svg)}.flag-icon-vi{background-image:url(flags/vi.svg)}.flag-icon-vn{background-image:url(flags/vn.svg)}.flag-icon-vu{background-image:url(flags/vu.svg)}.flag-icon-wf{background-image:url(flags/wf.svg)}.flag-icon-ws{background-image:url(flags/ws.svg)}.flag-icon-ye{background-image:url(flags/ye.svg)}.flag-icon-yt{background-image:url(flags/yt.svg)}.flag-icon-za{background-image:url(flags/za.svg)}.flag-icon-zm{background-image:url(flags/zm.svg)}.flag-icon-zw{background-image:url(flags/zw.svg)}.flag-icon-eu{background-image:url(flags/eu.svg)}.flag-icon-gb-eng{background-image:url(flags/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(flags/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(flags/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(flags/gb-wls.svg)}.flag-icon-un{background-image:url(flags/un.svg)} +.flag-icon,.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon-arab{background-image:url(../libs/flags/arab.svg)}.flag-icon-ptbr{background-image:url(../libs/flags/ptbr.svg)}.flag-icon-ad{background-image:url(../libs/flags/ad.svg)}.flag-icon-ae{background-image:url(../libs/flags/ae.svg)}.flag-icon-af{background-image:url(../libs/flags/af.svg)}.flag-icon-ag{background-image:url(../libs/flags/ag.svg)}.flag-icon-ai{background-image:url(../libs/flags/ai.svg)}.flag-icon-al{background-image:url(../libs/flags/al.svg)}.flag-icon-am{background-image:url(../libs/flags/am.svg)}.flag-icon-ao{background-image:url(../libs/flags/ao.svg)}.flag-icon-aq{background-image:url(../libs/flags/aq.svg)}.flag-icon-ar{background-image:url(../libs/flags/ar.svg)}.flag-icon-as{background-image:url(../libs/flags/as.svg)}.flag-icon-at{background-image:url(../libs/flags/at.svg)}.flag-icon-au{background-image:url(../libs/flags/au.svg)}.flag-icon-aw{background-image:url(../libs/flags/aw.svg)}.flag-icon-ax{background-image:url(../libs/flags/ax.svg)}.flag-icon-az{background-image:url(../libs/flags/az.svg)}.flag-icon-ba{background-image:url(../libs/flags/ba.svg)}.flag-icon-bb{background-image:url(../libs/flags/bb.svg)}.flag-icon-bd{background-image:url(../libs/flags/bd.svg)}.flag-icon-be{background-image:url(../libs/flags/be.svg)}.flag-icon-bf{background-image:url(../libs/flags/bf.svg)}.flag-icon-bg{background-image:url(../libs/flags/bg.svg)}.flag-icon-bh{background-image:url(../libs/flags/bh.svg)}.flag-icon-bi{background-image:url(../libs/flags/bi.svg)}.flag-icon-bj{background-image:url(../libs/flags/bj.svg)}.flag-icon-bl{background-image:url(../libs/flags/bl.svg)}.flag-icon-bm{background-image:url(../libs/flags/bm.svg)}.flag-icon-bn{background-image:url(../libs/flags/bn.svg)}.flag-icon-bo{background-image:url(../libs/flags/bo.svg)}.flag-icon-bq{background-image:url(../libs/flags/bq.svg)}.flag-icon-br{background-image:url(../libs/flags/br.svg)}.flag-icon-bs{background-image:url(../libs/flags/bs.svg)}.flag-icon-bt{background-image:url(../libs/flags/bt.svg)}.flag-icon-bv{background-image:url(../libs/flags/bv.svg)}.flag-icon-bw{background-image:url(../libs/flags/bw.svg)}.flag-icon-by{background-image:url(../libs/flags/by.svg)}.flag-icon-bz{background-image:url(../libs/flags/bz.svg)}.flag-icon-ca{background-image:url(../libs/flags/ca.svg)}.flag-icon-cc{background-image:url(../libs/flags/cc.svg)}.flag-icon-cd{background-image:url(../libs/flags/cd.svg)}.flag-icon-cf{background-image:url(../libs/flags/cf.svg)}.flag-icon-cg{background-image:url(../libs/flags/cg.svg)}.flag-icon-ch{background-image:url(../libs/flags/ch.svg)}.flag-icon-ci{background-image:url(../libs/flags/ci.svg)}.flag-icon-ck{background-image:url(../libs/flags/ck.svg)}.flag-icon-cl{background-image:url(../libs/flags/cl.svg)}.flag-icon-cm{background-image:url(../libs/flags/cm.svg)}.flag-icon-cn{background-image:url(../libs/flags/cn.svg)}.flag-icon-co{background-image:url(../libs/flags/co.svg)}.flag-icon-cr{background-image:url(../libs/flags/cr.svg)}.flag-icon-cu{background-image:url(../libs/flags/cu.svg)}.flag-icon-cv{background-image:url(../libs/flags/cv.svg)}.flag-icon-cw{background-image:url(../libs/flags/cw.svg)}.flag-icon-cx{background-image:url(../libs/flags/cx.svg)}.flag-icon-cy{background-image:url(../libs/flags/cy.svg)}.flag-icon-cz{background-image:url(../libs/flags/cz.svg)}.flag-icon-de{background-image:url(../libs/flags/de.svg)}.flag-icon-dj{background-image:url(../libs/flags/dj.svg)}.flag-icon-dk{background-image:url(../libs/flags/dk.svg)}.flag-icon-dm{background-image:url(../libs/flags/dm.svg)}.flag-icon-do{background-image:url(../libs/flags/do.svg)}.flag-icon-dz{background-image:url(../libs/flags/dz.svg)}.flag-icon-ec{background-image:url(../libs/flags/ec.svg)}.flag-icon-ee{background-image:url(../libs/flags/ee.svg)}.flag-icon-eg{background-image:url(../libs/flags/eg.svg)}.flag-icon-eh{background-image:url(../libs/flags/eh.svg)}.flag-icon-er{background-image:url(../libs/flags/er.svg)}.flag-icon-es{background-image:url(../libs/flags/es.svg)}.flag-icon-et{background-image:url(../libs/flags/et.svg)}.flag-icon-fi{background-image:url(../libs/flags/fi.svg)}.flag-icon-fj{background-image:url(../libs/flags/fj.svg)}.flag-icon-fk{background-image:url(../libs/flags/fk.svg)}.flag-icon-fm{background-image:url(../libs/flags/fm.svg)}.flag-icon-fo{background-image:url(../libs/flags/fo.svg)}.flag-icon-fr{background-image:url(../libs/flags/fr.svg)}.flag-icon-ga{background-image:url(../libs/flags/ga.svg)}.flag-icon-gb{background-image:url(../libs/flags/gb.svg)}.flag-icon-gd{background-image:url(../libs/flags/gd.svg)}.flag-icon-ge{background-image:url(../libs/flags/ge.svg)}.flag-icon-gf{background-image:url(../libs/flags/gf.svg)}.flag-icon-gg{background-image:url(../libs/flags/gg.svg)}.flag-icon-gh{background-image:url(../libs/flags/gh.svg)}.flag-icon-gi{background-image:url(../libs/flags/gi.svg)}.flag-icon-gl{background-image:url(../libs/flags/gl.svg)}.flag-icon-gm{background-image:url(../libs/flags/gm.svg)}.flag-icon-gn{background-image:url(../libs/flags/gn.svg)}.flag-icon-gp{background-image:url(../libs/flags/gp.svg)}.flag-icon-gq{background-image:url(../libs/flags/gq.svg)}.flag-icon-gr{background-image:url(../libs/flags/gr.svg)}.flag-icon-gs{background-image:url(../libs/flags/gs.svg)}.flag-icon-gt{background-image:url(../libs/flags/gt.svg)}.flag-icon-gu{background-image:url(../libs/flags/gu.svg)}.flag-icon-gw{background-image:url(../libs/flags/gw.svg)}.flag-icon-gy{background-image:url(../libs/flags/gy.svg)}.flag-icon-hk{background-image:url(../libs/flags/hk.svg)}.flag-icon-hm{background-image:url(../libs/flags/hm.svg)}.flag-icon-hn{background-image:url(../libs/flags/hn.svg)}.flag-icon-hr{background-image:url(../libs/flags/hr.svg)}.flag-icon-ht{background-image:url(../libs/flags/ht.svg)}.flag-icon-hu{background-image:url(../libs/flags/hu.svg)}.flag-icon-id{background-image:url(../libs/flags/id.svg)}.flag-icon-ie{background-image:url(../libs/flags/ie.svg)}.flag-icon-il{background-image:url(../libs/flags/il.svg)}.flag-icon-im{background-image:url(../libs/flags/im.svg)}.flag-icon-in{background-image:url(../libs/flags/in.svg)}.flag-icon-io{background-image:url(../libs/flags/io.svg)}.flag-icon-iq{background-image:url(../libs/flags/iq.svg)}.flag-icon-ir{background-image:url(../libs/flags/ir.svg)}.flag-icon-is{background-image:url(../libs/flags/is.svg)}.flag-icon-it{background-image:url(../libs/flags/it.svg)}.flag-icon-je{background-image:url(../libs/flags/je.svg)}.flag-icon-jm{background-image:url(../libs/flags/jm.svg)}.flag-icon-jo{background-image:url(../libs/flags/jo.svg)}.flag-icon-jp{background-image:url(../libs/flags/jp.svg)}.flag-icon-ke{background-image:url(../libs/flags/ke.svg)}.flag-icon-kg{background-image:url(../libs/flags/kg.svg)}.flag-icon-kh{background-image:url(../libs/flags/kh.svg)}.flag-icon-ki{background-image:url(../libs/flags/ki.svg)}.flag-icon-km{background-image:url(../libs/flags/km.svg)}.flag-icon-kn{background-image:url(../libs/flags/kn.svg)}.flag-icon-kp{background-image:url(../libs/flags/kp.svg)}.flag-icon-kr{background-image:url(../libs/flags/kr.svg)}.flag-icon-kw{background-image:url(../libs/flags/kw.svg)}.flag-icon-ky{background-image:url(../libs/flags/ky.svg)}.flag-icon-kz{background-image:url(../libs/flags/kz.svg)}.flag-icon-la{background-image:url(../libs/flags/la.svg)}.flag-icon-lb{background-image:url(../libs/flags/lb.svg)}.flag-icon-lc{background-image:url(../libs/flags/lc.svg)}.flag-icon-li{background-image:url(../libs/flags/li.svg)}.flag-icon-lk{background-image:url(../libs/flags/lk.svg)}.flag-icon-lr{background-image:url(../libs/flags/lr.svg)}.flag-icon-ls{background-image:url(../libs/flags/ls.svg)}.flag-icon-lt{background-image:url(../libs/flags/lt.svg)}.flag-icon-lu{background-image:url(../libs/flags/lu.svg)}.flag-icon-lv{background-image:url(../libs/flags/lv.svg)}.flag-icon-ly{background-image:url(../libs/flags/ly.svg)}.flag-icon-ma{background-image:url(../libs/flags/ma.svg)}.flag-icon-mc{background-image:url(../libs/flags/mc.svg)}.flag-icon-md{background-image:url(../libs/flags/md.svg)}.flag-icon-me{background-image:url(../libs/flags/me.svg)}.flag-icon-mf{background-image:url(../libs/flags/mf.svg)}.flag-icon-mg{background-image:url(../libs/flags/mg.svg)}.flag-icon-mh{background-image:url(../libs/flags/mh.svg)}.flag-icon-mk{background-image:url(../libs/flags/mk.svg)}.flag-icon-ml{background-image:url(../libs/flags/ml.svg)}.flag-icon-mm{background-image:url(../libs/flags/mm.svg)}.flag-icon-mn{background-image:url(../libs/flags/mn.svg)}.flag-icon-mo{background-image:url(../libs/flags/mo.svg)}.flag-icon-mp{background-image:url(../libs/flags/mp.svg)}.flag-icon-mq{background-image:url(../libs/flags/mq.svg)}.flag-icon-mr{background-image:url(../libs/flags/mr.svg)}.flag-icon-ms{background-image:url(../libs/flags/ms.svg)}.flag-icon-mt{background-image:url(../libs/flags/mt.svg)}.flag-icon-mu{background-image:url(../libs/flags/mu.svg)}.flag-icon-mv{background-image:url(../libs/flags/mv.svg)}.flag-icon-mw{background-image:url(../libs/flags/mw.svg)}.flag-icon-mx{background-image:url(../libs/flags/mx.svg)}.flag-icon-my{background-image:url(../libs/flags/my.svg)}.flag-icon-mz{background-image:url(../libs/flags/mz.svg)}.flag-icon-na{background-image:url(../libs/flags/na.svg)}.flag-icon-nc{background-image:url(../libs/flags/nc.svg)}.flag-icon-ne{background-image:url(../libs/flags/ne.svg)}.flag-icon-nf{background-image:url(../libs/flags/nf.svg)}.flag-icon-ng{background-image:url(../libs/flags/ng.svg)}.flag-icon-ni{background-image:url(../libs/flags/ni.svg)}.flag-icon-nl{background-image:url(../libs/flags/nl.svg)}.flag-icon-no{background-image:url(../libs/flags/no.svg)}.flag-icon-np{background-image:url(../libs/flags/np.svg)}.flag-icon-nr{background-image:url(../libs/flags/nr.svg)}.flag-icon-nu{background-image:url(../libs/flags/nu.svg)}.flag-icon-nz{background-image:url(../libs/flags/nz.svg)}.flag-icon-om{background-image:url(../libs/flags/om.svg)}.flag-icon-pa{background-image:url(../libs/flags/pa.svg)}.flag-icon-pe{background-image:url(../libs/flags/pe.svg)}.flag-icon-pf{background-image:url(../libs/flags/pf.svg)}.flag-icon-pg{background-image:url(../libs/flags/pg.svg)}.flag-icon-ph{background-image:url(../libs/flags/ph.svg)}.flag-icon-pk{background-image:url(../libs/flags/pk.svg)}.flag-icon-pl{background-image:url(../libs/flags/pl.svg)}.flag-icon-pm{background-image:url(../libs/flags/pm.svg)}.flag-icon-pn{background-image:url(../libs/flags/pn.svg)}.flag-icon-pr{background-image:url(../libs/flags/pr.svg)}.flag-icon-ps{background-image:url(../libs/flags/ps.svg)}.flag-icon-pt{background-image:url(../libs/flags/pt.svg)}.flag-icon-pw{background-image:url(../libs/flags/pw.svg)}.flag-icon-py{background-image:url(../libs/flags/py.svg)}.flag-icon-qa{background-image:url(../libs/flags/qa.svg)}.flag-icon-re{background-image:url(../libs/flags/re.svg)}.flag-icon-ro{background-image:url(../libs/flags/ro.svg)}.flag-icon-rs{background-image:url(../libs/flags/rs.svg)}.flag-icon-ru{background-image:url(../libs/flags/ru.svg)}.flag-icon-rw{background-image:url(../libs/flags/rw.svg)}.flag-icon-sa{background-image:url(../libs/flags/sa.svg)}.flag-icon-sb{background-image:url(../libs/flags/sb.svg)}.flag-icon-sc{background-image:url(../libs/flags/sc.svg)}.flag-icon-sd{background-image:url(../libs/flags/sd.svg)}.flag-icon-se{background-image:url(../libs/flags/se.svg)}.flag-icon-sg{background-image:url(../libs/flags/sg.svg)}.flag-icon-sh{background-image:url(../libs/flags/sh.svg)}.flag-icon-si{background-image:url(../libs/flags/si.svg)}.flag-icon-sj{background-image:url(../libs/flags/sj.svg)}.flag-icon-sk{background-image:url(../libs/flags/sk.svg)}.flag-icon-sl{background-image:url(../libs/flags/sl.svg)}.flag-icon-sm{background-image:url(../libs/flags/sm.svg)}.flag-icon-sn{background-image:url(../libs/flags/sn.svg)}.flag-icon-so{background-image:url(../libs/flags/so.svg)}.flag-icon-sr{background-image:url(../libs/flags/sr.svg)}.flag-icon-ss{background-image:url(../libs/flags/ss.svg)}.flag-icon-st{background-image:url(../libs/flags/st.svg)}.flag-icon-sv{background-image:url(../libs/flags/sv.svg)}.flag-icon-sx{background-image:url(../libs/flags/sx.svg)}.flag-icon-sy{background-image:url(../libs/flags/sy.svg)}.flag-icon-sz{background-image:url(../libs/flags/sz.svg)}.flag-icon-tc{background-image:url(../libs/flags/tc.svg)}.flag-icon-td{background-image:url(../libs/flags/td.svg)}.flag-icon-tf{background-image:url(../libs/flags/tf.svg)}.flag-icon-tg{background-image:url(../libs/flags/tg.svg)}.flag-icon-th{background-image:url(../libs/flags/th.svg)}.flag-icon-tj{background-image:url(../libs/flags/tj.svg)}.flag-icon-tk{background-image:url(../libs/flags/tk.svg)}.flag-icon-tl{background-image:url(../libs/flags/tl.svg)}.flag-icon-tm{background-image:url(../libs/flags/tm.svg)}.flag-icon-tn{background-image:url(../libs/flags/tn.svg)}.flag-icon-to{background-image:url(../libs/flags/to.svg)}.flag-icon-tr{background-image:url(../libs/flags/tr.svg)}.flag-icon-tt{background-image:url(../libs/flags/tt.svg)}.flag-icon-tv{background-image:url(../libs/flags/tv.svg)}.flag-icon-tw{background-image:url(../libs/flags/tw.svg)}.flag-icon-tz{background-image:url(../libs/flags/tz.svg)}.flag-icon-ua{background-image:url(../libs/flags/ua.svg)}.flag-icon-ug{background-image:url(../libs/flags/ug.svg)}.flag-icon-um{background-image:url(../libs/flags/um.svg)}.flag-icon-us{background-image:url(../libs/flags/us.svg)}.flag-icon-uy{background-image:url(../libs/flags/uy.svg)}.flag-icon-uz{background-image:url(../libs/flags/uz.svg)}.flag-icon-va{background-image:url(../libs/flags/va.svg)}.flag-icon-vc{background-image:url(../libs/flags/vc.svg)}.flag-icon-ve{background-image:url(../libs/flags/ve.svg)}.flag-icon-vg{background-image:url(../libs/flags/vg.svg)}.flag-icon-vi{background-image:url(../libs/flags/vi.svg)}.flag-icon-vn{background-image:url(../libs/flags/vn.svg)}.flag-icon-vu{background-image:url(../libs/flags/vu.svg)}.flag-icon-wf{background-image:url(../libs/flags/wf.svg)}.flag-icon-ws{background-image:url(../libs/flags/ws.svg)}.flag-icon-ye{background-image:url(../libs/flags/ye.svg)}.flag-icon-yt{background-image:url(../libs/flags/yt.svg)}.flag-icon-za{background-image:url(../libs/flags/za.svg)}.flag-icon-zm{background-image:url(../libs/flags/zm.svg)}.flag-icon-zw{background-image:url(../libs/flags/zw.svg)}.flag-icon-eu{background-image:url(../libs/flags/eu.svg)}.flag-icon-gb-eng{background-image:url(../libs/flags/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(../libs/flags/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(../libs/flags/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(../libs/flags/gb-wls.svg)}.flag-icon-un{background-image:url(../libs/flags/un.svg)} .required-field-block{position:relative}.required-field-block .required-icon{display:inline-block;vertical-align:middle;margin:-0.25em .25em 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.required-field-block{position:relative}.required-field-block-spin .required-icon{display:inline-block;vertical-align:middle;margin:0 21px 0 0;background-color:#ccc;border-color:#ccc;padding:0;color:rgba(0,0,0,0.65);text-transform:uppercase;font-weight:normal;border-radius:.325em;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .1s linear;-moz-transition:background .1s linear;transition:background .1s linear;font-size:75%}.required-field-block-spin .required-icon{background-color:transparent;position:absolute;top:0;right:0;z-index:10;margin:0 21px 0 0;width:20px;height:20px;padding:0;text-align:center;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}.required-field-block-spin .required-icon:after{position:absolute;content:"";right:16px;top:1px;z-index:-1;width:0;height:0;border-top:0 solid transparent;border-right:20px solid transparent;border-bottom:20px solid transparent;border-left:0 solid transparent;border-right-color:inherit;-webkit-transition:border-color .2s ease;-moz-transition:border-color .2s ease;transition:border-color .2s ease}.required-field-block-spin .required-icon .text{color:#FFF;font-size:25px;margin:-5px 0 0 -22px}.divider{height:1px;width:100%;display:block;margin:5px 0;overflow:hidden;background-color:#111111}.help-hover{display:none}.form-group:hover .help-hover{display:block;cursor:pointer;margin: -19px -17px 5px 0}.affix{top:50px;width:calc(100% - 275px);color:#000;background-color:#fff!important;position:fixed;}.dropdown-menu{min-width:180px!important;}.tophuge{font-size:200%;white-space:nowrap} /* Bootrap-Switch */ .bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#337ab7}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;margin:0;z-index:-1;opacity:0;filter:alpha(opacity=0)}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.3333333}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px} diff --git a/libs/combined_wi.css b/libs/combined_wi.css index 6a6679c..f2e83b3 100644 --- a/libs/combined_wi.css +++ b/libs/combined_wi.css @@ -11,4 +11,4 @@ body{margin-top:100px;background-color:#222}#wrapper{padding-left:0}#page-wrappe /* Bootstrap-Select 1.13.9 */ .bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\0;vertical-align:middle}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;text-align:right;white-space:nowrap;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none;z-index:0!important}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{position:static;top:0;left:0;float:left;height:100%;width:100%;text-align:left;overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.bs3.bootstrap-select .dropdown-toggle .filter-option{padding-right:inherit}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option{position:absolute;padding-top:inherit;padding-bottom:inherit;padding-left:inherit;float:none}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{width:0!important;float:left;opacity:0!important;overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:rgba(255,255,255,.5)!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0;width:auto}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:'\00a0'}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none} /* Flags */ -.flag-icon,.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon-arab{background-image:url(flags/arab.svg)}.flag-icon-ptbr{background-image:url(flags/ptbr.svg)}.flag-icon-ad{background-image:url(flags/ad.svg)}.flag-icon-ae{background-image:url(flags/ae.svg)}.flag-icon-af{background-image:url(flags/af.svg)}.flag-icon-ag{background-image:url(flags/ag.svg)}.flag-icon-ai{background-image:url(flags/ai.svg)}.flag-icon-al{background-image:url(flags/al.svg)}.flag-icon-am{background-image:url(flags/am.svg)}.flag-icon-ao{background-image:url(flags/ao.svg)}.flag-icon-aq{background-image:url(flags/aq.svg)}.flag-icon-ar{background-image:url(flags/ar.svg)}.flag-icon-as{background-image:url(flags/as.svg)}.flag-icon-at{background-image:url(flags/at.svg)}.flag-icon-au{background-image:url(flags/au.svg)}.flag-icon-aw{background-image:url(flags/aw.svg)}.flag-icon-ax{background-image:url(flags/ax.svg)}.flag-icon-az{background-image:url(flags/az.svg)}.flag-icon-ba{background-image:url(flags/ba.svg)}.flag-icon-bb{background-image:url(flags/bb.svg)}.flag-icon-bd{background-image:url(flags/bd.svg)}.flag-icon-be{background-image:url(flags/be.svg)}.flag-icon-bf{background-image:url(flags/bf.svg)}.flag-icon-bg{background-image:url(flags/bg.svg)}.flag-icon-bh{background-image:url(flags/bh.svg)}.flag-icon-bi{background-image:url(flags/bi.svg)}.flag-icon-bj{background-image:url(flags/bj.svg)}.flag-icon-bl{background-image:url(flags/bl.svg)}.flag-icon-bm{background-image:url(flags/bm.svg)}.flag-icon-bn{background-image:url(flags/bn.svg)}.flag-icon-bo{background-image:url(flags/bo.svg)}.flag-icon-bq{background-image:url(flags/bq.svg)}.flag-icon-br{background-image:url(flags/br.svg)}.flag-icon-bs{background-image:url(flags/bs.svg)}.flag-icon-bt{background-image:url(flags/bt.svg)}.flag-icon-bv{background-image:url(flags/bv.svg)}.flag-icon-bw{background-image:url(flags/bw.svg)}.flag-icon-by{background-image:url(flags/by.svg)}.flag-icon-bz{background-image:url(flags/bz.svg)}.flag-icon-ca{background-image:url(flags/ca.svg)}.flag-icon-cc{background-image:url(flags/cc.svg)}.flag-icon-cd{background-image:url(flags/cd.svg)}.flag-icon-cf{background-image:url(flags/cf.svg)}.flag-icon-cg{background-image:url(flags/cg.svg)}.flag-icon-ch{background-image:url(flags/ch.svg)}.flag-icon-ci{background-image:url(flags/ci.svg)}.flag-icon-ck{background-image:url(flags/ck.svg)}.flag-icon-cl{background-image:url(flags/cl.svg)}.flag-icon-cm{background-image:url(flags/cm.svg)}.flag-icon-cn{background-image:url(flags/cn.svg)}.flag-icon-co{background-image:url(flags/co.svg)}.flag-icon-cr{background-image:url(flags/cr.svg)}.flag-icon-cu{background-image:url(flags/cu.svg)}.flag-icon-cv{background-image:url(flags/cv.svg)}.flag-icon-cw{background-image:url(flags/cw.svg)}.flag-icon-cx{background-image:url(flags/cx.svg)}.flag-icon-cy{background-image:url(flags/cy.svg)}.flag-icon-cz{background-image:url(flags/cz.svg)}.flag-icon-de{background-image:url(flags/de.svg)}.flag-icon-dj{background-image:url(flags/dj.svg)}.flag-icon-dk{background-image:url(flags/dk.svg)}.flag-icon-dm{background-image:url(flags/dm.svg)}.flag-icon-do{background-image:url(flags/do.svg)}.flag-icon-dz{background-image:url(flags/dz.svg)}.flag-icon-ec{background-image:url(flags/ec.svg)}.flag-icon-ee{background-image:url(flags/ee.svg)}.flag-icon-eg{background-image:url(flags/eg.svg)}.flag-icon-eh{background-image:url(flags/eh.svg)}.flag-icon-er{background-image:url(flags/er.svg)}.flag-icon-es{background-image:url(flags/es.svg)}.flag-icon-et{background-image:url(flags/et.svg)}.flag-icon-fi{background-image:url(flags/fi.svg)}.flag-icon-fj{background-image:url(flags/fj.svg)}.flag-icon-fk{background-image:url(flags/fk.svg)}.flag-icon-fm{background-image:url(flags/fm.svg)}.flag-icon-fo{background-image:url(flags/fo.svg)}.flag-icon-fr{background-image:url(flags/fr.svg)}.flag-icon-ga{background-image:url(flags/ga.svg)}.flag-icon-gb{background-image:url(flags/gb.svg)}.flag-icon-gd{background-image:url(flags/gd.svg)}.flag-icon-ge{background-image:url(flags/ge.svg)}.flag-icon-gf{background-image:url(flags/gf.svg)}.flag-icon-gg{background-image:url(flags/gg.svg)}.flag-icon-gh{background-image:url(flags/gh.svg)}.flag-icon-gi{background-image:url(flags/gi.svg)}.flag-icon-gl{background-image:url(flags/gl.svg)}.flag-icon-gm{background-image:url(flags/gm.svg)}.flag-icon-gn{background-image:url(flags/gn.svg)}.flag-icon-gp{background-image:url(flags/gp.svg)}.flag-icon-gq{background-image:url(flags/gq.svg)}.flag-icon-gr{background-image:url(flags/gr.svg)}.flag-icon-gs{background-image:url(flags/gs.svg)}.flag-icon-gt{background-image:url(flags/gt.svg)}.flag-icon-gu{background-image:url(flags/gu.svg)}.flag-icon-gw{background-image:url(flags/gw.svg)}.flag-icon-gy{background-image:url(flags/gy.svg)}.flag-icon-hk{background-image:url(flags/hk.svg)}.flag-icon-hm{background-image:url(flags/hm.svg)}.flag-icon-hn{background-image:url(flags/hn.svg)}.flag-icon-hr{background-image:url(flags/hr.svg)}.flag-icon-ht{background-image:url(flags/ht.svg)}.flag-icon-hu{background-image:url(flags/hu.svg)}.flag-icon-id{background-image:url(flags/id.svg)}.flag-icon-ie{background-image:url(flags/ie.svg)}.flag-icon-il{background-image:url(flags/il.svg)}.flag-icon-im{background-image:url(flags/im.svg)}.flag-icon-in{background-image:url(flags/in.svg)}.flag-icon-io{background-image:url(flags/io.svg)}.flag-icon-iq{background-image:url(flags/iq.svg)}.flag-icon-ir{background-image:url(flags/ir.svg)}.flag-icon-is{background-image:url(flags/is.svg)}.flag-icon-it{background-image:url(flags/it.svg)}.flag-icon-je{background-image:url(flags/je.svg)}.flag-icon-jm{background-image:url(flags/jm.svg)}.flag-icon-jo{background-image:url(flags/jo.svg)}.flag-icon-jp{background-image:url(flags/jp.svg)}.flag-icon-ke{background-image:url(flags/ke.svg)}.flag-icon-kg{background-image:url(flags/kg.svg)}.flag-icon-kh{background-image:url(flags/kh.svg)}.flag-icon-ki{background-image:url(flags/ki.svg)}.flag-icon-km{background-image:url(flags/km.svg)}.flag-icon-kn{background-image:url(flags/kn.svg)}.flag-icon-kp{background-image:url(flags/kp.svg)}.flag-icon-kr{background-image:url(flags/kr.svg)}.flag-icon-kw{background-image:url(flags/kw.svg)}.flag-icon-ky{background-image:url(flags/ky.svg)}.flag-icon-kz{background-image:url(flags/kz.svg)}.flag-icon-la{background-image:url(flags/la.svg)}.flag-icon-lb{background-image:url(flags/lb.svg)}.flag-icon-lc{background-image:url(flags/lc.svg)}.flag-icon-li{background-image:url(flags/li.svg)}.flag-icon-lk{background-image:url(flags/lk.svg)}.flag-icon-lr{background-image:url(flags/lr.svg)}.flag-icon-ls{background-image:url(flags/ls.svg)}.flag-icon-lt{background-image:url(flags/lt.svg)}.flag-icon-lu{background-image:url(flags/lu.svg)}.flag-icon-lv{background-image:url(flags/lv.svg)}.flag-icon-ly{background-image:url(flags/ly.svg)}.flag-icon-ma{background-image:url(flags/ma.svg)}.flag-icon-mc{background-image:url(flags/mc.svg)}.flag-icon-md{background-image:url(flags/md.svg)}.flag-icon-me{background-image:url(flags/me.svg)}.flag-icon-mf{background-image:url(flags/mf.svg)}.flag-icon-mg{background-image:url(flags/mg.svg)}.flag-icon-mh{background-image:url(flags/mh.svg)}.flag-icon-mk{background-image:url(flags/mk.svg)}.flag-icon-ml{background-image:url(flags/ml.svg)}.flag-icon-mm{background-image:url(flags/mm.svg)}.flag-icon-mn{background-image:url(flags/mn.svg)}.flag-icon-mo{background-image:url(flags/mo.svg)}.flag-icon-mp{background-image:url(flags/mp.svg)}.flag-icon-mq{background-image:url(flags/mq.svg)}.flag-icon-mr{background-image:url(flags/mr.svg)}.flag-icon-ms{background-image:url(flags/ms.svg)}.flag-icon-mt{background-image:url(flags/mt.svg)}.flag-icon-mu{background-image:url(flags/mu.svg)}.flag-icon-mv{background-image:url(flags/mv.svg)}.flag-icon-mw{background-image:url(flags/mw.svg)}.flag-icon-mx{background-image:url(flags/mx.svg)}.flag-icon-my{background-image:url(flags/my.svg)}.flag-icon-mz{background-image:url(flags/mz.svg)}.flag-icon-na{background-image:url(flags/na.svg)}.flag-icon-nc{background-image:url(flags/nc.svg)}.flag-icon-ne{background-image:url(flags/ne.svg)}.flag-icon-nf{background-image:url(flags/nf.svg)}.flag-icon-ng{background-image:url(flags/ng.svg)}.flag-icon-ni{background-image:url(flags/ni.svg)}.flag-icon-nl{background-image:url(flags/nl.svg)}.flag-icon-no{background-image:url(flags/no.svg)}.flag-icon-np{background-image:url(flags/np.svg)}.flag-icon-nr{background-image:url(flags/nr.svg)}.flag-icon-nu{background-image:url(flags/nu.svg)}.flag-icon-nz{background-image:url(flags/nz.svg)}.flag-icon-om{background-image:url(flags/om.svg)}.flag-icon-pa{background-image:url(flags/pa.svg)}.flag-icon-pe{background-image:url(flags/pe.svg)}.flag-icon-pf{background-image:url(flags/pf.svg)}.flag-icon-pg{background-image:url(flags/pg.svg)}.flag-icon-ph{background-image:url(flags/ph.svg)}.flag-icon-pk{background-image:url(flags/pk.svg)}.flag-icon-pl{background-image:url(flags/pl.svg)}.flag-icon-pm{background-image:url(flags/pm.svg)}.flag-icon-pn{background-image:url(flags/pn.svg)}.flag-icon-pr{background-image:url(flags/pr.svg)}.flag-icon-ps{background-image:url(flags/ps.svg)}.flag-icon-pt{background-image:url(flags/pt.svg)}.flag-icon-pw{background-image:url(flags/pw.svg)}.flag-icon-py{background-image:url(flags/py.svg)}.flag-icon-qa{background-image:url(flags/qa.svg)}.flag-icon-re{background-image:url(flags/re.svg)}.flag-icon-ro{background-image:url(flags/ro.svg)}.flag-icon-rs{background-image:url(flags/rs.svg)}.flag-icon-ru{background-image:url(flags/ru.svg)}.flag-icon-rw{background-image:url(flags/rw.svg)}.flag-icon-sa{background-image:url(flags/sa.svg)}.flag-icon-sb{background-image:url(flags/sb.svg)}.flag-icon-sc{background-image:url(flags/sc.svg)}.flag-icon-sd{background-image:url(flags/sd.svg)}.flag-icon-se{background-image:url(flags/se.svg)}.flag-icon-sg{background-image:url(flags/sg.svg)}.flag-icon-sh{background-image:url(flags/sh.svg)}.flag-icon-si{background-image:url(flags/si.svg)}.flag-icon-sj{background-image:url(flags/sj.svg)}.flag-icon-sk{background-image:url(flags/sk.svg)}.flag-icon-sl{background-image:url(flags/sl.svg)}.flag-icon-sm{background-image:url(flags/sm.svg)}.flag-icon-sn{background-image:url(flags/sn.svg)}.flag-icon-so{background-image:url(flags/so.svg)}.flag-icon-sr{background-image:url(flags/sr.svg)}.flag-icon-ss{background-image:url(flags/ss.svg)}.flag-icon-st{background-image:url(flags/st.svg)}.flag-icon-sv{background-image:url(flags/sv.svg)}.flag-icon-sx{background-image:url(flags/sx.svg)}.flag-icon-sy{background-image:url(flags/sy.svg)}.flag-icon-sz{background-image:url(flags/sz.svg)}.flag-icon-tc{background-image:url(flags/tc.svg)}.flag-icon-td{background-image:url(flags/td.svg)}.flag-icon-tf{background-image:url(flags/tf.svg)}.flag-icon-tg{background-image:url(flags/tg.svg)}.flag-icon-th{background-image:url(flags/th.svg)}.flag-icon-tj{background-image:url(flags/tj.svg)}.flag-icon-tk{background-image:url(flags/tk.svg)}.flag-icon-tl{background-image:url(flags/tl.svg)}.flag-icon-tm{background-image:url(flags/tm.svg)}.flag-icon-tn{background-image:url(flags/tn.svg)}.flag-icon-to{background-image:url(flags/to.svg)}.flag-icon-tr{background-image:url(flags/tr.svg)}.flag-icon-tt{background-image:url(flags/tt.svg)}.flag-icon-tv{background-image:url(flags/tv.svg)}.flag-icon-tw{background-image:url(flags/tw.svg)}.flag-icon-tz{background-image:url(flags/tz.svg)}.flag-icon-ua{background-image:url(flags/ua.svg)}.flag-icon-ug{background-image:url(flags/ug.svg)}.flag-icon-um{background-image:url(flags/um.svg)}.flag-icon-us{background-image:url(flags/us.svg)}.flag-icon-uy{background-image:url(flags/uy.svg)}.flag-icon-uz{background-image:url(flags/uz.svg)}.flag-icon-va{background-image:url(flags/va.svg)}.flag-icon-vc{background-image:url(flags/vc.svg)}.flag-icon-ve{background-image:url(flags/ve.svg)}.flag-icon-vg{background-image:url(flags/vg.svg)}.flag-icon-vi{background-image:url(flags/vi.svg)}.flag-icon-vn{background-image:url(flags/vn.svg)}.flag-icon-vu{background-image:url(flags/vu.svg)}.flag-icon-wf{background-image:url(flags/wf.svg)}.flag-icon-ws{background-image:url(flags/ws.svg)}.flag-icon-ye{background-image:url(flags/ye.svg)}.flag-icon-yt{background-image:url(flags/yt.svg)}.flag-icon-za{background-image:url(flags/za.svg)}.flag-icon-zm{background-image:url(flags/zm.svg)}.flag-icon-zw{background-image:url(flags/zw.svg)}.flag-icon-eu{background-image:url(flags/eu.svg)}.flag-icon-gb-eng{background-image:url(flags/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(flags/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(flags/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(flags/gb-wls.svg)}.flag-icon-un{background-image:url(flags/un.svg)} \ No newline at end of file +.flag-icon,.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon-arab{background-image:url(../libs/flags/arab.svg)}.flag-icon-ptbr{background-image:url(../libs/flags/ptbr.svg)}.flag-icon-ad{background-image:url(../libs/flags/ad.svg)}.flag-icon-ae{background-image:url(../libs/flags/ae.svg)}.flag-icon-af{background-image:url(../libs/flags/af.svg)}.flag-icon-ag{background-image:url(../libs/flags/ag.svg)}.flag-icon-ai{background-image:url(../libs/flags/ai.svg)}.flag-icon-al{background-image:url(../libs/flags/al.svg)}.flag-icon-am{background-image:url(../libs/flags/am.svg)}.flag-icon-ao{background-image:url(../libs/flags/ao.svg)}.flag-icon-aq{background-image:url(../libs/flags/aq.svg)}.flag-icon-ar{background-image:url(../libs/flags/ar.svg)}.flag-icon-as{background-image:url(../libs/flags/as.svg)}.flag-icon-at{background-image:url(../libs/flags/at.svg)}.flag-icon-au{background-image:url(../libs/flags/au.svg)}.flag-icon-aw{background-image:url(../libs/flags/aw.svg)}.flag-icon-ax{background-image:url(../libs/flags/ax.svg)}.flag-icon-az{background-image:url(../libs/flags/az.svg)}.flag-icon-ba{background-image:url(../libs/flags/ba.svg)}.flag-icon-bb{background-image:url(../libs/flags/bb.svg)}.flag-icon-bd{background-image:url(../libs/flags/bd.svg)}.flag-icon-be{background-image:url(../libs/flags/be.svg)}.flag-icon-bf{background-image:url(../libs/flags/bf.svg)}.flag-icon-bg{background-image:url(../libs/flags/bg.svg)}.flag-icon-bh{background-image:url(../libs/flags/bh.svg)}.flag-icon-bi{background-image:url(../libs/flags/bi.svg)}.flag-icon-bj{background-image:url(../libs/flags/bj.svg)}.flag-icon-bl{background-image:url(../libs/flags/bl.svg)}.flag-icon-bm{background-image:url(../libs/flags/bm.svg)}.flag-icon-bn{background-image:url(../libs/flags/bn.svg)}.flag-icon-bo{background-image:url(../libs/flags/bo.svg)}.flag-icon-bq{background-image:url(../libs/flags/bq.svg)}.flag-icon-br{background-image:url(../libs/flags/br.svg)}.flag-icon-bs{background-image:url(../libs/flags/bs.svg)}.flag-icon-bt{background-image:url(../libs/flags/bt.svg)}.flag-icon-bv{background-image:url(../libs/flags/bv.svg)}.flag-icon-bw{background-image:url(../libs/flags/bw.svg)}.flag-icon-by{background-image:url(../libs/flags/by.svg)}.flag-icon-bz{background-image:url(../libs/flags/bz.svg)}.flag-icon-ca{background-image:url(../libs/flags/ca.svg)}.flag-icon-cc{background-image:url(../libs/flags/cc.svg)}.flag-icon-cd{background-image:url(../libs/flags/cd.svg)}.flag-icon-cf{background-image:url(../libs/flags/cf.svg)}.flag-icon-cg{background-image:url(../libs/flags/cg.svg)}.flag-icon-ch{background-image:url(../libs/flags/ch.svg)}.flag-icon-ci{background-image:url(../libs/flags/ci.svg)}.flag-icon-ck{background-image:url(../libs/flags/ck.svg)}.flag-icon-cl{background-image:url(../libs/flags/cl.svg)}.flag-icon-cm{background-image:url(../libs/flags/cm.svg)}.flag-icon-cn{background-image:url(../libs/flags/cn.svg)}.flag-icon-co{background-image:url(../libs/flags/co.svg)}.flag-icon-cr{background-image:url(../libs/flags/cr.svg)}.flag-icon-cu{background-image:url(../libs/flags/cu.svg)}.flag-icon-cv{background-image:url(../libs/flags/cv.svg)}.flag-icon-cw{background-image:url(../libs/flags/cw.svg)}.flag-icon-cx{background-image:url(../libs/flags/cx.svg)}.flag-icon-cy{background-image:url(../libs/flags/cy.svg)}.flag-icon-cz{background-image:url(../libs/flags/cz.svg)}.flag-icon-de{background-image:url(../libs/flags/de.svg)}.flag-icon-dj{background-image:url(../libs/flags/dj.svg)}.flag-icon-dk{background-image:url(../libs/flags/dk.svg)}.flag-icon-dm{background-image:url(../libs/flags/dm.svg)}.flag-icon-do{background-image:url(../libs/flags/do.svg)}.flag-icon-dz{background-image:url(../libs/flags/dz.svg)}.flag-icon-ec{background-image:url(../libs/flags/ec.svg)}.flag-icon-ee{background-image:url(../libs/flags/ee.svg)}.flag-icon-eg{background-image:url(../libs/flags/eg.svg)}.flag-icon-eh{background-image:url(../libs/flags/eh.svg)}.flag-icon-er{background-image:url(../libs/flags/er.svg)}.flag-icon-es{background-image:url(../libs/flags/es.svg)}.flag-icon-et{background-image:url(../libs/flags/et.svg)}.flag-icon-fi{background-image:url(../libs/flags/fi.svg)}.flag-icon-fj{background-image:url(../libs/flags/fj.svg)}.flag-icon-fk{background-image:url(../libs/flags/fk.svg)}.flag-icon-fm{background-image:url(../libs/flags/fm.svg)}.flag-icon-fo{background-image:url(../libs/flags/fo.svg)}.flag-icon-fr{background-image:url(../libs/flags/fr.svg)}.flag-icon-ga{background-image:url(../libs/flags/ga.svg)}.flag-icon-gb{background-image:url(../libs/flags/gb.svg)}.flag-icon-gd{background-image:url(../libs/flags/gd.svg)}.flag-icon-ge{background-image:url(../libs/flags/ge.svg)}.flag-icon-gf{background-image:url(../libs/flags/gf.svg)}.flag-icon-gg{background-image:url(../libs/flags/gg.svg)}.flag-icon-gh{background-image:url(../libs/flags/gh.svg)}.flag-icon-gi{background-image:url(../libs/flags/gi.svg)}.flag-icon-gl{background-image:url(../libs/flags/gl.svg)}.flag-icon-gm{background-image:url(../libs/flags/gm.svg)}.flag-icon-gn{background-image:url(../libs/flags/gn.svg)}.flag-icon-gp{background-image:url(../libs/flags/gp.svg)}.flag-icon-gq{background-image:url(../libs/flags/gq.svg)}.flag-icon-gr{background-image:url(../libs/flags/gr.svg)}.flag-icon-gs{background-image:url(../libs/flags/gs.svg)}.flag-icon-gt{background-image:url(../libs/flags/gt.svg)}.flag-icon-gu{background-image:url(../libs/flags/gu.svg)}.flag-icon-gw{background-image:url(../libs/flags/gw.svg)}.flag-icon-gy{background-image:url(../libs/flags/gy.svg)}.flag-icon-hk{background-image:url(../libs/flags/hk.svg)}.flag-icon-hm{background-image:url(../libs/flags/hm.svg)}.flag-icon-hn{background-image:url(../libs/flags/hn.svg)}.flag-icon-hr{background-image:url(../libs/flags/hr.svg)}.flag-icon-ht{background-image:url(../libs/flags/ht.svg)}.flag-icon-hu{background-image:url(../libs/flags/hu.svg)}.flag-icon-id{background-image:url(../libs/flags/id.svg)}.flag-icon-ie{background-image:url(../libs/flags/ie.svg)}.flag-icon-il{background-image:url(../libs/flags/il.svg)}.flag-icon-im{background-image:url(../libs/flags/im.svg)}.flag-icon-in{background-image:url(../libs/flags/in.svg)}.flag-icon-io{background-image:url(../libs/flags/io.svg)}.flag-icon-iq{background-image:url(../libs/flags/iq.svg)}.flag-icon-ir{background-image:url(../libs/flags/ir.svg)}.flag-icon-is{background-image:url(../libs/flags/is.svg)}.flag-icon-it{background-image:url(../libs/flags/it.svg)}.flag-icon-je{background-image:url(../libs/flags/je.svg)}.flag-icon-jm{background-image:url(../libs/flags/jm.svg)}.flag-icon-jo{background-image:url(../libs/flags/jo.svg)}.flag-icon-jp{background-image:url(../libs/flags/jp.svg)}.flag-icon-ke{background-image:url(../libs/flags/ke.svg)}.flag-icon-kg{background-image:url(../libs/flags/kg.svg)}.flag-icon-kh{background-image:url(../libs/flags/kh.svg)}.flag-icon-ki{background-image:url(../libs/flags/ki.svg)}.flag-icon-km{background-image:url(../libs/flags/km.svg)}.flag-icon-kn{background-image:url(../libs/flags/kn.svg)}.flag-icon-kp{background-image:url(../libs/flags/kp.svg)}.flag-icon-kr{background-image:url(../libs/flags/kr.svg)}.flag-icon-kw{background-image:url(../libs/flags/kw.svg)}.flag-icon-ky{background-image:url(../libs/flags/ky.svg)}.flag-icon-kz{background-image:url(../libs/flags/kz.svg)}.flag-icon-la{background-image:url(../libs/flags/la.svg)}.flag-icon-lb{background-image:url(../libs/flags/lb.svg)}.flag-icon-lc{background-image:url(../libs/flags/lc.svg)}.flag-icon-li{background-image:url(../libs/flags/li.svg)}.flag-icon-lk{background-image:url(../libs/flags/lk.svg)}.flag-icon-lr{background-image:url(../libs/flags/lr.svg)}.flag-icon-ls{background-image:url(../libs/flags/ls.svg)}.flag-icon-lt{background-image:url(../libs/flags/lt.svg)}.flag-icon-lu{background-image:url(../libs/flags/lu.svg)}.flag-icon-lv{background-image:url(../libs/flags/lv.svg)}.flag-icon-ly{background-image:url(../libs/flags/ly.svg)}.flag-icon-ma{background-image:url(../libs/flags/ma.svg)}.flag-icon-mc{background-image:url(../libs/flags/mc.svg)}.flag-icon-md{background-image:url(../libs/flags/md.svg)}.flag-icon-me{background-image:url(../libs/flags/me.svg)}.flag-icon-mf{background-image:url(../libs/flags/mf.svg)}.flag-icon-mg{background-image:url(../libs/flags/mg.svg)}.flag-icon-mh{background-image:url(../libs/flags/mh.svg)}.flag-icon-mk{background-image:url(../libs/flags/mk.svg)}.flag-icon-ml{background-image:url(../libs/flags/ml.svg)}.flag-icon-mm{background-image:url(../libs/flags/mm.svg)}.flag-icon-mn{background-image:url(../libs/flags/mn.svg)}.flag-icon-mo{background-image:url(../libs/flags/mo.svg)}.flag-icon-mp{background-image:url(../libs/flags/mp.svg)}.flag-icon-mq{background-image:url(../libs/flags/mq.svg)}.flag-icon-mr{background-image:url(../libs/flags/mr.svg)}.flag-icon-ms{background-image:url(../libs/flags/ms.svg)}.flag-icon-mt{background-image:url(../libs/flags/mt.svg)}.flag-icon-mu{background-image:url(../libs/flags/mu.svg)}.flag-icon-mv{background-image:url(../libs/flags/mv.svg)}.flag-icon-mw{background-image:url(../libs/flags/mw.svg)}.flag-icon-mx{background-image:url(../libs/flags/mx.svg)}.flag-icon-my{background-image:url(../libs/flags/my.svg)}.flag-icon-mz{background-image:url(../libs/flags/mz.svg)}.flag-icon-na{background-image:url(../libs/flags/na.svg)}.flag-icon-nc{background-image:url(../libs/flags/nc.svg)}.flag-icon-ne{background-image:url(../libs/flags/ne.svg)}.flag-icon-nf{background-image:url(../libs/flags/nf.svg)}.flag-icon-ng{background-image:url(../libs/flags/ng.svg)}.flag-icon-ni{background-image:url(../libs/flags/ni.svg)}.flag-icon-nl{background-image:url(../libs/flags/nl.svg)}.flag-icon-no{background-image:url(../libs/flags/no.svg)}.flag-icon-np{background-image:url(../libs/flags/np.svg)}.flag-icon-nr{background-image:url(../libs/flags/nr.svg)}.flag-icon-nu{background-image:url(../libs/flags/nu.svg)}.flag-icon-nz{background-image:url(../libs/flags/nz.svg)}.flag-icon-om{background-image:url(../libs/flags/om.svg)}.flag-icon-pa{background-image:url(../libs/flags/pa.svg)}.flag-icon-pe{background-image:url(../libs/flags/pe.svg)}.flag-icon-pf{background-image:url(../libs/flags/pf.svg)}.flag-icon-pg{background-image:url(../libs/flags/pg.svg)}.flag-icon-ph{background-image:url(../libs/flags/ph.svg)}.flag-icon-pk{background-image:url(../libs/flags/pk.svg)}.flag-icon-pl{background-image:url(../libs/flags/pl.svg)}.flag-icon-pm{background-image:url(../libs/flags/pm.svg)}.flag-icon-pn{background-image:url(../libs/flags/pn.svg)}.flag-icon-pr{background-image:url(../libs/flags/pr.svg)}.flag-icon-ps{background-image:url(../libs/flags/ps.svg)}.flag-icon-pt{background-image:url(../libs/flags/pt.svg)}.flag-icon-pw{background-image:url(../libs/flags/pw.svg)}.flag-icon-py{background-image:url(../libs/flags/py.svg)}.flag-icon-qa{background-image:url(../libs/flags/qa.svg)}.flag-icon-re{background-image:url(../libs/flags/re.svg)}.flag-icon-ro{background-image:url(../libs/flags/ro.svg)}.flag-icon-rs{background-image:url(../libs/flags/rs.svg)}.flag-icon-ru{background-image:url(../libs/flags/ru.svg)}.flag-icon-rw{background-image:url(../libs/flags/rw.svg)}.flag-icon-sa{background-image:url(../libs/flags/sa.svg)}.flag-icon-sb{background-image:url(../libs/flags/sb.svg)}.flag-icon-sc{background-image:url(../libs/flags/sc.svg)}.flag-icon-sd{background-image:url(../libs/flags/sd.svg)}.flag-icon-se{background-image:url(../libs/flags/se.svg)}.flag-icon-sg{background-image:url(../libs/flags/sg.svg)}.flag-icon-sh{background-image:url(../libs/flags/sh.svg)}.flag-icon-si{background-image:url(../libs/flags/si.svg)}.flag-icon-sj{background-image:url(../libs/flags/sj.svg)}.flag-icon-sk{background-image:url(../libs/flags/sk.svg)}.flag-icon-sl{background-image:url(../libs/flags/sl.svg)}.flag-icon-sm{background-image:url(../libs/flags/sm.svg)}.flag-icon-sn{background-image:url(../libs/flags/sn.svg)}.flag-icon-so{background-image:url(../libs/flags/so.svg)}.flag-icon-sr{background-image:url(../libs/flags/sr.svg)}.flag-icon-ss{background-image:url(../libs/flags/ss.svg)}.flag-icon-st{background-image:url(../libs/flags/st.svg)}.flag-icon-sv{background-image:url(../libs/flags/sv.svg)}.flag-icon-sx{background-image:url(../libs/flags/sx.svg)}.flag-icon-sy{background-image:url(../libs/flags/sy.svg)}.flag-icon-sz{background-image:url(../libs/flags/sz.svg)}.flag-icon-tc{background-image:url(../libs/flags/tc.svg)}.flag-icon-td{background-image:url(../libs/flags/td.svg)}.flag-icon-tf{background-image:url(../libs/flags/tf.svg)}.flag-icon-tg{background-image:url(../libs/flags/tg.svg)}.flag-icon-th{background-image:url(../libs/flags/th.svg)}.flag-icon-tj{background-image:url(../libs/flags/tj.svg)}.flag-icon-tk{background-image:url(../libs/flags/tk.svg)}.flag-icon-tl{background-image:url(../libs/flags/tl.svg)}.flag-icon-tm{background-image:url(../libs/flags/tm.svg)}.flag-icon-tn{background-image:url(../libs/flags/tn.svg)}.flag-icon-to{background-image:url(../libs/flags/to.svg)}.flag-icon-tr{background-image:url(../libs/flags/tr.svg)}.flag-icon-tt{background-image:url(../libs/flags/tt.svg)}.flag-icon-tv{background-image:url(../libs/flags/tv.svg)}.flag-icon-tw{background-image:url(../libs/flags/tw.svg)}.flag-icon-tz{background-image:url(../libs/flags/tz.svg)}.flag-icon-ua{background-image:url(../libs/flags/ua.svg)}.flag-icon-ug{background-image:url(../libs/flags/ug.svg)}.flag-icon-um{background-image:url(../libs/flags/um.svg)}.flag-icon-us{background-image:url(../libs/flags/us.svg)}.flag-icon-uy{background-image:url(../libs/flags/uy.svg)}.flag-icon-uz{background-image:url(../libs/flags/uz.svg)}.flag-icon-va{background-image:url(../libs/flags/va.svg)}.flag-icon-vc{background-image:url(../libs/flags/vc.svg)}.flag-icon-ve{background-image:url(../libs/flags/ve.svg)}.flag-icon-vg{background-image:url(../libs/flags/vg.svg)}.flag-icon-vi{background-image:url(../libs/flags/vi.svg)}.flag-icon-vn{background-image:url(../libs/flags/vn.svg)}.flag-icon-vu{background-image:url(../libs/flags/vu.svg)}.flag-icon-wf{background-image:url(../libs/flags/wf.svg)}.flag-icon-ws{background-image:url(../libs/flags/ws.svg)}.flag-icon-ye{background-image:url(../libs/flags/ye.svg)}.flag-icon-yt{background-image:url(../libs/flags/yt.svg)}.flag-icon-za{background-image:url(../libs/flags/za.svg)}.flag-icon-zm{background-image:url(../libs/flags/zm.svg)}.flag-icon-zw{background-image:url(../libs/flags/zw.svg)}.flag-icon-eu{background-image:url(../libs/flags/eu.svg)}.flag-icon-gb-eng{background-image:url(../libs/flags/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(../libs/flags/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(../libs/flags/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(../libs/flags/gb-wls.svg)}.flag-icon-un{background-image:url(../libs/flags/un.svg)} \ No newline at end of file diff --git a/other/config.php b/other/config.php index 7577539..4b8f42a 100644 --- a/other/config.php +++ b/other/config.php @@ -106,8 +106,9 @@ function rem_session_ts3($rspathhex) { $cfg['rankup_definition'] = NULL; } else { foreach (explode(',', $cfg['rankup_definition']) as $entry) { - list($key, $value) = explode('=>', $entry); - $addnewvalue1[$key] = $value; + list($time, $group, $keepflag) = explode('=>', $entry); + if($keepflag == NULL) $keepflag = 0; + $addnewvalue1[$time] = array("time"=>$time,"group"=>$group,"keep"=>$keepflag); $cfg['rankup_definition'] = $addnewvalue1; } } diff --git a/stats/_footer.php b/stats/_footer.php new file mode 100644 index 0000000..ad14cec --- /dev/null +++ b/stats/_footer.php @@ -0,0 +1,15 @@ +',$lang['imprint'],''; + } else { + echo ''; +} +?> \ No newline at end of file diff --git a/stats/nav.php b/stats/_nav.php similarity index 100% rename from stats/nav.php rename to stats/_nav.php diff --git a/stats/_preload.php b/stats/_preload.php new file mode 100644 index 0000000..b5e7e3b --- /dev/null +++ b/stats/_preload.php @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/stats/assign_groups.php b/stats/assign_groups.php index a23e8a3..5615865 100644 --- a/stats/assign_groups.php +++ b/stats/assign_groups.php @@ -1,32 +1,11 @@
@@ -185,6 +163,6 @@
- + \ No newline at end of file diff --git a/stats/footer.php b/stats/footer.php deleted file mode 100644 index be51cd1..0000000 --- a/stats/footer.php +++ /dev/null @@ -1,5 +0,0 @@ -' . $lang['imprint'] . ' • ' . $lang['privacy-policy'] . ''; - } -?> \ No newline at end of file diff --git a/stats/imprint.php b/stats/imprint.php index 4ece126..3cc8ced 100644 --- a/stats/imprint.php +++ b/stats/imprint.php @@ -1,30 +1,5 @@ query("SELECT `msg` FROM `$dbname`.`imprint` WHERE `text`=`adress`")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); -$stats_user = $mysqlcon->query("SELECT `adress`,`email`,`phone`,`active_month`,`last_calculated` FROM `$dbname`.`stats_user` WHERE `uuid`='".$_SESSION[$rspathhex.'tsuid']."'")->fetch(); -require_once('nav.php'); +require_once('_preload.php'); ?>
@@ -37,47 +12,50 @@
-
-
' . $lang['imprint_address'] . '
-

' . $cfg['imprint_address'] . '

-
-
- -
-
-
' . $lang['imprint_email'] . '
-

' . $cfg['imprint_email'] . '

-
-
-
-
-
-
' . $lang['imprint_phone'] . '
-

' . $cfg['imprint_phone'] . '

-
-
-
' - if ($cfg['imprint_notes'] != NULL) { - echo '
-
-
' . $lang['imprint_notes'] . '
-

' . $cfg['imprint_notes'] . '

-
-
'; - }; - } else { - echo '
-
-
' . $lang['module_disabled'] . '
-
-
'; - } + if (isset($cfg['stats_imprint_switch']) && $cfg['stats_imprint_switch'] == 1) { + echo ' +
+
+
' . $lang['wiimpaddr'] . '
+

' . $cfg['stats_imprint_address'] . '

+
+
+
+
+
+
' . $lang['wiimpemail'] . '
+

' . $cfg['stats_imprint_email'] . '

+
+
+
+
+
+
' . $lang['wiimpphone'] . '
+

' . $cfg['stats_imprint_phone'] . '

+
+
+
'; + if ($cfg['stats_imprint_notes'] != NULL) { + echo ' +
+
+
' . $lang['wiimpnotes'] . '
+

' . $cfg['stats_imprint_notes'] . '

+
+
'; + } + } else { + echo ' +
+
+
' . $lang['module_disabled'] . '
+
+
'; + } ?> - + diff --git a/stats/index.php b/stats/index.php index b5e78bb..71b74a7 100644 --- a/stats/index.php +++ b/stats/index.php @@ -1,21 +1,5 @@ query("SELECT * FROM `$dbname`.`groups` WHERE `sgid`=0")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC)) === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; } - -require_once('nav.php'); ?>
@@ -497,6 +475,6 @@ function human_readable_size($bytes,$lang) { - + \ No newline at end of file diff --git a/stats/info.php b/stats/info.php index 887c8d8..f56a415 100644 --- a/stats/info.php +++ b/stats/info.php @@ -1,28 +1,5 @@
@@ -98,13 +75,13 @@

JavierlechuXD -'); ?>

ExXeL -'); ?>

G. FARZALIYEV -'); ?>

-

Nick Slowinski -'); ?>

+

Nick Slowinski -'); ?>


- + \ No newline at end of file diff --git a/stats/list_rankup.php b/stats/list_rankup.php index 1146677..f57e02c 100644 --- a/stats/list_rankup.php +++ b/stats/list_rankup.php @@ -1,22 +1,5 @@ $groupid) { + foreach ($cfg['rankup_definition'] as $rank) { $grpcount++; - if ($activetime < $time || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] <= 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) { + if ($activetime < $rank['time'] || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] <= 0 && $cfg['stats_show_clients_in_highest_rank_switch'] == 1 || $grpcount == count($cfg['rankup_definition']) && $value['nextup'] == 0 && $adminlogin == 1) { echo ''; if ($cfg['stats_column_rank_switch'] == 1 || $adminlogin == 1) { if($value['except'] == 2 || $value['except'] == 3) { @@ -372,19 +354,19 @@ function pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$ echo '' , htmlspecialchars($value['platform']) , ''; } if ($cfg['stats_column_online_time_switch'] == 1 || $adminlogin == 1) { - echo ''; + echo ''; $dtF = new DateTime("@0"); $dtT = new DateTime("@".round($value['count'])); echo $dtF->diff($dtT)->format($cfg['default_date_format']); } if ($cfg['stats_column_idle_time_switch'] == 1 || $adminlogin == 1) { - echo ''; + echo ''; $dtF = new DateTime("@0"); $dtT = new DateTime("@".round($value['idle'])); echo $dtF->diff($dtT)->format($cfg['default_date_format']); } if ($cfg['stats_column_active_time_switch'] == 1 || $adminlogin == 1) { - echo ''; + echo ''; $dtF = new DateTime("@0"); $dtT = new DateTime("@".(round($value['count'])-round($value['idle']))); echo $dtF->diff($dtT)->format($cfg['default_date_format']); @@ -408,15 +390,15 @@ function pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$ } } if ($cfg['stats_column_next_rankup_switch'] == 1 || $adminlogin == 1) { - echo ''; + echo 'diff($dtT)->format($cfg['default_date_format']) , ''; + echo round($value['nextup']),' sec." class="text-center">',$dtF->diff($dtT)->format($cfg['default_date_format']) , ''; } elseif ($value['except'] == 0 || $value['except'] == 1) { - echo '0'; + echo '0 sec." class="text-center">0'; } elseif ($value['except'] == 2 || $value['except'] == 3) { - echo '0'; + echo '0 sec." class="text-center">0'; } else { echo $lang['errukwn'], ''; } @@ -426,10 +408,10 @@ function pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$ echo '',$lang['highest'],''; } elseif ($value['except'] == 2 || $value['except'] == 3) { echo '',$lang['listexcept'],''; - } elseif (isset($sqlhisgroup[$groupid]) && $sqlhisgroup[$groupid]['iconid'] != 0) { - echo 'missed_icon  ' , $sqlhisgroup[$groupid]['sgidname'] , ''; - } elseif (isset($sqlhisgroup[$groupid])) { - echo '' , $sqlhisgroup[$groupid]['sgidname'] , ''; + } elseif (isset($sqlhisgroup[$rank['group']]) && $sqlhisgroup[$rank['group']]['iconid'] != 0) { + echo 'missed_icon  ' , $sqlhisgroup[$rank['group']]['sgidname'] , ''; + } elseif (isset($sqlhisgroup[$rank['group']])) { + echo '' , $sqlhisgroup[$rank['group']]['sgidname'] , ''; } else { echo ''; } @@ -450,6 +432,6 @@ function pagination($keysort,$keyorder,$user_pro_seite,$seiten_anzahl_gerundet,$ - + \ No newline at end of file diff --git a/stats/my_stats.php b/stats/my_stats.php index f44a93e..9b57572 100644 --- a/stats/my_stats.php +++ b/stats/my_stats.php @@ -1,26 +1,5 @@ 1 && !isset($_SESSION[$rspathhex.'uuid_verified'])) { $err_msg = sprintf($lang['stag0006'], '', ''); $err_lvl = 3; @@ -43,12 +22,12 @@ krsort($cfg['rankup_definition']); $nextgrp = ''; - foreach ($cfg['rankup_definition'] as $time => $groupid) { - $actualgrp = $time; - if ($activetime > $time) { + foreach ($cfg['rankup_definition'] as $rank) { + $actualgrp = $rank['time']; + if ($activetime > $rank['time']) { break; } else { - $nextgrp = $time; + $nextgrp = $rank['time']; } } if($actualgrp==$nextgrp) { @@ -101,7 +80,6 @@ function get_percentage($max_value, $value) { return (round(($value/$max_value)*100)); } -require_once('nav.php'); ?>

-

-

+

',$count_total; ?>

+

',$active_count; ?>

@@ -376,6 +354,6 @@ function get_percentage($max_value, $value) { - + \ No newline at end of file diff --git a/stats/nations.php b/stats/nations.php index 893ab59..d4fea5a 100644 --- a/stats/nations.php +++ b/stats/nations.php @@ -1,21 +1,5 @@ query("SELECT * FROM `$dbname`.`stats_nations` ORDER BY `count` DESC")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - -require_once('nav.php'); ?>
@@ -90,6 +68,6 @@
- + \ No newline at end of file diff --git a/stats/platforms.php b/stats/platforms.php index 7af065b..9366e43 100644 --- a/stats/platforms.php +++ b/stats/platforms.php @@ -1,29 +1,7 @@ query("SELECT * FROM `$dbname`.`stats_platforms` ORDER BY `count` DESC")->fetchALL(PDO::FETCH_UNIQUE|PDO::FETCH_ASSOC); - -require_once('nav.php'); ?>
@@ -71,6 +49,6 @@
- + \ No newline at end of file diff --git a/stats/privacy-policy.php b/stats/privacy-policy.php deleted file mode 100644 index 0b54bdb..0000000 --- a/stats/privacy-policy.php +++ /dev/null @@ -1,57 +0,0 @@ - -
- -
-
-
-

- -

-
-
- -
- ' . $cfg['imprint_privacy-policy'] .' -
-
'; - } else { - echo '
-
-
' . $lang['module_disabled'] . '
-
-
'; - } - ?> -
- - - - - \ No newline at end of file diff --git a/stats/privacy_policy.php b/stats/privacy_policy.php new file mode 100644 index 0000000..119cee5 --- /dev/null +++ b/stats/privacy_policy.php @@ -0,0 +1,32 @@ + +
+ +
+
+
+

+ +

+
+
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+
+ + + + \ No newline at end of file diff --git a/stats/top_all.php b/stats/top_all.php index 1ff44bf..0ddb0b6 100644 --- a/stats/top_all.php +++ b/stats/top_all.php @@ -1,26 +1,5 @@
@@ -374,7 +352,7 @@ function get_percentage($max_value, $value) {
- + - - - '; - } else { - echo '
'; - } ?> - -"; - $err_msg = sprintf($lang['winav10'], $host,'!
', '
'); $err_lvl = 2; -} - -function error_handling($msg,$type = NULL) { - switch ($type) { - case NULL: echo '
'; break; - case 1: echo '
'; break; - case 2: echo '
'; break; - case 3: echo '
'; break; - } - echo '',$msg,'
'; -} -?> \ No newline at end of file diff --git a/webinterface/rank.php b/webinterface/rank.php index 9d6667d..728b1e7 100644 --- a/webinterface/rank.php +++ b/webinterface/rank.php @@ -27,29 +27,31 @@ $grouparr_old = null; } else { foreach (explode(',', $_POST['rankup_definition']) as $entry) { - list($time, $groupid) = explode('=>', $entry); - $grouparr_old[$groupid] = $time; + list($time, $groupid, $keepflag) = explode('=>', $entry); + if($keepflag == NULL) $keepflag = 0; + $grouparr_old[$time] = array("time"=>$time,"group"=>$groupid,"keep"=>$keepflag); + $cfg['rankup_definition'] = $grouparr_old; } } - + if(isset($groupslist) && $groupslist != NULL) { - foreach($grouparr_old as $groupid => $time) { - if(!isset($groupslist[$groupid]) && $groupid != NULL) { - $err_msg .= sprintf($lang['upgrp0001'], $groupid, $lang['wigrptime']).'
'; - $err_lvl = 3; - $errcnf++; + if(isset($cfg['rankup_definition']) && $cfg['rankup_definition'] != NULL) { + foreach($cfg['rankup_definition'] as $time => $value) { + if(!isset($groupslist[$value['group']]) && $value['group'] != NULL) { + $err_msg .= sprintf($lang['upgrp0001'], $value['group'], $lang['wigrptime']).'
'; + $err_lvl = 3; + $errcnf++; + } } } } - + if($_POST['rankup_definition'] == "") { $err_msg = "Saving of empty defintion prevented.

Your changes were not be saved!

You need at least one entry to be able to save the configuration!"; $err_lvl = 3; } else { - $cfg['rankup_definition'] = $_POST['rankup_definition']; - if($errcnf == 0) { - if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$cfg['rankup_definition']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { + if ($mysqlcon->exec("INSERT INTO `$dbname`.`cfg_params` (`param`,`value`) VALUES ('rankup_definition','{$_POST['rankup_definition']}') ON DUPLICATE KEY UPDATE `value`=VALUES(`value`); DELETE FROM `$dbname`.`csrf_token` WHERE `token`='{$_POST['csrf_token']}'") === false) { $err_msg = print_r($mysqlcon->errorInfo(), true); $err_lvl = 3; } else { @@ -59,13 +61,6 @@ } else { $err_msg .= "
".$lang['errgrpid']; } - - $grouptimearr = explode(',', $_POST['rankup_definition']); - foreach ($grouptimearr as $entry) { - list($key, $value) = explode('=>', $entry); - $addnewvalue1[$key] = $value; - $cfg['rankup_definition'] = $addnewvalue1; - } } } elseif (isset($_POST['update']) && isset($db_csrf[$_POST['csrf_token']])) { @@ -74,21 +69,23 @@ $rankupgroups = []; foreach($_POST['rankuptime'] as $key => $entry) { $servergroupId = isset($_POST["rankupgroup"][$key]) ? $_POST["rankupgroup"][$key] : 0; - if(empty($servergroupId)) { - $servergroupId = 0; + if(in_array($key,$_POST["rankupkeep"])) { + $keepflag = 1; + } else { + $keepflag = 0; } if(empty($entry)) { $entry = 0; } - $rankupgroups[] = "$entry=>$servergroupId"; + $rankupgroups[] = "$entry=>$servergroupId=>$keepflag"; } $rankup_definition = implode(",", $rankupgroups); $grouparr = []; foreach(explode(',', $rankup_definition) as $entry) { - list($time, $groupid) = explode('=>', $entry); + list($time, $groupid, $keepflag) = explode('=>', $entry); $grouparr[$groupid] = $time; } - + $err_msg = ''; $errcnf = 0; if(isset($groupslist) && $groupslist != NULL) { @@ -120,8 +117,8 @@ } else { $grouptimearr = explode(',', $rankup_definition); foreach ($grouptimearr as $entry) { - list($key, $value) = explode('=>', $entry); - $addnewvalue1[$key] = $value; + list($time, $groupid, $keepflag) = explode('=>', $entry); + $addnewvalue1[$time] = array("time"=>$time,"group"=>$groupid,"keep"=>$keepflag); $cfg['rankup_definition'] = $addnewvalue1; } } @@ -165,21 +162,24 @@
-
+
+ +
$sgroup) { + $rowid = 0; + foreach($cfg['rankup_definition'] as $rank) { ?>
- +
+
+ '; + } else { + echo ''; + } ?> +
-
@@ -243,7 +250,7 @@
- +
@@ -269,7 +276,7 @@
+
+
+ +
+ +
+
+
 
@@ -304,5 +314,21 @@ + \ No newline at end of file